国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ROS2入門】理解 ROS 2 Topics 話題

這篇具有很好參考價(jià)值的文章主要介紹了【ROS2入門】理解 ROS 2 Topics 話題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

????????大家好,我是虎哥,從今天開(kāi)始,我將花一段時(shí)間,開(kāi)始將自己從ROS1切換到ROS2,在上一篇中,我們一起了解ROS 2中節(jié)點(diǎn)的功能以及與之交互的工具, 這一篇,我們主要會(huì)圍繞ROS中另外一個(gè)重要的概念“Topic ”,詳細(xì)其具體的操作指令。

目錄

一、ROS2中話題(Topic in ROS 2)

1 、啟動(dòng)模擬節(jié)點(diǎn)

2、 rqt_graph

3、 ros2 topic list

4 、ros2 topic echo

5、 ros2 topic info

6 、ros2 interface show

7 、ros2 topic pub

8 、ros2 topic hz

9、總結(jié)


一、ROS2中話題(Topic in ROS 2)

ROS 2將復(fù)雜系統(tǒng)分解為許多模塊化節(jié)點(diǎn)?!癟opic ”是ROS圖的一個(gè)重要元素,充當(dāng)節(jié)點(diǎn)交換消息的總線。

【ROS2入門】理解 ROS 2 Topics 話題

?節(jié)點(diǎn)可以向任意數(shù)量的主題發(fā)布數(shù)據(jù),并同時(shí)訂閱任意數(shù)量的話題“Topic ”。

【ROS2入門】理解 ROS 2 Topics 話題

?主題“Topic ”是數(shù)據(jù)在節(jié)點(diǎn)之間移動(dòng)的重要方式之一,因此在系統(tǒng)的不同部分之間移動(dòng)。

1 、啟動(dòng)模擬節(jié)點(diǎn)

到現(xiàn)在,你應(yīng)該可以輕松地啟動(dòng)turtlesim。打開(kāi)一個(gè)終端,執(zhí)行如下命令:

ros2 run turtlesim turtlesim_node

打開(kāi)一個(gè)新的終端,啟動(dòng)遙控節(jié)點(diǎn):

ros2 run turtlesim turtle_teleop_key

2、 rqt_graph

在本教程中,我們將使用rqt_graph來(lái)可視化不斷變化的節(jié)點(diǎn)和主題,以及它們之間的連接。Turtlesim教程告訴您如何安裝rqt及其所有插件,包括rqt_graph。

sudo apt update
sudo apt install ros-eloquent-rqt*

啟動(dòng)

rqt_graph

【ROS2入門】理解 ROS 2 Topics 話題

?你還可以打開(kāi) rqt_graph 通過(guò)打開(kāi)rqt 選擇 Plugins > Introspection > Nodes Graph.

【ROS2入門】理解 ROS 2 Topics 話題

【ROS2入門】理解 ROS 2 Topics 話題?????????您應(yīng)該看到上面的節(jié)點(diǎn)和主題,以及圍繞圖形外圍的兩個(gè)操作(現(xiàn)在讓我們忽略它們)。如果將鼠標(biāo)懸停在中心的主題上,您將看到如上圖所示的顏色高亮顯示。

????????該圖描述了/turtlesim節(jié)點(diǎn)和/teolep_turtle節(jié)點(diǎn)如何在主題上相互通信。/teolep_turtle節(jié)點(diǎn)正在向/turtle1/cmd_vel主題發(fā)布數(shù)據(jù)(您輸入的鍵擊以移動(dòng)海龜),/turtlesim節(jié)點(diǎn)訂閱該主題以接收數(shù)據(jù)。

【ROS2入門】理解 ROS 2 Topics 話題

?????????rqt_graph的突出顯示功能在檢查具有以多種不同方式連接的多個(gè)節(jié)點(diǎn)和主題的更復(fù)雜系統(tǒng)時(shí)非常有用。rqt_graph是一個(gè)圖形化的工具?,F(xiàn)在我們來(lái)看一些用于主題的命令行工具。

3、 ros2 topic list

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

ros2 topic list

【ROS2入門】理解 ROS 2 Topics 話題

/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

ros2 topic list -t將返回相同的主題列表,這一次主題類型附加在每個(gè)主題后面的括號(hào)中:

ros2 topic list -t

【ROS2入門】理解 ROS 2 Topics 話題

nvidia@ubuntu:~$ ros2 topic list -t
/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]

主題"Topic"有名稱和類型。這些屬性,特別是類型,是節(jié)點(diǎn)在主題上移動(dòng)時(shí)如何知道自己在談?wù)撓嗤男畔⒌摹?/p>

如果您想知道所有這些主題在rqt_graph中的位置,可以取消選中下面的所有框

【ROS2入門】理解 ROS 2 Topics 話題

?不過(guò),目前暫時(shí),請(qǐng)選中這些選項(xiàng)以避免混淆。

【ROS2入門】理解 ROS 2 Topics 話題

4 、ros2 topic echo

要查看主題上發(fā)布的數(shù)據(jù),請(qǐng)使用:

ros2 topic echo <topic_name>

由于我們知道/teolep_turtle通過(guò)/turtle1/cmd_vel主題向/turtlesim發(fā)布數(shù)據(jù),因此讓我們使用echo來(lái)反思該主題:

ros2 topic echo /turtle1/cmd_vel

【ROS2入門】理解 ROS 2 Topics 話題

?現(xiàn)在,回到 rqt_graph and 取消選擇 the Debug box.

【ROS2入門】理解 ROS 2 Topics 話題

?/_ros2cll_29047是由我們剛剛運(yùn)行的echo創(chuàng)建的節(jié)點(diǎn)(數(shù)字會(huì)改變)?,F(xiàn)在,您可以看到發(fā)布者正在通過(guò)cmd_vel主題發(fā)布數(shù)據(jù),并且訂閱了兩個(gè)訂閱者。

5、 ros2 topic info

主題不一定只有點(diǎn)對(duì)點(diǎn)的交流;它可以是一對(duì)多、多對(duì)一或多對(duì)多。另一種方法是運(yùn)行:

ros2 topic info /turtle1/cmd_vel

會(huì)回復(fù)如下信息:

nvidia@ubuntu:~$ ros2 topic info /turtle1/cmd_vel
Type: geometry_msgs/msg/Twist
Publisher count: 1
Subscriber count: 1

6 、ros2 interface show

節(jié)點(diǎn)使用消息通過(guò)主題發(fā)送數(shù)據(jù)。發(fā)布者和訂閱者必須發(fā)送和接收相同類型的消息才能進(jìn)行通信。在運(yùn)行ros2主題列表之后,我們前面看到的主題類型-t讓我們知道每個(gè)主題可以發(fā)送什么類型的消息。

ros2 topic list -t

會(huì)回復(fù)帶類型的話題:

nvidia@ubuntu:~$ ros2 topic list -t
/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]

cmd_vel主題的類型:

geometry_msgs/msg/Twist

這意味著在geometry_msgs包中有一個(gè)名為Twist的msg。

現(xiàn)在,我們可以在該類型上運(yùn)行ros2 interface show<type>.msg,以了解其詳細(xì)信息,特別是消息所需的數(shù)據(jù)結(jié)構(gòu)。

ros2 interface show geometry_msgs/msg/Twist

會(huì)得到如下回復(fù):

nvidia@ubuntu:~$ ros2 interface show geometry_msgs/msg/Twist
# This expresses velocity in free space broken into its linear and angular parts.
?
Vector3  linear
Vector3  angular

回憶一下,之前我們的ECHO話題:

nvidia@ubuntu:~$ ros2 topic echo /turtle1/cmd_vel
linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 2.0
---

linear 和angular 都是一個(gè)數(shù)組,每個(gè)數(shù)組有3個(gè)元素。

7 、ros2 topic pub

現(xiàn)在已經(jīng)有了消息結(jié)構(gòu),可以使用以下命令行直接將數(shù)據(jù)發(fā)布到主題上:

ros2 topic pub <topic_name> <msg_type> '<args>'

“<args>”參數(shù)是您將傳遞給主題的實(shí)際數(shù)據(jù),在上一節(jié)中剛剛發(fā)現(xiàn)的結(jié)構(gòu)中。需要注意的是,這個(gè)參數(shù)需要以YAML語(yǔ)法輸入。按如下方式輸入完整命令:

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}}"

這個(gè)比起之前ROS1上還是直管了很多。

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

【ROS2入門】理解 ROS 2 Topics 話題

?回復(fù)內(nèi)容為:

publisher: beginning loop
publishing #1: geometry_msgs.msg.Twist(linear=geometry_msgs.msg.Vector3(x=2.0, y=0.0, z=0.0), angular=geometry_msgs.msg.Vector3(x=0.0, y=0.0, z=1.8))

Turtlesim(以及通常用來(lái)模仿的真實(shí)機(jī)器人)需要穩(wěn)定的命令流來(lái)連續(xù)操作。所以,為了讓烏龜繼續(xù)移動(dòng),你可以跑:

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}}"

【ROS2入門】理解 ROS 2 Topics 話題

?小烏龜會(huì)一直繞圈圈。這里的區(qū)別是刪除了--once選項(xiàng),添加了--rate 1選項(xiàng),該選項(xiàng)告訴ros2主題pub以1Hz的穩(wěn)定流發(fā)布命令。

您可以刷新rqt_graph,以圖形方式查看正在發(fā)生的情況。你會(huì)看到ros 2主題PUB。。。節(jié)點(diǎn)(/ros2cli_29722)正在/turtle1/cmd_vel主題上發(fā)布,并由ros2主題echo接收。。。節(jié)點(diǎn)(/ros2cli_29884)和/turtlesim節(jié)點(diǎn)。

【ROS2入門】理解 ROS 2 Topics 話題

?最后,您可以對(duì)姿勢(shì)主題運(yùn)行echo并重新檢查rqt_graph:

ros2 topic echo /turtle1/pose

【ROS2入門】理解 ROS 2 Topics 話題

【ROS2入門】理解 ROS 2 Topics 話題

?在這種情況下,/turtlesim現(xiàn)在發(fā)布到pose主題,并訂閱了一個(gè)新的echo節(jié)點(diǎn)。

8 、ros2 topic hz

在此過(guò)程中的最后可以使用以下方法報(bào)告數(shù)據(jù)發(fā)布的速度:

ros2 topic hz /turtle1/pose

它將返回/turtlesim節(jié)點(diǎn)向pose主題發(fā)布數(shù)據(jù)的速率數(shù)據(jù)。

【ROS2入門】理解 ROS 2 Topics 話題

average rate: 56.477
    min: 0.004s max: 0.135s std dev: 0.01506s window: 65

可以再看看turtle1/cmd_vel

ros2 topic hz turtle1/cmd_vel

【ROS2入門】理解 ROS 2 Topics 話題和我們之前寫(xiě)的一致,1HZ。

9、總結(jié)

????????結(jié)束前,此時(shí),將有許多節(jié)點(diǎn)正在運(yùn)行。不要忘記通過(guò)關(guān)閉終端窗口或在每個(gè)終端中輸入“Ctrl+C”來(lái)停止它們。節(jié)點(diǎn)通過(guò)主題發(fā)布信息,這允許任何數(shù)量的其他節(jié)點(diǎn)訂閱和訪問(wèn)該信息。在本教程中,您使用rqt_graph和命令行工具檢查了主題上多個(gè)節(jié)點(diǎn)之間的連接?,F(xiàn)在,您應(yīng)該對(duì)ROS 2系統(tǒng)中的數(shù)據(jù)如何移動(dòng)有了很好的了解。

以上就是我今天要分享的內(nèi)容。糾錯(cuò),疑問(wèn),交流: 911946883@qq.com文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-400455.html

到了這里,關(guān)于【ROS2入門】理解 ROS 2 Topics 話題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 2 ROS2話題通訊基礎(chǔ)(1)

    2 ROS2話題通訊基礎(chǔ)(1)

    其他ROS2學(xué)習(xí)筆記: ROS2學(xué)習(xí)筆記 代碼倉(cāng)庫(kù):Github連接地址 歡迎各位互相學(xué)習(xí)交流 話題通信是一種單向通信模型,一方發(fā)布數(shù)據(jù),一方訂閱數(shù)據(jù),適用于連續(xù)不間斷的通訊場(chǎng)景,如小車SLAM導(dǎo)航過(guò)程中的位姿信息等等。話題是一個(gè)通訊的管道,ROS2的話題發(fā)布方和接收方無(wú)論是

    2024年02月02日
    瀏覽(29)
  • ROS2學(xué)習(xí)筆記三:話題Topic

    ROS2學(xué)習(xí)筆記三:話題Topic

    目錄 前言 1 話題簡(jiǎn)介 2 常用指令 3?RCLCPP實(shí)現(xiàn)實(shí)現(xiàn)話題 3.1 創(chuàng)建工作空間 3.2 代碼編寫(xiě) 3.2.1 發(fā)布端編寫(xiě) 3.2.2 發(fā)布端編寫(xiě) ROS2中的一個(gè)重要概念是話題(Topic)。話題是一種通過(guò)發(fā)布者和訂閱者之間進(jìn)行異步通信的機(jī)制。發(fā)布者(Publisher)將消息發(fā)布到特定的話題上,而訂閱者(

    2024年01月20日
    瀏覽(29)
  • 【ROS2指南-7】理解ROS2的Action

    【ROS2指南-7】理解ROS2的Action

    目標(biāo): 理解并學(xué)習(xí)ROS 2 中的Action通信方式。 教程級(jí)別: 初學(xué)者 時(shí)間: 15分鐘 內(nèi)容 背景 先決條件 任務(wù) 1 設(shè)置 2 使用動(dòng)作 3 ros2節(jié)點(diǎn)信息 4 ros2 動(dòng)作列表 5 ros2 動(dòng)作信息 6 ros2界面展示 7 ros2 動(dòng)作 send_goal 概括 下一步 相關(guān)內(nèi)容 動(dòng)作是 ROS 2 中的一種通信類型,用于長(zhǎng)時(shí)間運(yùn)行的任

    2023年04月16日
    瀏覽(29)
  • 【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2服務(wù)入門

    【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2服務(wù)入門

    當(dāng)前平臺(tái)文章匯總地址:ROS2機(jī)器人從入門到實(shí)戰(zhàn) 獲取完整教程及配套資料代碼,請(qǐng)關(guān)注公眾號(hào)魚(yú)香ROS獲取 教程配套機(jī)器人開(kāi)發(fā)平臺(tái):兩驅(qū)版| 四驅(qū)版 為方便交流,搭建了機(jī)器人技術(shù)問(wèn)答社區(qū):地址 fishros.org.cn 大家好,帥魚(yú)又蹬蹬蹬的游回來(lái)了。本節(jié)小魚(yú)將要帶大家一起了解

    2024年02月07日
    瀏覽(55)
  • 【ros2】ros2環(huán)境安裝與基礎(chǔ)入門

    【ros2】ros2環(huán)境安裝與基礎(chǔ)入門

    ?? ★,° :.☆( ̄▽ ̄)/$: .°★ ?? 這篇文章主要介紹ros2環(huán)境安裝與基礎(chǔ)入門。 學(xué)其所用,用其所學(xué)?!?jiǎn)⒊?歡迎來(lái)到我的博客,一起學(xué)習(xí),共同進(jìn)步。 喜歡的朋友可以關(guān)注一下,下次更新不迷路?? ROS 2 (Robot Operating System 2)是一個(gè)開(kāi)源的機(jī)器人操作系統(tǒng),它是ROS(Robot

    2024年02月09日
    瀏覽(23)
  • 【ROS2機(jī)器人入門到實(shí)戰(zhàn)】2.ROS與ROS2對(duì)比

    【ROS2機(jī)器人入門到實(shí)戰(zhàn)】2.ROS與ROS2對(duì)比

    當(dāng)前平臺(tái)文章匯總地址:ROS2機(jī)器人從入門到實(shí)戰(zhàn) 獲取完整教程及配套資料代碼,請(qǐng)關(guān)注公眾號(hào)魚(yú)香ROS獲取 教程配套機(jī)器人開(kāi)發(fā)平臺(tái):兩驅(qū)版| 四驅(qū)版 為方便交流,搭建了機(jī)器人技術(shù)問(wèn)答社區(qū):地址 fishros.org.cn 經(jīng)過(guò)上一節(jié)的學(xué)習(xí),相信你已經(jīng)對(duì)ROS和ROS2的發(fā)展有了一定的了解

    2024年02月04日
    瀏覽(28)
  • 【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2接口介紹

    【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2接口介紹

    當(dāng)前平臺(tái)文章匯總地址:ROS2機(jī)器人從入門到實(shí)戰(zhàn) 獲取完整教程及配套資料代碼,請(qǐng)關(guān)注公眾號(hào)魚(yú)香ROS獲取 教程配套機(jī)器人開(kāi)發(fā)平臺(tái):兩驅(qū)版| 四驅(qū)版 為方便交流,搭建了機(jī)器人技術(shù)問(wèn)答社區(qū):地址 fishros.org.cn 本節(jié)小魚(yú)將會(huì)帶你學(xué)習(xí)認(rèn)識(shí)一個(gè)新的概念,叫做interface,即接口。

    2024年02月05日
    瀏覽(26)
  • 【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2節(jié)點(diǎn)介紹

    【ROS2機(jī)器人入門到實(shí)戰(zhàn)】ROS2節(jié)點(diǎn)介紹

    當(dāng)前平臺(tái)文章匯總地址:ROS2機(jī)器人從入門到實(shí)戰(zhàn) 獲取完整教程及配套資料代碼,請(qǐng)關(guān)注公眾號(hào)魚(yú)香ROS獲取 教程配套機(jī)器人開(kāi)發(fā)平臺(tái):兩驅(qū)版| 四驅(qū)版 為方便交流,搭建了機(jī)器人技術(shù)問(wèn)答社區(qū):地址 fishros.org.cn ROS2中每一個(gè)節(jié)點(diǎn)也是只負(fù)責(zé)一個(gè)單獨(dú)的模塊化的功能(比如一個(gè)

    2024年02月06日
    瀏覽(61)
  • ROS2入門與實(shí)踐--1(ROS2的安裝與環(huán)境測(cè)試)

    ROS2入門與實(shí)踐--1(ROS2的安裝與環(huán)境測(cè)試)

    對(duì)于VMware虛擬機(jī)的安裝教程請(qǐng)看這篇文章:VMware虛擬機(jī)安裝 對(duì)于20.04版本的Ubuntu操作系統(tǒng)安裝教程請(qǐng)看這篇文章:Ubuntu-20.04系統(tǒng)安裝 對(duì)于22.04版本的Ubuntu操作系統(tǒng)安裝教程請(qǐng)看這篇文章:Ubuntu-22.04系統(tǒng)安裝 1.在ROS2官方的文檔中,安裝ROS2之前需要首先檢查操作系統(tǒng)語(yǔ)言環(huán)境 官

    2024年02月15日
    瀏覽(45)
  • 【ROS2機(jī)器人入門到實(shí)戰(zhàn)】4.ROS2初體驗(yàn)

    【ROS2機(jī)器人入門到實(shí)戰(zhàn)】4.ROS2初體驗(yàn)

    當(dāng)前平臺(tái)文章匯總地址:ROS2機(jī)器人從入門到實(shí)戰(zhàn) 獲取完整教程及配套資料代碼,請(qǐng)關(guān)注公眾號(hào)魚(yú)香ROS獲取 教程配套機(jī)器人開(kāi)發(fā)平臺(tái):兩驅(qū)版| 四驅(qū)版 為方便交流,搭建了機(jī)器人技術(shù)問(wèn)答社區(qū):地址 fishros.org.cn 通過(guò)幾個(gè)簡(jiǎn)單的小例子來(lái)體驗(yàn)ROS2軟件庫(kù)和工具集。 游戲內(nèi)容:很

    2024年02月04日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包