日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理解ROS话题---ROS学习第5篇

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解ROS话题---ROS学习第5篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 通過鍵盤控制turtle
  • 2. ROS話題
    • 2.1 使用rqt_graph
    • 2.2 介紹rostopic
    • 2.3 使用功能rostopic echo
    • 2.4 使用rostopic list
  • 3. ROS消息
    • 3.1 使用rostopic type
  • 4.繼續學習rostopic
    • 4.1 使用rostopic pub
    • 4.2 使用rostopic hz
  • 5. 使用rqt_plot

1. 通過鍵盤控制turtle

(1) 打開一個終端運行roscore
(2) 再打開一個新的終端來打開turtlesim_node節點

kandi@ubuntu:~$ rosrun turtlesim turtlesim_node

彈出一個烏龜的界面
(3) 再打開一個新的終端,通過鍵盤控制turtle

kandi@ubuntu:~$ rosrun turtlesim turtle_teleop_key


現在就可以通過鍵盤上的方向鍵來控制turtle運動了,要確保turtle_teleop_key的終端窗口是在任務最前面,這樣才能獲取方向鍵的輸入,才能看到turtle的移動

2. ROS話題

turtlesim_node節點和turtle_teleop_key節點之間是通過一個ROS話題來相互通信的。turtle_teleop_key在話題上發布鍵盤按下的消息,turtlesim則訂閱該話題以接收消息。我們使用rqt_graph來顯示當前運行的節點和話題。

2.1 使用rqt_graph

打開一個新的終端:

$ rosrun rqt_graph rqt_graph

彈出一個窗口

把鼠標放在/turtle/cmd_vel上方,相應的ROS節點(藍色和綠色)和話題(紅色)就會高亮顯示。其中turtle_teleop_key節點對應藍色的/teleop_turtle,turtlesim_node節點對應綠色的/turtlesim,可以看到,這兩個節點通過一個名為/turtle1/cmd_vel的話題來相互通信。

2.2 介紹rostopic

可通過使用rostopic幫助選項查看可用的rostopic子命令,用法:

$ rostopic -h

rostopic is a command-line tool for printing information about ROS Topics.

Commands:
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen
rostopic find find topics by type
rostopic hz display publishing rate of topic
rostopic info print information about active topic
rostopic list list active topics
rostopic pub publish data to topic
rostopic type print topic or field type
Type rostopic -h for more detailed usage, e.g. ‘rostopic echo -h’

2.3 使用功能rostopic echo

rostopic echo可以顯示在某個話題上發布的數據
用法:

$ rostopic echo [topic]

打開新終端:

rostopic echo /turtle1/cmd_vel

輸入上面命令后剛開始什么信息都看不到,請選中turtle_teleop_key的終端窗口以確保按鍵輸入能夠被捕獲,需要按下鍵盤方向鍵讓turtle_teleop_key節點發布數據。可以看到turtle_teleop_key節點發布的"指令、速度"

現在再來看一下rqt_graph,正如我們所看到的,rostopic echo (這里紅色顯示)現在也訂閱了/turtle1/cmd_vel話題

2.4 使用rostopic list

rostopic list能夠列出當前已被訂閱和發布的所有話題,使用下面命令列出所有發布和訂閱的主題及其類型的詳細信息:

rostopic list -v

3. ROS消息

話題的通信是通過節點間發送ROS消息實現的。為了使發布者(turtle_teleop_key)和訂閱者(turtulesim_node)進行通信,發布者和訂閱者必須發送和接受相同類型的消息。這意味著對話題的類型是由發布在它上面消息的類型決定的。

3.1 使用rostopic type

使用rospotic type命令可以查看發布在話題上的消息的類型,用法:

rostopic type [topic]

運行:

kandi@ubuntu:~$ rostopic type /turtle1/cmd_vel
geometry_msgs/Twist

我們可以通過使用rosmsg查看消息的詳細信息:

kandi@ubuntu:~$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

到現在我們已經知道turtlesim節點想要的消息類型,然后可以發布命令給turtle了。

4.繼續學習rostopic

4.1 使用rostopic pub

rostopic pub可以把數據發布到當前某個正在廣播的話題上
用法:

rostopic pub [topic] [msg_type] [args]

示例:

$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’

此條命令會發送一條消息給turtlesim,告訴它以2.0大小的線速度和1.8大小的角速度移動。對應移動的距離見下圖:

下面來詳細分析一下其中的每一個參數。
●"rostopic pu"這條命令將消息發布到指定的話題
●"-l"這一選項會讓rostopic只發布一條消息,然后退出
●"/turtle1/cmd_vel"這是要發布到的話題的名稱
●"geometry_msgs/Twist"這是發布到話題時使用的消息的類型
●"–"這兩個破折號用來告訴選項解析器,標明之后的參數都不是選型。如果參數前有破折號(-)比如附屬,那么這是必需的。
●如前所述,一個geometry_msgs/Twist消息有兩個浮點型元素:linear和angular。在本例中,’[2.0, 0.0, 0.0]‘表示linear的值為x=2.0, y=0.0, z=0.0,而’[0.0, 0.0, 1.8]'是說angular的值為x=0.0, y=0.0, z=1.8。這些參數實際上使用的是YAML語法,在YAML命令行文檔中有描述。

運行完"rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’"
后turtle已經停止移動了,如果要保持移動狀態,turtle需要一個穩定的頻率為1Hz的指令流程才能保持移動的狀態。我們可以使用rostopic pub -r命令來發布源源不斷的命令,下面命令以1Hz的速度發布geometry_msgs/Twist 消息到/turtle1/cmd_vel話題中。

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 – ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, -1.8]’


我們還可以看一下rqt_graph中的情形,可以看到rostopic pub節點(紅色)正在與rostopic echo節點(綠色)進行通信:

可以看到,turtle正沿著一個圓形軌跡持續運動。我們可以在新終端中通過rostopic echo命令來查看turtlesim所發布的數據

4.2 使用rostopic hz

rostopic hz報告數據發布的頻率,用法:

rostopic hz [topic]

我們看一下turtlesim_node發布/turtle/pose有多快:

現在我們知道了turtlesim正以大概60Hz的頻率發布有關烏龜的數據,我們也可以結合rostopic type和rosmsg show命令來獲取關于某個話題的更深層次信息

kandi@ubuntu:~$ rostopic type /turtle1/cmd_vel | rosmsg show
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

5. 使用rqt_plot

rqt_plot命令可以在滾動時間圖上顯示發布到某個話題上的數據,這里我們使用rqt_plot命令來繪制正被發布到/turtle1/pose話題上的數據,首先,在一個新終端中輸入:

$ rosrun rqt_plot rqt_plot

會彈出一個新窗口,可以在左上角的文本框里面添加任務想要繪制的話題。在里面輸入/turtle1/pose/x后,之前不能按下的加號按鈕將會變亮。按一下該按鈕,并對/turtle1/pose/y重復相同的過程。現在你會在圖中看到turtle的x-y位置

按下減號按鈕會顯示一組菜單可以讓你在圖中隱藏指定的話題。現在隱藏掉你剛才添加的話題并添加/turtle1/pose/theta,你會看到如下所示的圖:

總結

以上是生活随笔為你收集整理的理解ROS话题---ROS学习第5篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜视频网站在线观看 | 92av视频 | 男人插女人免费视频 | 日韩在线免费视频观看 | 精品成人无码久久久久久 | 日韩激情久久 | 国产电影一区二区三区 | www.jizzcom | 国产精品久久久久国产a级 国产一区二区在线播放 | 亚州av一区二区 | 国产精品乱 | 日本啊啊视频 | 韩国三级黄色 | 欧美日韩一区二区在线播放 | 午夜视频h | 91成人在线观看喷潮蘑菇 | 婷婷激情五月网 | 一区二区三区 日韩 | 999精品在线 | 日韩视频在线观看一区 | 性色av浪潮 | 久久国产热视频 | 吸咬奶头狂揉60分钟视频 | www,超碰| 日美av| 91娇羞白丝 | 国产中年熟女高潮大集合 | 欧美性色网站 | 一本久久综合 | 欧美成人综合在线 | 免费超碰在线观看 | 日韩一区二区三区精品视频 | 91精品国产综合久久福利 | 免费黄网站在线 | 97精品一区二区三区 | 成人av动漫 | 3d动漫精品啪啪一区二区三区免费 | 被黑人啪到哭的番号922在线 | 97夜色 | 欧美骚少妇| 日本黄色片. | 最新国产在线视频 | 4438x全国最大成人 | 伊是香蕉大人久久 | 精品国产乱码久久久久久蜜臀网站 | 欧美真人性野外做爰 | 色网站在线 | 国产性在线 | 麻豆传媒在线看 | 久久久久久久美女 | av青青草原 | 温柔女教师在线观看 | 一本综合久久 | 亚洲AV成人无码精电影在线 | 香蕉网站在线观看 | 91久久影院 | 4438x全国最大成人网 | 精品日韩av | 久久精品视频无码 | aaa亚洲精品| 青青草视频成人 | 国产精品无码在线播放 | 亚洲欧洲中文 | 高贵麻麻被调教成玩物 | 老头老太做爰xxx视频 | 91久久色| 欧美精品在线第一页 | 欧美一区二区三区成人久久片 | 国产婷婷色综合av蜜臀av | 国产精品69av| 国产精品久久久久久在线观看 | 性感少妇av | 挪威xxxx性hd极品 | 99视频导航 | 啪啪在线视频 | 北条麻妃一区二区三区 | 丰满少妇一区二区三区专区 | 中文字幕黑人 | 精品人妻一区二区三区久久嗨 | 国产手机在线观看 | 无码国产精品久久一区免费 | 国产精品日本 | 四虎影裤| 国产精品乱码久久久久久 | 欧美激情一区二区三区 | 欧美性生活视频 | 黄色成人小视频 | 涩涩涩av | 中文字幕人妻无码系列第三区 | 日本激情在线 | 成人免费无遮挡无码黄漫视频 | 岛国av动作片 | 成人综合久久 | 国产乱子伦精品无码码专区 | 伊人中文在线 | 91麻豆蜜桃| 打屁股视频网站 | 国产操操操 | 青草精品视频 |