官术网_书友最值得收藏!

1.3.2 計(jì)算圖層級(jí)

ROS計(jì)算圖是一個(gè)基于點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò),它將所有信息一起處理。ROS圖的概念包括節(jié)點(diǎn)、話題、消息、節(jié)點(diǎn)管理器、參數(shù)服務(wù)器、服務(wù)和數(shù)據(jù)包,具體如圖1.6所示。

圖1.6 ROS計(jì)算圖層級(jí)

圖1.6展示了ROS計(jì)算圖中的各種概念。以下是對(duì)每個(gè)概念的簡(jiǎn)單描述:

·節(jié)點(diǎn):ROS節(jié)點(diǎn)是使用ROS API相互通信的處理過程(即功能模塊)。機(jī)器人可能有許多節(jié)點(diǎn)來執(zhí)行計(jì)算。例如,自主移動(dòng)機(jī)器人可以具有用于硬件接口、讀取激光掃描以及定位和地圖構(gòu)建的節(jié)點(diǎn)。我們可以使用roscpp和rospy等ROS客戶端庫(kù)創(chuàng)建ROS節(jié)點(diǎn),我們將在1.4節(jié)中討論這些。

·節(jié)點(diǎn)管理器:ROS節(jié)點(diǎn)管理器(后簡(jiǎn)稱master)作為中間節(jié)點(diǎn)工作,幫助在不同的ROS節(jié)點(diǎn)之間建立連接。master擁有在ROS環(huán)境中運(yùn)行的所有節(jié)點(diǎn)的所有細(xì)節(jié)。它可以在節(jié)點(diǎn)之間交換各類信息,以便在節(jié)點(diǎn)之間建立連接。交換相應(yīng)信息后,兩個(gè)ROS節(jié)點(diǎn)之間即可開始通信。

·參數(shù)服務(wù)器:參數(shù)服務(wù)器在ROS中具有重要作用。節(jié)點(diǎn)可以在參數(shù)服務(wù)器中存儲(chǔ)變量并設(shè)置其隱私權(quán)限。如果參數(shù)具有全局作用域,則其他所有節(jié)點(diǎn)都可以訪問它。ROS參數(shù)服務(wù)器與master一起運(yùn)行。

·消息:ROS節(jié)點(diǎn)可以通過多種方式相互通信。在各種通信方式中,節(jié)點(diǎn)均以ROS消息的形式發(fā)送和接收數(shù)據(jù)。ROS消息是ROS節(jié)點(diǎn)用來交換數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。

·話題:在兩個(gè)ROS節(jié)點(diǎn)之間通信和交換ROS消息的方法之一稱為ROS話題。話題是使用ROS消息交換數(shù)據(jù)的命名總線。每個(gè)話題都有一個(gè)特定的名稱,一個(gè)節(jié)點(diǎn)將數(shù)據(jù)發(fā)布到一個(gè)話題,另一個(gè)節(jié)點(diǎn)可以通過訂閱該話題來讀取數(shù)據(jù)。

·服務(wù):服務(wù)是另一種通信方法,其功能類似于話題。話題使用發(fā)布或訂閱交互,而服務(wù)使用請(qǐng)求或回復(fù)方法。一個(gè)節(jié)點(diǎn)將充當(dāng)服務(wù)提供者,在其中運(yùn)行服務(wù)例程,而客戶端節(jié)點(diǎn)從服務(wù)器請(qǐng)求服務(wù)。服務(wù)器將執(zhí)行服務(wù)例程并將結(jié)果發(fā)送給客戶端。客戶端節(jié)點(diǎn)將會(huì)等待服務(wù)器響應(yīng)并提供結(jié)果。

·數(shù)據(jù)包:數(shù)據(jù)包是ROS提供的一個(gè)有效工具,用于記錄和回放ROS話題。當(dāng)開展機(jī)器人相關(guān)研究時(shí),可能有些情況下我們需要在沒有實(shí)際硬件的情況下工作。使用rosbag,我們可以記錄傳感器數(shù)據(jù),并將數(shù)據(jù)包文件復(fù)制到其他計(jì)算機(jī)上,通過回放來檢查數(shù)據(jù)以及應(yīng)用程序的執(zhí)行結(jié)果。

主站蜘蛛池模板: 宝坻区| 莎车县| 屯昌县| 黄山市| 闽清县| 兴义市| 林周县| 林西县| 静海县| 玉田县| 吉林市| 丰宁| 玛曲县| 上犹县| 五大连池市| 聂拉木县| 越西县| 桃江县| 六安市| 德江县| 大方县| 绥中县| 织金县| 襄汾县| 阳春市| 明光市| 衡阳市| 禄劝| 崇礼县| 洪雅县| 洮南市| 武宁县| 日土县| 黑山县| 郧西县| 布拖县| 理塘县| 平遥县| 交口县| 定襄县| 昌黎县|