Zum Hauptinhalt springen

Beispiel: Kartesisches Pose-Streaming

Diese Seite enthält eine Schritt-für-Schritt-Anleitung, um das Beispiel für das kartesische Pose-Streaming auszuführen. Das Beispiel wird:

  • Feedback-Nachrichten und einen Empfänger einrichten, um die Ausgangspose des Roboters zu ermitteln
  • eine GUI bereitstellen, über die der Nutzer den Roboter durch Mausbewegungen steuern kann
  • einen UDP-Sender einrichten, um Streaming-Nachrichten an den Controller zu senden
  • die erfasste Mausposition interpretieren und die entsprechende Pose an den Controller publizieren

Das Beispiel finden Sie im GitLab von RobCo: Cartesian Streaming Example.

1. Vorbereitung

Der erste Schritt ist die Verbindung zur Control Unit, wie im Abschnitt Erste Schritte beschrieben.

Öffnen Sie anschließend einen Browser und rufen RobFlow über die im vorherigen Schritt ermittelte IP-Adresse auf. Handelt es sich um die erste Verbindung zum Roboter, legen Sie bitte ein Passwort fest. Andernfalls melden Sie sich mit den bestehenden Zugangsdaten an.

Nach diesen beiden Schritten haben Sie festgelegt:

  • username: der Benutzername für die Anmeldung an RobFlow
  • password: das Passwort für die Anmeldung an RobFlow
  • robot-ip-robflow: die IP, unter der der Roboter (genauer: RobFlow) erreichbar ist
  • robot-ip-robcontrol: die IP, unter der der Roboter (genauer: RobControl) erreichbar ist, in der Regel identisch mit robot-ip-robflow
  • robot-port-robcontrol: der Port, an dem RobControl Streaming-Nachrichten erwartet, in der Regel fest auf 28000 (kann bei Bedarf nur vom RobCo-Support geändert werden)

2. Empfangenden Endpunkt festlegen

Das Beispiel muss die Ausgangsposition aus den Feedback-Nachrichten beziehen. Daher legen Sie im nächsten Schritt fest, wohin der Controller die Feedback-Nachrichten senden soll. Je nach dem in

  1. gewählten Verbindungsmodus hat Ihr Host für den jeweiligen Netzwerkadapter eine statische oder eine dynamische IP.

Der Port, an dem die Feedback-Nachrichten empfangen werden, ist frei wählbar. Am gewählten Port sollte kein anderer Datenverkehr zu erwarten sein.

Nach diesem Schritt haben Sie festgelegt:

  • host-ip-feedback: die IP des Hosts, der die Feedback-Nachrichten empfangen soll
  • host-port-feedback: der Port, an dem der Host die Feedback-Nachrichten empfangen soll

3. Streaming-Endpunkt festlegen

Der Controller akzeptiert Streaming-Nachrichten nur von der IP, die in der API-Nachricht "Streaming starten" festgelegt ist. Daher muss für dieses Beispiel die IP des Hosts festgelegt werden, der die Streaming-Nachrichten an den Roboter sendet. Wie beim empfangenden Endpunkt hängt diese IP vom gewählten Verbindungsmodus ab. In der Regel ist sie identisch mit der oben festgelegten host-ip-feedback.

Nach diesem Schritt haben Sie festgelegt:

  • host-ip-streaming: die IP des Hosts, der die Streaming-Nachrichten sendet

4. Den Roboter in eine geeignete Position bringen

Bringen Sie den Roboter vor dem Start des Streaming-Beispiels in eine Gelenkpose ohne Singularitäten.

Zum Vergleich:

Beispiele für (nicht-)singuläre Ausgangsposen
Singuläre RoboterkonfigurationGültige Roboterkonfiguration
Eine singuläre Roboterpose, in der das kartesische Streaming nicht starten kannEine gültige Ausgangspose für kartesisches Streaming
In dieser Pose kann das kartesische Streaming nicht starten.Dies ist ein Beispiel für eine gültige Ausgangspose für kartesisches Streaming.

5. So steuern Sie den Roboter

Beim Ausführen des Beispiels (siehe nächster Schritt) öffnet sich ein GUI-Fenster, das in seiner Mitte ein rotes Kreuz zeigt.

Die GUI des Beispiels: ein Fenster mit einem roten Kreuz in der Mitte

hinweis

Bewegen Sie die Maus in die Mitte, bevor das Streaming startet.

hinweis

Auf manchen Systemen müssen Sie in das GUI-Fenster klicken, damit tkinter (die Bibliothek hinter der GUI) die Ausgangsposition der Maus korrekt erfasst.

Sie können den Roboter wie folgt steuern:

  • x/y-Translation: die Maus im GUI-Fenster bewegen
  • z-Translation: das Mausrad nach oben/unten scrollen
  • x/y-Rotation: die rechte Maustaste halten und die Maus im GUI-Fenster bewegen
  • z-Rotation: die rechte Maustaste halten und das Mausrad nach oben/unten scrollen

6. Das Beispiel ausführen

Nach Abschluss aller Schritte oben ist alles für die Ausführung des Beispiels vorbereitet.

Laden Sie das RobFlow SDK herunter und installieren es gemäß der Readme.

Lösen Sie vor dem Ausführen des Beispiels die Bremsen des Roboters über RobFlow.

warnung

Für die ersten Tests empfehlen wir, die Hand am Not-Halt-Taster zu behalten, um den Roboter bei unerwarteten Bewegungen sofort stoppen zu können.

Nun kann das Beispiel ausgeführt werden (setzen Sie die in den Schritten oben ermittelten Argumente ein):

python -m streaming.examples.publisher_mouse_position \
--username my_user \
--password my_password \
--robot-ip-robflow 192.168.1.1 \
--robot-port-robflow 80 \
--host-ip-feedback 192.168.1.99 \
--host-port-feedback 28001 \
--robot-ip-robcontrol 192.168.1.1 \
--robot-port-robcontrol 28000 \
--host-ip-streaming 192.168.1.99

7. (Optional) Weitere Einstellungen

Im Abschnitt "Settings" des Beispielskripts finden Sie mehrere Optionen, um den Streaming-Modus an Ihren Anwendungsfall anzupassen. Informationen dazu, was diese Parameter beeinflussen, finden Sie in der Dokumentation im Code.

Erwähnenswert sind:

  • T_TRANSITION_STREAM: Pause in Sekunden zwischen der Bestätigung des Nutzers, das Streaming zu starten, und der ersten gesendeten Nachricht
  • VERBOSE: aktiviert die Ausgabe von Debug-Informationen auf der Konsole
  • in der Datei mouse_tracker_6D.py können Sie die Fenstergröße sowie die Größenordnung der Skalierung von Rotation und Translation anpassen