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