Hello,大家好,歡迎來到《ROS2入門21講》,我是主講人古月。
終于講到ROS2中最為重大的變化——DDS,我們在前邊課程中學(xué)習(xí)的話題、服務(wù)、動(dòng)作,他們底層通信的具體實(shí)現(xiàn)過程,都是靠DDS來完成的,它相當(dāng)于是ROS機(jī)器人系統(tǒng)中的神經(jīng)網(wǎng)絡(luò)。
通信模型
DDS的核心是通信,能夠?qū)崿F(xiàn)通信的模型和軟件框架非常多,這里我們列出常用的四種模型。
第一種,點(diǎn)對點(diǎn)模型,許多客戶端連接到一個(gè)服務(wù)端,每次通信時(shí),通信雙方必須建立一條連接。當(dāng)通信節(jié)點(diǎn)增多時(shí),連接數(shù)也會增多。
而且每個(gè)客戶端都需要知道服務(wù)器的具體地址和所提供的服務(wù),一旦服務(wù)器地址發(fā)生變化,所有客戶端都會受到影響。
第二種,Broker模型,針對點(diǎn)對點(diǎn)模型進(jìn)行了優(yōu)化,由Broker集中處理所有人的請求,并進(jìn)一步找到真正能響應(yīng)該服務(wù)的角色。
這樣客戶端就不用關(guān)心服務(wù)器的具體地址了。不過問題也很明顯,Broker作為核心,它的處理速度會影響所有節(jié)點(diǎn)的效率,當(dāng)系統(tǒng)規(guī)模增長到一定程度,Broker就會成為整個(gè)系統(tǒng)的性能瓶頸。
更麻煩是,如果Broker發(fā)生異常,可能導(dǎo)致整個(gè)系統(tǒng)都無法正常運(yùn)轉(zhuǎn)。之前的ROS1系統(tǒng),使用的就是類似這樣的架構(gòu)。
第三種,廣播模型,所有節(jié)點(diǎn)都可以在通道上廣播消息,并且節(jié)點(diǎn)都可以收到消息。這個(gè)模型解決了服務(wù)器地址的問題,而且通信雙方也不用單獨(dú)建立連接,但是廣播通道上的消息太多了,所有節(jié)點(diǎn)都必須關(guān)心每條消息,其實(shí)很多是和自己沒有關(guān)系的。
第四種,就是以數(shù)據(jù)為中心的DDS模型了,這種模型與廣播模型有些類似,所有節(jié)點(diǎn)都可以在DataBus上發(fā)布和訂閱消息。
但它的先進(jìn)之處在于,通信中包含了很多并行的通路,每個(gè)節(jié)點(diǎn)可以只關(guān)心自己感興趣的消息,忽略不感興趣的消息,有點(diǎn)像是一個(gè)旋轉(zhuǎn)火鍋,各種好吃的都在這個(gè)DataBus傳送,我們只需要拿自己想吃的就行,其他的和我們沒有關(guān)系。
可見,在這幾種通信模型中,DDS的優(yōu)勢更加明顯。
DDS
DDS并不是一個(gè)新的通信方式,在ROS2之前,DDS已經(jīng)廣泛應(yīng)用在很多領(lǐng)域。
比如在自動(dòng)駕駛領(lǐng)域,通常會存在感知,預(yù)測,決策和定位等模塊,這些模塊都需要非常高速和頻繁地交換數(shù)據(jù)。借助DDS,可以很好地滿足它們的通信需求。
什么是DDS
好啦,說了半天DDS,到底啥意思呢?我們來做一個(gè)完整的介紹
DDS的全稱是Data Distribution Service,也就是數(shù)據(jù)分發(fā)服務(wù),2004年由對象管理組織OMG發(fā)布和維護(hù),是一套專門為實(shí)時(shí)系統(tǒng)設(shè)計(jì)的數(shù)據(jù)分發(fā)/訂閱標(biāo)準(zhǔn),最早應(yīng)用于美國海軍, 解決艦船復(fù)雜網(wǎng)絡(luò)環(huán)境中大量軟件升級的兼容性問題,現(xiàn)在已經(jīng)成為強(qiáng)制標(biāo)準(zhǔn)。
DDS強(qiáng)調(diào)以數(shù)據(jù)為中心,可以提供豐富的服務(wù)質(zhì)量策略,以保障數(shù)據(jù)進(jìn)行實(shí)時(shí)、高效、靈活地分發(fā),可滿足各種分布式實(shí)時(shí)通信應(yīng)用需求。
這里也提一下對象管理組織OMG,成立于1989年,它的使命是開發(fā)技術(shù)標(biāo)準(zhǔn),為數(shù)以千計(jì)的垂直行業(yè)提供真實(shí)的價(jià)值,比如大家課可能聽說過的統(tǒng)一建模語言SYSML和UML,還有中間件標(biāo)準(zhǔn)CORBA等,當(dāng)然還有DDS。
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28704瀏覽量
208685 -
通信
+關(guān)注
關(guān)注
18文章
6077瀏覽量
136487 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9335瀏覽量
86138 -
DDS
+關(guān)注
關(guān)注
21文章
636瀏覽量
152975
發(fā)布評論請先 登錄
相關(guān)推薦
MQTT的通信模型及消息
基于VxWorks實(shí)時(shí)操作系統(tǒng)的通信模型該怎樣去設(shè)計(jì)?
移動(dòng)Agent位置透明通信模型的設(shè)計(jì)
過程控制工業(yè)以太網(wǎng)通信模型探討
數(shù)據(jù)網(wǎng)格中基于優(yōu)化機(jī)制的通信模型
基于VxWorks的通信模型設(shè)計(jì)
![基于VxWorks的<b class='flag-5'>通信模型</b>設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A6/3D/wKgZomUMPHOAWAeAAAAS-UdumqI667.jpg)
企業(yè)資產(chǎn)管理系統(tǒng)中通信模型的研究與實(shí)現(xiàn)
![企業(yè)資產(chǎn)管理系統(tǒng)中<b class='flag-5'>通信模型</b>的研究與實(shí)現(xiàn)](https://file.elecfans.com/web2/M00/49/61/pYYBAGKhtEqABsopAAAQH7Ah2kU935.jpg)
基于DDS的云協(xié)作研究
電力通信模型自動(dòng)生成方法及其優(yōu)化
DDS為ROS的通信系統(tǒng)提供了哪些特性
![<b class='flag-5'>DDS</b>為ROS的<b class='flag-5'>通信</b>系統(tǒng)提供了哪些特性](https://file1.elecfans.com/web2/M00/B0/DE/wKgaomVgctqAHU93AACJjsroF2E227.jpg)
機(jī)器人通信模型有哪些
![機(jī)器人<b class='flag-5'>通信模型</b>有哪些](https://file1.elecfans.com/web2/M00/B3/2B/wKgZomVkWo-AesUSAAMSGZc5CD8033.jpg)
通信模型的多對多通信、異步通信和消息接口是什么
![<b class='flag-5'>通信模型</b>的多對多<b class='flag-5'>通信</b>、異步<b class='flag-5'>通信</b>和消息接口是什么](https://file1.elecfans.com/web2/M00/B3/2D/wKgZomVkYgKAYwbRAAH-RD3_czM854.jpg)
評論