第2章 ROS2通信機(jī)制核心
機(jī)器人是一種高度復(fù)雜的系統(tǒng)性實(shí)現(xiàn),一個(gè)完整的機(jī)器人應(yīng)用程序可能由若干功能模塊組成,每個(gè)功能模塊可能又包含若干功能點(diǎn),在不同功能模塊、不同功能點(diǎn)之間需要頻繁的進(jìn)行數(shù)據(jù)交互。比如以導(dǎo)航中的路徑規(guī)劃模塊為例:
路徑規(guī)劃時(shí)就需要其他功能模塊輸入數(shù)據(jù),并輸出數(shù)據(jù)以被其他模塊調(diào)用。
輸入的數(shù)據(jù)有地圖服務(wù)提供的地圖數(shù)據(jù)、定位模塊提供的機(jī)器人位姿數(shù)據(jù)、人機(jī)交互模塊提供的目標(biāo)點(diǎn)數(shù)據(jù)......。
輸出的路徑信息則被運(yùn)動(dòng)控制訂閱或是回顯在人機(jī)交互界面上。
那么這些相對(duì)獨(dú)立的功能模塊或功能點(diǎn)之間是如何實(shí)現(xiàn)數(shù)據(jù)交互的呢?在此,我們就需要介紹一下ROS2中的通信機(jī)制了。
本章概覽
章節(jié)學(xué)習(xí)內(nèi)容學(xué)習(xí)收獲2.1 通信機(jī)制簡(jiǎn)介通信機(jī)制中涉及的術(shù)語(yǔ)。能夠理解ROS2通信中的節(jié)點(diǎn)、話題、接口等常用術(shù)語(yǔ)以及不同通信模型的數(shù)據(jù)交互流程。2.2 話題通信話題通信的概念、作用、應(yīng)用場(chǎng)景以及編碼實(shí)現(xiàn)。能夠理解話題通信的應(yīng)用場(chǎng)景,涉及的常用概念(發(fā)布方、訂閱方、消息接口、話題...),并可以掌握其實(shí)現(xiàn)流程,編寫C++和Python代碼實(shí)現(xiàn)。2.3 服務(wù)通信服務(wù)通信的概念、作用、應(yīng)用場(chǎng)景以及編碼實(shí)現(xiàn)。能夠理解服務(wù)通信的應(yīng)用場(chǎng)景,涉及的常用概念(服務(wù)端、客戶端、服務(wù)接口、話題...),并可以掌握其實(shí)現(xiàn)流程,編寫C++和Python代碼實(shí)現(xiàn)。2.4 動(dòng)作通信動(dòng)作通信的概念、作用、應(yīng)用場(chǎng)景以及編碼實(shí)現(xiàn)。能夠理解動(dòng)作通信的應(yīng)用場(chǎng)景,涉及的常用概念(動(dòng)作服務(wù)端、動(dòng)作客戶端、動(dòng)作接口、話題...),并可以掌握其實(shí)現(xiàn)流程,編寫C++和Python代碼實(shí)現(xiàn)。2.5 參數(shù)服務(wù)參數(shù)服務(wù)的概念、作用、應(yīng)用場(chǎng)景以及編碼實(shí)現(xiàn)。能夠理解參數(shù)服務(wù)的應(yīng)用場(chǎng)景,并可以掌握其實(shí)現(xiàn)流程,編寫C++和Python代碼實(shí)現(xiàn)。2.6 本章小結(jié)知識(shí)點(diǎn)匯總。知識(shí)點(diǎn)回顧。
案例演示
案例1:話題通信示例——發(fā)布訂閱簡(jiǎn)單的文本消息。

案例2:話題通信示例——發(fā)布自定義消息。

案例3:服務(wù)通信示例——求和。

案例4:動(dòng)作通信示例——帶有連續(xù)反饋的求和。

案例5:參數(shù)操作示例。

B站有完整的ros系列教程視頻,可以觀看完整內(nèi)容ros課程ROS2理論與實(shí)踐
更多內(nèi)容將在猛獅知識(shí)星球社區(qū)更新最新課程,后續(xù)將推出更多優(yōu)質(zhì)內(nèi)容——詳情可關(guān)注猛獅集訓(xùn)營(yíng)公眾號(hào)和猛獅集訓(xùn)營(yíng)官方網(wǎng)站。