日韩性视频-久久久蜜桃-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篇的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 风间由美一区二区三区 | 成人在线视屏 | 2019天天操 | 日韩精品视频免费 | 国产123区 | 欧美午夜精品久久久久免费视 | 亚洲在线综合 | 国产做受高潮动漫 | 国内自拍青青草 | 国产精品一卡二卡 | www.av在线 | 国产精品51| 一级大黄毛片 | 严厉高冷老师动漫播放 | 色悠久久综合 | av动漫免费观看 | av中文字幕av | 国产精品久久久久久免费免熟 | 伊人久久久久噜噜噜亚洲熟女综合 | 涩涩视频免费 | 国产成人8x视频一区二区 | 免费看91| 成年人午夜影院 | 狼人综合网 | 国产视频污 | 免费看的毛片 | www.色99| 青青青av| 国产一区二区三区自拍 | 国产一二区在线观看 | 第一色网站 | 99热免费在线 | 一区二区少妇 | 天天干夜夜添 | 荡女精品导航 | 老司机成人在线 | 男人av资源 | 久久婷婷六月 | www.狠狠操 | 日韩极品视频 | 久久五月网 | 天堂中文字幕 | 午夜a级片 | 天天综合网永久 | 国产婷婷色一区二区三区 | 国产色悠悠 | 亚洲国产电影在线观看 | 51成人做爰www免费看网站 | 亚洲天堂婷婷 | 黑人一区| 色图插插插| 鸥美一级片 | av黄色一级片 | 拔擦8x成人一区二区三区 | 欧美一级淫片bbb一84 | 亚洲砖区免费 | 丝袜美女啪啪 | 超碰97久久| 麻豆传媒网站在线观看 | 欧美整片在线 | 一个人免费在线观看视频 | 欧美日韩精品在线观看 | 亚洲AV蜜桃永久无码精品性色 | 日韩经典午夜福利发布 | 顶级毛茸茸aaahd极品 | 怡红院成人影院 | 射射色| 亚洲综合在线一区 | 国产美女精品一区二区三区 | 成人欧美一区二区三区黑人冫 | 红猫大本营在线观看的 | 91嫩草精品 | 国产麻豆成人传媒免费观看 | 国产精品视频久久久久久 | 超碰免费在线 | 秋霞国产午夜精品免费视频 | 狼人久久| 日韩专区一区 | 日本一区二区高清视频 | 日韩在线一区二区三区四区 | 黄色片中文字幕 | 亚洲黄色小说网 | 美女被日网站 | 一道本久在线中文字幕 | 无码人妻精品一区二区50 | 国产a视频精品免费观看 | 九九国产 | 精品视频久久久久久久 | 激情欧美亚洲 | 国产男女网站 | 桃花色综合影院 | 中文字幕日韩电影 | 亚洲狠狠操 | 亚洲专区在线播放 | 无码人妻丰满熟妇奶水区码 | 奇米影视777四色 | 右手影院亚洲欧美 | 午夜影视在线观看 | 福利午夜视频 |