ROS 2主題-topics-

      網(wǎng)友投稿 1254 2025-04-01

      前序:ROS 2節(jié)點-nodes-

      視頻教程(Linux):https://www.bilibili.com/video/BV16t4y197Br/

      本節(jié)詳細(xì)介紹主題topic。

      1. 如何理解主題topic:

      ROS 2將復(fù)雜的系統(tǒng)分解為許多模塊化的節(jié)點。主題是ROS圖(ROS graph)的重要元素,功能為節(jié)點交換消息的總線。節(jié)點可以將數(shù)據(jù)發(fā)布到任意數(shù)量的主題,與此同時,可以實現(xiàn)對任意數(shù)量主題的訂閱。主題是節(jié)點間數(shù)據(jù)交互的重要方式,同樣也適用于系統(tǒng)各種不同模塊之間的交互。

      2. 主題topic有哪些命令功能:

      使用如下命令:

      ros2 topic -h

      顯示如下:

      主要有:

      bw:顯示所查閱主題的帶寬

      delay:顯示延遲

      echo:輸出主題消息

      find:列出選定主題

      hz:輸出平均發(fā)布頻率

      info:顯示主題消息

      list:列出可使用的主題表

      pub:發(fā)布消息到主題

      type:輸出主題類型

      3. 如何掌握主題topic

      如之前一節(jié)學(xué)習(xí)類似,先打開turtlesim和teleop節(jié)點:

      ros2 run turtlesim turtlesim_node

      ros2 run turtlesim turtle_teleop_key

      rqt_graph工具:

      3.1 命令工具

      在新終端中運行該命令ros2 topic list將返回系統(tǒng)中當(dāng)前活動的所有主題的列表:

      更詳細(xì)的功能:ros2 topic list -t

      返回相同的主題列表,這次主題類型顯示在每個主題后面的括號中:

      主題具有名稱和類型。這些屬性(尤其是類型)是節(jié)點用于交互相同信息的基礎(chǔ)。

      3.2 顯示主題消息

      要查看有關(guān)某個主題的發(fā)布數(shù)據(jù),使用:

      ros2 topic echo

      例如:/turtle1/cmd_vel

      ros2 topic echo /turtle1/cmd_vel

      如果沒有消息,該命令不會返回任何數(shù)據(jù)。

      點擊鍵盤方向左鍵。

      3.3 顯示主題信息

      主題不必只是點對點的交互;它可以是一對多,多對一或多對多。

      使用如下命令查閱主題狀態(tài)信息:

      ros2 topic info /turtle1/cmd_vel

      一個發(fā)布,兩個訂閱,思考分別為哪些?

      3.4 訂閱發(fā)布類型

      節(jié)點使用消息通過主題發(fā)送和接收數(shù)據(jù)。發(fā)布者和訂閱者必須發(fā)送和接收相同類型的消息才能進(jìn)行通信。

      上述主題對應(yīng)的類似分別如下:

      /parameter_events [rcl_interfaces/msg/ParameterEvent]

      /rosout [rcl_interfaces/msg/Log]

      /turtle1/cmd_vel [geometry_msgs/msg/Twist]

      /turtle1/color_sensor [turtlesim/msg/Color]

      /turtle1/pose [turtlesim/msg/Pose]

      其中,

      geometry_msgs/msg/Twist

      表示在在geometry_msgs包中有一個msg被稱為Twist。

      可以運行此類型以了解其詳細(xì)信息,特別是消息期望的數(shù)據(jù)結(jié)構(gòu)。

      ros2?interface?show?.msg

      如:

      ros2 interface show geometry_msgs/msg/Twist.msg

      3.5 發(fā)布主題消息

      知道消息結(jié)構(gòu)后,可以使用以下命令直接從命令行將數(shù)據(jù)發(fā)布到主題上:

      ros2 topic pub ""

      ROS 2主題-topics-

      該''參數(shù)是傳遞給主題的實際數(shù)據(jù)。

      注意,windows使用""。

      此參數(shù)需要以YAML語法輸入。輸入完整的命令,如下所示:

      ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

      --once?是一個可選參數(shù),意思是“發(fā)布一條消息然后退出”。

      更多參數(shù):

      ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

      以1 Hz的頻率發(fā)布速度指令。

      改變不同的角速度,可以畫出不同半徑的圓形軌跡。

      顯示小烏龜目前的坐標(biāo)信息:

      ros2 topic echo /turtle1/pose

      3.6 主題頻率

      查看主題消息發(fā)布的頻率使用如下命令:

      ros2 topic hz /turtle1/pose

      頻率約60hz左右,如下圖所示:

      4. 關(guān)閉節(jié)點

      很多節(jié)點在運行。不要忘記通過關(guān)閉終端窗口或在每個終端中輸入Ctrl+C停止它們。

      這些內(nèi)容基本于ROS1相似,部分將rostopic更新為ros2 topic。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何利用公式實現(xiàn)Excel表格自動隔行填充顏色(Excel怎么隔行填充顏色)
      下一篇:怎樣改變模板樣式(模板格式怎么改?)
      相關(guān)文章
      亚洲а∨精品天堂在线| 精品亚洲成A人无码成A在线观看| 亚洲欧洲国产综合AV无码久久| 亚洲精品免费观看| 亚洲综合熟女久久久30p| 国产亚洲福利一区二区免费看| 亚洲AV日韩综合一区| 亚洲成AV人片在WWW| 亚洲GV天堂GV无码男同| 亚洲国产美女精品久久久| 亚洲一级特黄特黄的大片| 97se亚洲国产综合自在线| 中文字幕在线观看亚洲视频| 亚洲国产日韩精品| 亚洲人成无码网站在线观看 | 亚洲国产精品乱码一区二区| 亚洲精品无码av人在线观看| 国产亚洲综合成人91精品| 亚洲国产另类久久久精品| 亚洲国产精品久久久久婷婷老年| 亚洲AV第一页国产精品| 伊人久久综在合线亚洲2019| 亚洲无砖砖区免费| 亚洲精品一二三区| 久久精品国产亚洲av天美18| 亚洲AV成人精品日韩一区18p| 亚洲精品和日本精品| 亚洲一区爱区精品无码| 亚洲精品无码专区久久久 | 国产亚洲3p无码一区二区| 亚洲AV永久精品爱情岛论坛| 亚洲国产综合精品中文第一区| 久久久久亚洲av无码专区导航| 亚洲精品美女视频| 色噜噜亚洲男人的天堂| 亚洲av永久无码天堂网| 亚洲日韩在线第一页| 亚洲精品无码久久久影院相关影片| 亚洲成a人片在线观看无码专区| 亚洲一区二区三区电影| tom影院亚洲国产一区二区|