Zum Hauptinhalt springen

Beispiel: Gelenkpositions-Streaming

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

  • Feedback-Nachrichten und einen Empfänger einrichten, um die Ausgangspose des Roboters zu ermitteln
  • eine Trajektorie von Gelenkposen mit dem Paket Ruckig berechnen
  • einen UDP-Sender einrichten, um Streaming-Nachrichten an den Controller zu senden
  • die vorab berechnete Gelenktrajektorie mit der gewünschten Frequenz publizieren

Das Beispiel finden Sie im GitLab von RobCo: Joint 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. Trajektorie festlegen

Dieser Schritt ist unverzichtbar!

Andernfalls besteht die Gefahr von Schäden am Roboter und in seiner Umgebung!

Öffnen Sie das Beispielskript und bearbeiten Sie die Variable POSES. Sie sollte die Gelenkposen in [deg] enthalten, die der Roboter durchfahren soll.

Es wird empfohlen, die Folge von Gelenkposen in RobFlow zu programmieren und sicherzustellen, dass die Sequenz gefahrlos ausgeführt werden kann.

Passen Sie außerdem die Variable N_JOINTS an die Anzahl der Gelenke des Roboters an, mit dem Sie arbeiten.

5. 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.

warnung

Für die ersten Tests empfehlen wir:

  • die Geschwindigkeit des Roboters zu reduzieren, indem Sie DQ_FACTOR und DDQ_FACTOR beispielsweise auf 0.2 (also 20 %) setzen
  • den Not-Halt in der Hand zu halten, um den Roboter jederzeit stoppen zu können

Prüfen Sie vor dem Start dieses Beispiels nochmals, dass die in 4. festgelegte Trajektorie zulässig und sicher ist!

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

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

python -m streaming.examples.publisher_joint_values \
--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

6. (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
  • PLOT: zeigt vor dem Start des Streamings einen Plot der Gelenktrajektorie