Pirate App

Pirate Robotics App Cockpit
Pirate Robotics App Cockpit

„Eine App um sie zu steuern“. Das ist das Motto der mit AngularJS entwickelten Web-App, um ROS-Roboter über eine einheitliche Oberfläche zu steuern, Sequenzen zu erstellen oder einfach nur mit dem Roboter zu chatten.

Wer seine Bilderkennung mit OpenCV verbessern möchte, hat die meisten Parameter der OpenCV-Klassen als GUI-Elemente in einem Tab gebündelt.

Mit der Pirate App können unterschiedliche Roboter angelegt und konfiguriert werden. So kann es eine IP-Konfiguration für einen kabelgebunden, sowie eine Konfiguration für einen kabellosen Roboter geben. Es kann auch den selben Roboter mit dem selben Namen aber unterschiedliche IP-Konfigurationen geben.

Der Setup-Assistent setzt voraus, dass es einen ROS-Master und mindestens ein ROS-Video gibt.

Pirate Robotics App Setup Robots
Pirate Robotics App Setup Robots

 

Im ersten Schritt des Setup-Assisten werden der Roboter-Name und die Roboter-IP-Adresse vergeben.

Mit dem Button „Create“ werden die Eingaben im Backend gespeichert und beim nächsten Besuch wieder angezeigt.

Um einen bestehenden Roboter-Datensatz zu ändern, wird zuerst der Roboter per Mausklick in der Roboter-Tabelle ausgewählt und dann in den Eingabefeldern bearbeitet. Mit dem Button „Save“ werden die Änderungen gespeichert.

Roboter aus der Liste endgültig löschen, kann man, indem der Roboter zuerst aus der Tabelle ausgewählt und dann mit dem Button „Delete“ endgültig und ohne Rückfrage gelöscht wird!

Pirate Robotics App Setup Projects
Pirate Robotics App Setup Projects

Projekte sind JSON-Dateien, die Sequenzen enthalten und darin das Verhalten eines Roboters speichern.

Eine Sequenz kann man im einfachstem Beispiel als eine Armbewegung sehen. Man stellt die Winkel der Motoren per Hand oder Teleop so ein wie man die Ausgangspose gerne haben möchte (Forwärtskinematik), speichert diese Pose als Sequenz-Zeile ab und verfährt so mit der nächsten Pose. Die Kinematik des Roboters, im Idealfall ein ROS-Action-Server setzt diese Koordinaten in Bewegungen um (Inverse Kinematik).

Pirate Robotics App Setup ROS Master
Pirate Robotics App Setup ROS Master

In ROS muss es einen Master geben, darum wird er in diesem Setup-Schritt mit IP-Adresse und Port angegeben. Die Verbindung wird über ein websocket gestartet. Wenn die Verbindung erfolgreich hergestellt wurde, erscheint ein grünes Häckchen.

Es ist aktuell nicht möglich eine Verbindung über eine verschlüsselte websocket-Verbindung herzustellen. Dieses Feature erscheint bei der nächsten Version.

Pirate Robotics App Setup ROS Video
Pirate Robotics App Setup ROS Video

Videos werden über einen eigenen Port übertragen, weshalb es hier notwendig ist eine separate IP-Konfiguration einzutragen.

Ext1: Primär-Topic welches Kamerabilder überträgt.
Ext2: Sekundär-Topic zum Anzeigen einer Maske oder ähnliches.
Ext3: Optional. Ein Sensor-Topic zum Beispiel Bilder die übertragen werden, wenn eine Bewegung erkannt wurde.
Ext4: Optional. Ein Sensor-Topic zum Beispiel Bilder die übertragen werden, wenn ein Gesicht erkannt wurde.

 

Pirate Robotics App Setup ROS Topics
Pirate Robotics App Setup ROS Topics

Wenn die vorangegangenen Schritte erfolgreich waren, kann man im Reiter „ROS“ die Topics, Services und Parameter des ROS-Master anzeigen lassen.

Pirate Robotics App Setup Options
Pirate Robotics App Setup Options

Im Offline-Modus kann Teleop auch ohnen eine ROS-Master-Verbindung verwendet werden, um die Koordinaten zu prüfen oder offline eine Sequenz zu erstellen.

Pirate Robotics App Sequencer
Pirate Robotics App Sequencer

Der Sequenzer befindet sich noch im Aufbau und kann sich deshalb noch ändern, Ein Laravel-Backend speichert die hiermit erstellten Sequenzen in einer Datenbank als JSON-Projekte. Wird eine Sequenz abgespielt, dann wird lediglich der Name der Sequenz („motion1“) and den ROS-Nachrichtenempfänger /pirate_cmd gesendet. Damit das funktioniert, impliziert eine Speicheraktion im Frontend automatisch eine Speicheraktion im Laravel-Backend (JSON) und eine Speicheraktion im ROS-Backend (CSV) des Roboters.

Pirate Robotics App Chat
Pirate Robotics App Chat

Mit dem integrierten Chat-Programm können aufgezeichnete Sequenzen oder Befehle aufgerufen werden, die der Roboter von Haus aus kennt.

Pirate Robotics App OpenCV2
Pirate Robotics App OpenCV2

Jedes Auge sieht anders. Insbesondere eine Webcam sieht die Dinge oft nicht so wie wir es erwarten, darum ist es hier möglich einigie wichtige OpenCV-Parameter manuell zu steuern und ggf. als Sequenz abzuspeichern. Beispiele wie „Grüner Ball bei Tag“ oder „Grüner Ball bei Nacht“ sollten aussagekräftig genug sein.