Häufige ROS-Befehle

In einem Robotersystem können gleichzeitig einige bis zu Dutzende von Knoten laufen. Jeder Knoten hat einen eindeutigen Namen und sie kommunizieren über Topics, Services, Nachrichten, Parameter und mehr. Eine häufige Herausforderung ist: Wenn Sie einen Knoten so anpassen müssen, dass er mit einem anderen vorhandenen Knoten kommuniziert, wie ermitteln Sie das Topic und das Nachrichtenformat, das der andere Knoten verwendet?

ROS bietet eine Reihe nützlicher Kommandozeilenwerkzeuge, um verschiedene Informationen zu unterschiedlichen Knoten zu erhalten. Die häufig verwendeten Befehle sind:

  • rosnode: Knoten verwalten
  • rostopic: Topics verwalten
  • rosservice: Services verwalten
  • rosmsg: Nachrichtentypen (msg) verwalten
  • rossrv: Service-Nachrichtentypen (srv) verwalten
  • rosparam: Parameter verwalten

Diese Befehle sind dynamisch, im Gegensatz zu den statischen Dateisystembefehlen. Nachdem das ROS-Programm gestartet ist, ermöglichen diese Befehle das dynamische Abrufen von Informationen über laufende Knoten oder Parameter.

rosnode

rosnode wird verwendet, um Informationen über ROS-Knoten abzurufen.

  • rosnode ping: Den Verbindungsstatus zu einem Knoten testen
  • rosnode list: Alle aktiven Knoten auflisten
  • rosnode info: Informationen über einen Knoten ausgeben
  • rosnode machine: Knoten auflisten, die auf einer bestimmten Maschine laufen
  • rosnode kill: Einen Knoten beenden
  • rosnode cleanup: Nicht erreichbare Knoten bereinigen

rostopic

rostopic enthält Kommandozeilenwerkzeuge zur Anzeige von Debug-Informationen zu ROS-Topics, wie Publisher, Subscriber, Veröffentlichungsfrequenz und ROS-Nachrichten. Es enthält außerdem eine experimentelle Python-Bibliothek zum dynamischen Abrufen von Informationen über Topics und zur Interaktion mit ihnen.

  • rostopic bw: Bandbreitennutzung eines Topics anzeigen
  • rostopic delay: Verzögerung eines Topics mit Header anzeigen
  • rostopic echo: Nachrichten auf dem Bildschirm ausgeben
  • rostopic find: Topics nach Typ suchen
  • rostopic hz: Veröffentlichungsfrequenz eines Topics anzeigen
  • rostopic info: Informationen über ein Topic anzeigen
  • rostopic list: Alle aktiven Topics auflisten
  • rostopic pub: Daten auf einem Topic veröffentlichen
  • rostopic type: Den Typ eines Topics ausgeben

Beispiele:

  • rostopic list(-v): Gibt die Namen aktuell laufender Topics aus (mit -v für detaillierte Informationen wie die Anzahl von Publishern und Subscribern).
  • rostopic pub /topic_name msg_type "msg_content": Eine Nachricht auf einem Topic veröffentlichen.
  • rostopic echo /topic_name: Die aktuell auf einem Topic veröffentlichte Nachricht abrufen und ausgeben.
  • rostopic info /topic_name: Detaillierte Informationen über ein Topic erhalten, einschließlich Nachrichtentyp sowie Publisher- und Subscriber-Informationen.
  • rostopic hz /topic_name: Die Veröffentlichungsfrequenz eines Topics anzeigen.
  • rostopic bw /topic_name: Die Bandbreitennutzung eines Topics anzeigen.

2.4.3 rosmsg

rosmsg ist ein Kommandozeilenwerkzeug zur Anzeige von Informationen über ROS-Nachrichtentypen.

  • rosmsg show: Die Beschreibung einer Nachricht anzeigen
  • rosmsg info: Detaillierte Informationen über eine Nachricht anzeigen
  • rosmsg list: Alle Nachrichtentypen auflisten
  • rosmsg md5: Die MD5-Prüfsumme einer Nachricht anzeigen
  • rosmsg package: Alle Nachrichten in einem Paket auflisten
  • rosmsg packages: Alle Pakete auflisten, die Nachrichten enthalten

Beispiele:

  • rosmsg list: Alle Nachrichtentypen in der aktuellen ROS-Umgebung auflisten.
  • rosmsg packages: Alle Pakete auflisten, die Nachrichtentypen enthalten.
  • rosmsg package <package_name>: Alle Nachrichten eines bestimmten Pakets auflisten.
  • rosmsg show <msg_name>: Die Beschreibung einer bestimmten Nachricht anzeigen.
  • rosmsg info <msg_name>: Ähnlich wie rosmsg show; liefert Informationen über einen Nachrichtentyp.
  • rosmsg md5 <msg_name>: Die MD5-Prüfsumme einer Nachricht für Datenintegritätsprüfungen erzeugen.

2.4.4 rosservice

rosservice enthält Kommandozeilenwerkzeuge zum Auflisten und Abfragen von ROS-Services.

  • rosservice args: Die für einen Service erforderlichen Argumente ausgeben
  • rosservice call: Einen Service mit den angegebenen Argumenten aufrufen
  • rosservice find: Services nach Typ suchen
  • rosservice info: Informationen über einen Service ausgeben
  • rosservice list: Alle aktiven Services auflisten
  • rosservice type: Den Typ eines Services ausgeben
  • rosservice uri: Die ROSRPC-URI eines Services ausgeben

Beispiele:

  • rosservice list: Alle aktiven Services auflisten.
  • rosservice args /service_name: Die von einem bestimmten Service erforderlichen Argumente ausgeben.
  • rosservice call /service_name "args": Einen Service mit den angegebenen Argumenten aufrufen.
  • rosservice find <service_type>: Services nach ihrem Nachrichtentyp suchen.
  • rosservice info /service_name: Detaillierte Informationen zu einem Service erhalten.
  • rosservice type /service_name: Den Typ eines Services erhalten.
  • rosservice uri /service_name: Die URI eines Services erhalten.

2.4.5 rossrv

rossrv ist ein Kommandozeilenwerkzeug zur Anzeige von Informationen über ROS-Service-Typen. Die Syntax ist sehr ähnlich zu der von rosmsg.

  • rossrv show: Die Beschreibung einer Service-Nachricht anzeigen
  • rossrv info: Detaillierte Informationen über eine Service-Nachricht anzeigen
  • rossrv list: Alle Service-Nachrichtentypen auflisten
  • rossrv md5: Die MD5-Prüfsumme einer Service-Nachricht anzeigen
  • rossrv package: Alle Service-Nachrichten in einem Paket auflisten
  • rossrv packages: Alle Pakete auflisten, die Service-Nachrichten enthalten

Beispiele:

  • rossrv list: Alle Service-Nachrichtentypen in der aktuellen ROS-Umgebung auflisten.
  • rossrv packages: Alle Pakete auflisten, die Service-Nachrichten enthalten.
  • rossrv package <package_name>: Alle Service-Nachrichten eines bestimmten Pakets auflisten.
  • rossrv show <srv_name>: Die Beschreibung einer bestimmten Service-Nachricht anzeigen.
  • rossrv info <srv_name>: Ähnlich wie rossrv show; liefert Informationen über einen Service-Nachrichtentyp.
  • rossrv md5 <srv_name>: Die MD5-Prüfsumme einer Service-Nachricht für Datenintegritätsprüfungen erzeugen.

2.4.6 rosparam

rosparam enthält Kommandozeilenwerkzeuge zum Abrufen und Setzen von ROS-Parametern auf dem Parameter-Server unter Verwendung von YAML-codierten Dateien.

  • rosparam set: Einen Parameter setzen
  • rosparam get: Einen Parameter abrufen
  • rosparam load: Parameter aus einer externen Datei laden
  • rosparam dump: Parameter in eine externe Datei exportieren
  • rosparam delete: Einen Parameter löschen
  • rosparam list: Alle Parameter auflisten

Beispiele:

  • rosparam list: Alle Parameter auf dem Parameter-Server auflisten.
  • rosparam set <param_name> <value>: Einen Parameter mit einem bestimmten Wert setzen.
  • rosparam get <param_name>: Den Wert eines bestimmten Parameters abrufen.
  • rosparam delete <param_name>: Einen bestimmten Parameter löschen.
  • rosparam load <file_name.yaml>: Parameter aus einer YAML-Datei laden.
  • rosparam dump <file_name.yaml>: Die aktuellen Parameter in eine YAML-Datei exportieren.

Diese Befehle ermöglichen die dynamische Interaktion mit verschiedenen Komponenten des ROS-Ökosystems und bieten eine leistungsstarke Möglichkeit, Ihr ROS-basiertes Robotersystem zu verwalten und zu überwachen.