Hello,大家好,歡迎來到《ROS2入門21講》,我是主講人古月。
終于講到ROS2中最為重大的變化——DDS,我們在前邊課程中學(xué)習(xí)的話題、服務(wù)、動作,他們底層通信的具體實(shí)現(xiàn)過程,都是靠DDS來完成的,它相當(dāng)于是ROS機(jī)器人系統(tǒng)中的神經(jīng)網(wǎng)絡(luò)。
通信模型
DDS的核心是通信,能夠?qū)崿F(xiàn)通信的模型和軟件框架非常多,這里我們列出常用的四種模型。
第一種,點(diǎn)對點(diǎn)模型,許多客戶端連接到一個服務(wù)端,每次通信時,通信雙方必須建立一條連接。當(dāng)通信節(jié)點(diǎn)增多時,連接數(shù)也會增多。
而且每個客戶端都需要知道服務(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就會成為整個系統(tǒng)的性能瓶頸。
更麻煩是,如果Broker發(fā)生異常,可能導(dǎo)致整個系統(tǒng)都無法正常運(yùn)轉(zhuǎn)。之前的ROS1系統(tǒng),使用的就是類似這樣的架構(gòu)。
第三種,廣播模型,所有節(jié)點(diǎn)都可以在通道上廣播消息,并且節(jié)點(diǎn)都可以收到消息。這個模型解決了服務(wù)器地址的問題,而且通信雙方也不用單獨(dú)建立連接,但是廣播通道上的消息太多了,所有節(jié)點(diǎn)都必須關(guān)心每條消息,其實(shí)很多是和自己沒有關(guān)系的。
第四種,就是以數(shù)據(jù)為中心的DDS模型了,這種模型與廣播模型有些類似,所有節(jié)點(diǎn)都可以在DataBus上發(fā)布和訂閱消息。
但它的先進(jìn)之處在于,通信中包含了很多并行的通路,每個節(jié)點(diǎn)可以只關(guān)心自己感興趣的消息,忽略不感興趣的消息,有點(diǎn)像是一個旋轉(zhuǎn)火鍋,各種好吃的都在這個DataBus傳送,我們只需要拿自己想吃的就行,其他的和我們沒有關(guān)系。
可見,在這幾種通信模型中,DDS的優(yōu)勢更加明顯。
DDS
DDS并不是一個新的通信方式,在ROS2之前,DDS已經(jīng)廣泛應(yīng)用在很多領(lǐng)域。
比如在自動駕駛領(lǐng)域,通常會存在感知,預(yù)測,決策和定位等模塊,這些模塊都需要非常高速和頻繁地交換數(shù)據(jù)。借助DDS,可以很好地滿足它們的通信需求。
什么是DDS
好啦,說了半天DDS,到底啥意思呢?我們來做一個完整的介紹
DDS的全稱是Data Distribution Service,也就是數(shù)據(jù)分發(fā)服務(wù),2004年由對象管理組織OMG發(fā)布和維護(hù),是一套專門為實(shí)時系統(tǒng)設(shè)計的數(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í)時、高效、靈活地分發(fā),可滿足各種分布式實(shí)時通信應(yīng)用需求。
這里也提一下對象管理組織OMG,成立于1989年,它的使命是開發(fā)技術(shù)標(biāo)準(zhǔn),為數(shù)以千計的垂直行業(yè)提供真實(shí)的價值,比如大家課可能聽說過的統(tǒng)一建模語言SYSML和UML,還有中間件標(biāo)準(zhǔn)CORBA等,當(dāng)然還有DDS。
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
28191瀏覽量
206505 -
通信
+關(guān)注
關(guān)注
18文章
5969瀏覽量
135850 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9017瀏覽量
85182 -
DDS
+關(guān)注
關(guān)注
21文章
631瀏覽量
152540
發(fā)布評論請先 登錄
相關(guān)推薦
評論