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 testenrosnode list: Alle actieve nodes weergevenrosnode info: Informatie over een node afdrukkenrosnode machine: Nodes weergeven die op een specifieke machine draaienrosnode kill: Een node beëindigenrosnode 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 weergevenrostopic delay: De vertraging van een topic met header weergevenrostopic echo: Berichten naar het scherm afdrukkenrostopic find: Topics zoeken op typerostopic hz: De publicatiefrequentie van een topic weergevenrostopic info: Informatie over een topic weergevenrostopic list: Alle actieve topics weergevenrostopic pub: Gegevens naar een topic publicerenrostopic type: Het type van een topic afdrukken
Voorbeelden:
rostopic list(-v): Druk de namen af van topics die momenteel actief zijn (met-vvoor 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 weergevenrosmsg info: Gedetailleerde informatie over een bericht weergevenrosmsg list: Alle berichttypen weergevenrosmsg md5: De MD5-checksum van een bericht weergevenrosmsg package: Alle berichten in een pakket weergevenrosmsg 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 metrosmsg 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 vereistrosservice call: Een service aanroepen met de opgegeven argumentenrosservice find: Services zoeken op typerosservice info: Informatie over een service afdrukkenrosservice list: Alle actieve services weergevenrosservice type: Het type van een service afdrukkenrosservice 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 weergevenrossrv info: Gedetailleerde informatie over een servicebericht weergevenrossrv list: Alle servicebericht-typen weergevenrossrv md5: De MD5-checksum van een servicebericht weergevenrossrv package: Alle serviceberichten in een pakket weergevenrossrv 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 metrossrv 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 instellenrosparam get: Een parameter ophalenrosparam load: Parameters laden vanuit een extern bestandrosparam dump: Parameters exporteren naar een extern bestandrosparam delete: Een parameter verwijderenrosparam 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.