Veelgebruikte ROS-commando's

In een robotsysteem kunnen er gelijktijdig enkele tot tientallen nodes draaien. Elke node heeft een unieke naam en ze communiceren via topics, services, berichten, parameters en meer. Een veelvoorkomende uitdaging is: wanneer u een node wilt aanpassen om met een andere bestaande node te communiceren, hoe haalt u dan de topic en het berichtformaat op die de andere node gebruikt?

ROS biedt een reeks handige command-line-tools om uiteenlopende informatie over verschillende nodes op te vragen. De meest gebruikte commando's zijn:

  • rosnode: Nodes beheren
  • rostopic: Topics beheren
  • rosservice: Services beheren
  • rosmsg: Berichttypen (msg) beheren
  • rossrv: Service-berichttypen (srv) beheren
  • rosparam: Parameters beheren

Deze commando's zijn dynamisch, in tegenstelling tot de statische bestandssysteem-commando's. Nadat het ROS-programma is gestart, stellen deze commando's u in staat om dynamisch informatie op te vragen over actieve nodes of parameters.

rosnode

rosnode wordt gebruikt om informatie over ROS-nodes op te halen.

  • rosnode ping: De verbindingsstatus met een node testen
  • rosnode list: Alle actieve nodes weergeven
  • rosnode info: Informatie over een node afdrukken
  • rosnode machine: Nodes weergeven die op een specifieke machine draaien
  • rosnode kill: Een node beëindigen
  • rosnode cleanup: Onbereikbare nodes opschonen

rostopic

rostopic bevat command-line-tools om debuginformatie over ROS-topics weer te geven, zoals publishers, subscribers, publicatiefrequentie en ROS-berichten. Het bevat ook een experimentele Python-bibliotheek voor het dynamisch ophalen van informatie over topics en interactie ermee.

  • rostopic bw: Het bandbreedtegebruik van een topic weergeven
  • rostopic delay: De vertraging van een topic met header weergeven
  • rostopic echo: Berichten naar het scherm afdrukken
  • rostopic find: Topics zoeken op type
  • rostopic hz: De publicatiefrequentie van een topic weergeven
  • rostopic info: Informatie over een topic weergeven
  • rostopic list: Alle actieve topics weergeven
  • rostopic pub: Gegevens naar een topic publiceren
  • rostopic type: Het type van een topic afdrukken

Voorbeelden:

  • rostopic list(-v): Druk de namen af van topics die momenteel actief zijn (met -v voor gedetailleerde informatie zoals het aantal publishers en subscribers).
  • rostopic pub /topic_name msg_type "msg_content": Een bericht publiceren naar een topic.
  • rostopic echo /topic_name: Het huidige bericht dat op een topic wordt gepubliceerd ophalen en afdrukken.
  • rostopic info /topic_name: Gedetailleerde informatie over een topic verkrijgen, inclusief berichttype en informatie over publishers en subscribers.
  • rostopic hz /topic_name: De publicatiefrequentie van een topic weergeven.
  • rostopic bw /topic_name: Het bandbreedtegebruik van een topic weergeven.

2.4.3 rosmsg

rosmsg is een command-line-tool om informatie over ROS-berichttypen weer te geven.

  • rosmsg show: De beschrijving van een bericht weergeven
  • rosmsg info: Gedetailleerde informatie over een bericht weergeven
  • rosmsg list: Alle berichttypen weergeven
  • rosmsg md5: De MD5-checksum van een bericht weergeven
  • rosmsg package: Alle berichten in een pakket weergeven
  • rosmsg packages: Alle pakketten weergeven die berichten bevatten

Voorbeelden:

  • rosmsg list: Alle berichttypen in de huidige ROS-omgeving weergeven.
  • rosmsg packages: Alle pakketten weergeven die berichttypen bevatten.
  • rosmsg package <package_name>: Alle berichten in een specifiek pakket weergeven.
  • rosmsg show <msg_name>: De beschrijving van een specifiek bericht weergeven.
  • rosmsg info <msg_name>: Vergelijkbaar met rosmsg show, levert informatie over een berichttype.
  • rosmsg md5 <msg_name>: De MD5-checksum van een bericht genereren voor controle van de gegevensintegriteit.

2.4.4 rosservice

rosservice bevat command-line-tools om ROS-services op te sommen en op te vragen.

  • rosservice args: De argumenten afdrukken die een service vereist
  • rosservice call: Een service aanroepen met de opgegeven argumenten
  • rosservice find: Services zoeken op type
  • rosservice info: Informatie over een service afdrukken
  • rosservice list: Alle actieve services weergeven
  • rosservice type: Het type van een service afdrukken
  • rosservice uri: De ROSRPC-URI van een service afdrukken

Voorbeelden:

  • rosservice list: Alle actieve services weergeven.
  • rosservice args /service_name: De argumenten van een specifieke service afdrukken.
  • rosservice call /service_name "args": Een service aanroepen met de opgegeven argumenten.
  • rosservice find <service_type>: Services zoeken op berichttype.
  • rosservice info /service_name: Gedetailleerde informatie over een service ophalen.
  • rosservice type /service_name: Het type van een service ophalen.
  • rosservice uri /service_name: De URI van een service ophalen.

2.4.5 rossrv

rossrv is een command-line-tool om informatie over ROS-servicetypen weer te geven. De syntaxis lijkt sterk op die van rosmsg.

  • rossrv show: De beschrijving van een servicebericht weergeven
  • rossrv info: Gedetailleerde informatie over een servicebericht weergeven
  • rossrv list: Alle servicebericht-typen weergeven
  • rossrv md5: De MD5-checksum van een servicebericht weergeven
  • rossrv package: Alle serviceberichten in een pakket weergeven
  • rossrv packages: Alle pakketten weergeven die serviceberichten bevatten

Voorbeelden:

  • rossrv list: Alle servicebericht-typen in de huidige ROS-omgeving weergeven.
  • rossrv packages: Alle pakketten weergeven die serviceberichten bevatten.
  • rossrv package <package_name>: Alle serviceberichten in een specifiek pakket weergeven.
  • rossrv show <srv_name>: De beschrijving van een specifiek servicebericht weergeven.
  • rossrv info <srv_name>: Vergelijkbaar met rossrv show, levert informatie over een servicebericht-type.
  • rossrv md5 <srv_name>: De MD5-checksum van een servicebericht genereren voor controle van de gegevensintegriteit.

2.4.6 rosparam

rosparam bevat command-line-tools voor het ophalen en instellen van ROS-parameters op de Parameter Server, met behulp van YAML-gecodeerde bestanden.

  • rosparam set: Een parameter instellen
  • rosparam get: Een parameter ophalen
  • rosparam load: Parameters laden vanuit een extern bestand
  • rosparam dump: Parameters exporteren naar een extern bestand
  • rosparam delete: Een parameter verwijderen
  • rosparam list: Alle parameters weergeven

Voorbeelden:

  • rosparam list: Alle parameters op de Parameter Server weergeven.
  • rosparam set <param_name> <value>: Een parameter met een specifieke waarde instellen.
  • rosparam get <param_name>: De waarde van een specifieke parameter ophalen.
  • rosparam delete <param_name>: Een specifieke parameter verwijderen.
  • rosparam load <file_name.yaml>: Parameters laden vanuit een YAML-bestand.
  • rosparam dump <file_name.yaml>: De huidige parameters exporteren naar een YAML-bestand.

Met deze commando's kunt u dynamisch interacteren met de verschillende componenten van het ROS-ecosysteem, wat een krachtige manier biedt om uw op ROS gebaseerde robotsysteem te beheren en te monitoren.