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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ROS知识【10】:ROS通信

發布時間:2025/3/21 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS知识【10】:ROS通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

????????ROS的核心——分布式通信機制
????????ROS是一個分布式框架,為用戶提供多節點(進程)之間的通信服務,所有軟件功能和工具都建立在這種分布式通信機制上,所以ROS的通信機制是最底層也是最核心的技術。在大多數應用場景下,盡管我們不需要關注底層通信的實現機制,但是了解其相關原理一定會幫助我們在開發過程中更好地使用ROS。ROS最核心的三種通信機制如下。

  • ? ? ? ? Topic機制
  • ? ? ? ? service機制
  • ? ? ? ? 共享參數機制

二、Topic機制

2.1 Topic原理:

????????話題在ROS中使用最為頻繁,其通信模型也較為復雜。在ROS中有兩個節點:一個是發布者Talker,另一個是訂閱著Listener。兩個節點分別發布、訂閱同一個話題,啟動順序沒有強制要求,此處假設Talker首先啟動,可分為如下七步分析建立通信的詳細過程。

  • 1、Talker注冊

????????Talker啟動,通過1234端口使用RPC向ROS Master注冊發布者的信息,包含所發布消息的話題名;ROS Master會將節點的注冊信息加入注冊列表中。

  • 2、Listener注冊

????????Listener啟動,同樣通過RPC向ROS Master注冊訂閱者的信息,包含需要訂閱的話題名。

  • 3、ROS Master進行信息匹配

????????Master根據Listener的訂閱信息從注冊列表中進行查找,如果沒有找到匹配的發布者,則等待發布者的加入:如果找到匹配的發布者信息,則通過RPC向Listener發送Talker的RPC地址信息。

  • 4、Listener發送連接請求

????????Listener接收到Master發回的Talker地址信息,嘗試通過RPC向Talker發送連接請求,傳輸訂閱的話題名、消息類型以及通信協議(TCP/UDP)

  • 5、Talker確認連接請求

????????Talker接收到Listener發送的連接請求后,繼續通過RPC向Listener確認連接信息,其中包含自身的TCP地址信息。

  • 6、Listener嘗試與Talker建立網絡連接

????????Listener接收到確認信息后,使用TCP嘗試與Talker建立網絡連接。

  • 7、Talker向Listener發布數據

????????成功建立連接后,Talker開始向Listener發送話題消息數據。
????????從上面的分析中可以發現,前五個步驟使用的通信協議都是RPC,最后發布數據的過程才使用到TCP。ROS Master在節點建立連接的過程中起到了重要作用,但是并不參與節點之間最終的數據傳輸。

2.2 一個相機機器人例子

????????此時我們有一臺搭載了相機的機器人,我們希望機器人能夠獲取并處理相機采集的圖像數據,同時可以在筆記本上看到這些圖像。因此,我們定義了三個節點:相機節點(Camera Node)、圖像處理節點(Image Processing Node)和圖像顯示節點(Image Display Node)。所有的節點都注冊在節點管理器(ROS Master)中,管理器可以視為一個查詢表,各個節點能查到消息要發送到其他的哪個節點。

?節點可以發布消息到話題,或通過訂閱某個話題來接受消息。完成注冊后,Camera Node聲明它發布(Publish)了一個叫做/image_data的話題(Topic)。Image Processing Node和Image Display Node聲明它們訂閱(Subscribe)了這個Topic。話題中數據為Message,具有一定類型和數據結構(ROS中提供了標準數據類型,用戶也可自己定義),當Camera Node接收到相機發動的數據后,就立即將數據發送到另外兩個節點上。

三、通信機制二——服務通信機制

3.1 服務是一種帶有應答的通信機制,

與話題的通信相比,其減少了Listener與Talker之間的RPC通信。

?1、Talker注冊
Talker啟動,通過1234端口使用RPC向ROS Master注冊發布者的信息,包含所提供的服務名;ROS Master會將節點的注冊信息加入注冊列表中。
2、Listener注冊
Listener啟動,同樣通過RPC向ROS Master注冊訂閱者的信息,包含需要訂閱的服務名。
3、ROS Master進行信息匹配
Master根據Listener的訂閱信息從注冊列表中進行查找,如果沒有找到匹配的服務提供者,則等待該服務的提供者加入:如果找到匹配的服務提供者信息,則通過RPC向Listener發送Talker的TCP地址信息。
4、Listener與Talker建立網絡連接
Listener接收到確認信息后,使用TCP嘗試與Talker建立網絡連接,并且發送服務的請求數據。
5、Talker向Listener發布服務應答數據
Talker接收到服務請求和參數后,開始執行服務功能,執行完成后,向Listener發送應答數據。

?3.2 案例服務通信

????????話題通信的數據傳輸是單向的,訂閱端(Image Processing Node)被動接收發布端(Camera Node)的數據?這時候有人就問了,如果Image Processing Node想主動接收數據怎么辦。ROS中提供了另一種通信方式:服務通信。服務通信由請求方(Client)和應答方(Server)組成。

在服務通信中,Camera Node可以在ROS Master上注冊一個特定的服務(Service)。請求方(Image Processing Node)發送一個request,等待應答方(Camera Node)處理后,反饋回一個reply。

四、通信機制三——參數管理機制

參數類似于ROS中的全局變量,由ROS Master進行管理,其通信機制較為簡單,不涉及TCP/UDP的通信。

1、Talker設置變量
????????Talker使用RPC向ROS Master發送參數設置數據,包含參數名和參數值;ROS Master會將參數名和參數值保存到參數列表中。
2、Listener查詢參數值
????????Listener通過RPC向ROS Master發送參數查找請求,包含所要查找的參數名。
3、ROS Master向Listener發送參數值
????????Master根據Listener的查找請求從參數列表中進行查找,查找到參數后,使用RPC將參數值發送給Listener。

五、話題與服務的區別


話題和服務是ROS中最基礎也是使用最多的通信方法。具體總結如表所示。
話題與服務的區別

Name? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 話題? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 服務
同步性? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 異步? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?同步
通信模型? ? ? ? ? ? ? ? ? ? ? ? ? ?發布/訂閱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 客戶端/服務端
底層協議? ? ? ? ? ? ? ? ? ? ? ? ?ROSTCP/ROSUDP? ? ? ? ? ? ? ? ? ? ? ? ROSTCP/ROSUDP
反饋機制? ? ? ? ? ? ? ? ? ? ? ? ? ?無? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有
緩沖區? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 無
實時性? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?弱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 強
節點關系? ? ? ? ? ? ? ? ? ? ? ? ? ? ?多對多? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一對多(一個Server)
適用場景? ? ? ? ? ? ? ? ? ? ? ? ? ?數據傳輸? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?邏輯處理
????????

????????總之,話題是ROS中基于發布/訂閱模型的異步通信模式,這種方式將信息的產生和使用雙方解耦,常用于不斷更新的、含有較少邏輯處理的數據通信;而服務多用于處理ROS中的同步通信,采用客戶端/服務器模型,常用于數據量較少但有強邏輯處理的數據交換。

總結

以上是生活随笔為你收集整理的ROS知识【10】:ROS通信的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 美女张开双腿让男人捅 | 亚洲91网 | 一区二区视频在线免费观看 | 高潮疯狂过瘾粗话对白 | 狂野欧美性猛交xxⅹ李丽珍 | 欧美精品在线一区二区三区 | 天天av网| 日本免费三片在线播放 | 带aaa级的网名| 国产丝袜网站 | 欧美日韩网 | 日本裸体网站 | 国产精品15p| 四虎首页 | 亚洲欧美国产一区二区三区 | 国产欧美视频一区二区三区 | 日本中文字幕影院 | 日本黄色小网站 | 中文字幕一区二区三区精品 | 古装做爰无遮挡三级 | 国产精品人人做人人爽人人添 | 欧美日韩综合在线观看 | 国产99久久久久久免费看 | 久久久久亚洲色欲AV无码网站 | 国产日韩欧美中文字幕 | 久久精品资源 | 日韩一区精品 | 亚洲精品国产精品国自产观看浪潮 | 黄色片在线免费看 | 天堂av官网 | 国产精品第八页 | 久久精品老司机 | 日本一区二区三区在线观看 | 韩国电影一区 | 亚洲精品v日韩精品 | 精品一区二区国产 | 国模视频在线 | 国产成人a亚洲精v品无码 | 中日韩在线播放 | 男人日女人网站 | 97超碰中文 | 欧美精品在欧美一区二区 | 伊人网视频| 国产一区二区三区视频在线播放 | 精品在线视频一区二区三区 | 杨贵妃颤抖双乳呻吟求欢小说 | 亚洲搞av | 97精品人妻一区二区三区 | 韩日av一区二区 | 91麻豆国产 | 午夜av不卡| 欧美日韩一区二区三区在线播放 | 粉嫩在线 | 激情视频久久 | 午夜视频在线免费播放 | 美女成人在线 | 久久久久久久一区二区三区 | 在线国产一区二区三区 | 狠狠干夜夜骑 | 熟妇五十路六十路息与子 | 久久久久亚洲精品中文字幕 | 免费欧美一级片 | 无码人妻久久一区二区三区 | 亚洲精品资源在线 | 91丨九色丨黑人外教 | 亚洲欧美精品一区二区三区 | 无码国精品一区二区免费蜜桃 | 午夜少妇影院 | 精品动漫一区二区 | 国产人妖ts | 欧美丰满熟妇bbbbbb百度 | 欧美日韩高清不卡 | 91丨porny丨露出| 亚洲午夜无码av毛片久久 | 日本捏奶吃奶的视频 | 欧美少妇一区 | 99亚洲精品 | 18国产免费视频 | 五月婷婷爱爱 | 亚洲一区二区三区人妻 | 日本黄色美女视频 | 亚洲狠狠婷婷综合久久久久图片 | 在线观看www| 爱爱精品视频 | 日韩欧美精品在线视频 | 91欧美激情一区二区三区 | 又欲又污又肉又黄短文 | 日本aⅴ在线观看 | 顶级尤物极品女神福利视频 | 999免费视频 | 亚洲av无码国产精品久久久久 | 操操操操操操操操操操 | 成人在线免费播放 | 波多野结衣中文字幕一区二区三区 | 麻豆精品国产传媒av绿帽社 | 麻豆传媒视频入口 | 国产一区二区视频在线 | 动漫av在线免费观看 | 天天干天天日 |