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 testenrosnode list: Alle aktiven Knoten auflistenrosnode info: Informationen über einen Knoten ausgebenrosnode machine: Knoten auflisten, die auf einer bestimmten Maschine laufenrosnode kill: Einen Knoten beendenrosnode 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 anzeigenrostopic delay: Verzögerung eines Topics mit Header anzeigenrostopic echo: Nachrichten auf dem Bildschirm ausgebenrostopic find: Topics nach Typ suchenrostopic hz: Veröffentlichungsfrequenz eines Topics anzeigenrostopic info: Informationen über ein Topic anzeigenrostopic list: Alle aktiven Topics auflistenrostopic pub: Daten auf einem Topic veröffentlichenrostopic type: Den Typ eines Topics ausgeben
Beispiele:
rostopic list(-v): Gibt die Namen aktuell laufender Topics aus (mit-vfü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 anzeigenrosmsg info: Detaillierte Informationen über eine Nachricht anzeigenrosmsg list: Alle Nachrichtentypen auflistenrosmsg md5: Die MD5-Prüfsumme einer Nachricht anzeigenrosmsg package: Alle Nachrichten in einem Paket auflistenrosmsg 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 wierosmsg 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 ausgebenrosservice call: Einen Service mit den angegebenen Argumenten aufrufenrosservice find: Services nach Typ suchenrosservice info: Informationen über einen Service ausgebenrosservice list: Alle aktiven Services auflistenrosservice type: Den Typ eines Services ausgebenrosservice 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 anzeigenrossrv info: Detaillierte Informationen über eine Service-Nachricht anzeigenrossrv list: Alle Service-Nachrichtentypen auflistenrossrv md5: Die MD5-Prüfsumme einer Service-Nachricht anzeigenrossrv package: Alle Service-Nachrichten in einem Paket auflistenrossrv 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 wierossrv 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 setzenrosparam get: Einen Parameter abrufenrosparam load: Parameter aus einer externen Datei ladenrosparam dump: Parameter in eine externe Datei exportierenrosparam delete: Einen Parameter löschenrosparam 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.