ROS2学习(十一).ROS概念 - 命令行工具的使用
命令行工具
- 概述
- 用法
- 樣例
- 其他說(shuō)明
- 實(shí)現(xiàn)
概述
ROS 2包含有一系列的命令行工具用以對(duì)ROS 2系統(tǒng)觀測(cè)。
用法
命令ros2是所有命令的入口,它具有各種子命令,用于觀察并處理節(jié)點(diǎn)、主題、服務(wù)等。
要查看所有的子命令,請(qǐng)運(yùn)行
ros2 --help
子命令包括:
- action : 對(duì)ROS action的讀寫(xiě)
- bag : 記錄/回放rosbag
- component : 管理組件容器
- daemon : 對(duì)ROS 2守護(hù)進(jìn)程的讀寫(xiě)
- doctor : 檢查ROS關(guān)于潛在問(wèn)題的配置
- interface : 顯示ROS interface的信息
- launch : 查看或運(yùn)行一個(gè)launch文件
- lifecycle : 查看或管理節(jié)點(diǎn)的生命周期
- multicast : 查看管理廣播
- node : 查看ROS節(jié)點(diǎn)
- param : 查看、配置節(jié)點(diǎn)參數(shù)
- pkg : 查看ROS包
- run : 運(yùn)行ROS節(jié)點(diǎn)
- security :配置安全設(shè)定
- service :查看、調(diào)用ROS服務(wù)
- topic :查看、發(fā)布ROS主題
- wtf :采用wtf作為doctor的別名
樣例
使用命令行工具可以運(yùn)行一個(gè)發(fā)布-監(jiān)聽(tīng)的樣例,可以使用topic子命令來(lái)發(fā)布和顯示話(huà)題中的消息。
在一個(gè)終端中發(fā)布消息:
$ ros2 topic pub /chatter std_msgs/String "data: Hello world" 1628647237.530682 [0] ros2: using network interface eno1 (udp/192.168.254.24) selected arbitrarily from: eno1, lxdbr0 publisher: beginning loop publishing #1: std_msgs.msg.String(data='Hello world')publishing #2: std_msgs.msg.String(data='Hello world')publishing #3: std_msgs.msg.String(data='Hello world')在另一個(gè)終端中,可以打印接收到的消息
$ ros2 topic echo /chatter 1628647264.220949 [0] ros2: using network interface eno1 (udp/192.168.254.24) selected arbitrarily from: eno1, lxdbr0 data: Hello world --- data: Hello world --- data: Hello world --- data: Hello world --- data: Hello world其他說(shuō)明
ROS2使用分布式發(fā)現(xiàn)過(guò)程以使得節(jié)點(diǎn)之間可以互相連接。不像ROS1的ROS Master,ROS2中并未使用集中式的發(fā)現(xiàn)機(jī)制,因此ROS節(jié)點(diǎn)發(fā)現(xiàn)ROS圖中的所有其他參與者需要花費(fèi)一定的時(shí)間。因此后臺(tái)有一個(gè)長(zhǎng)時(shí)間運(yùn)行的守護(hù)進(jìn)程,用以存儲(chǔ)ROS圖的信息,以更快地響應(yīng)例如節(jié)點(diǎn)名稱(chēng)列表等的查詢(xún)。
第一次使用命令行工具時(shí),守護(hù)進(jìn)程將自動(dòng)啟動(dòng)。您也可以運(yùn)行ros2 daemon --help命令查看如何使用守護(hù)進(jìn)程。
但是目前看來(lái),這個(gè)命令只支持啟動(dòng)、停止和查看啟動(dòng)狀態(tài)三種子命令:)
實(shí)現(xiàn)
ros2命令的源碼可以在https://github.com/ros2/ros2cli上找到。
ros2工具目前被實(shí)現(xiàn)為一個(gè)框架,可以通過(guò)插件進(jìn)行擴(kuò)展。
例如,sros2包提供了security子命令,如果安裝了sros2包,該命令會(huì)被ros2工具自動(dòng)檢測(cè)到。
總結(jié)
以上是生活随笔為你收集整理的ROS2学习(十一).ROS概念 - 命令行工具的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ROS2学习(十).ROS概念 - 主题
- 下一篇: ROS2学习(十二).ROS概念 - R