ROS是一組開源軟件庫和工具,可幫助您構(gòu)建機(jī)器人應(yīng)用程序。專業(yè)人士和業(yè)余愛好者可以協(xié)作和分享他們的代碼以進(jìn)行軟件開發(fā)。工程師們可以快速重復(fù)使用代碼塊,并輕松找到構(gòu)建完全功能的機(jī)器人設(shè)備所需的所有工具。您一定已經(jīng)注意到ROS1和ROS2,選擇一開始使用哪個(gè)或何時(shí)切換到另一個(gè)可能是很困難的選擇。現(xiàn)在,讓我們跳進(jìn)文章中,了解ROS2是什么,以及與之前版本相比,有什么讓人感興趣的地方呢?
什么是ROS2
ROS2是從底層構(gòu)建時(shí)便考慮使其適用于商業(yè)用途,它是機(jī)器人操作系統(tǒng)現(xiàn)有框架的重構(gòu),經(jīng)過優(yōu)化以適用于工業(yè)應(yīng)用,開發(fā)可在新的應(yīng)用中進(jìn)行擴(kuò)展,如移動(dòng)機(jī)器人、無人機(jī)群和自動(dòng)駕駛汽車。
首先,ROS2是一個(gè)通信框架,它包含以下基本概念:
DDS:數(shù)據(jù)分發(fā)服務(wù),是ROS2的通信管道;
節(jié)點(diǎn):執(zhí)行ROS2功能的代碼文件,節(jié)點(diǎn)之間的通信稱為主題;
發(fā)布者/訂閱者方法:一個(gè)節(jié)點(diǎn)發(fā)布消息,多個(gè)節(jié)點(diǎn)可以訂閱該消息;
服務(wù)方法:一個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)發(fā)送請求,該節(jié)點(diǎn)處理請求并發(fā)送響應(yīng);
操作方法:一個(gè)節(jié)點(diǎn)將另一個(gè)節(jié)點(diǎn)設(shè)置為操作服務(wù)器的目標(biāo),操作服務(wù)器將處理該目標(biāo)并向客戶端發(fā)送進(jìn)度更新和結(jié)果;
節(jié)點(diǎn)參數(shù):可以配置節(jié)點(diǎn)的特定變量值。
ROS2的重要性 ROS1最初由Willow Garage于2007年構(gòu)建和發(fā)布,以加快機(jī)器人技術(shù)的研究。然而,它并不是為商業(yè)用途而設(shè)計(jì)的,而是為了創(chuàng)建一個(gè)研究工具,因此安全、網(wǎng)絡(luò)拓?fù)浜拖到y(tǒng)正常運(yùn)行時(shí)間等問題并不是優(yōu)先考慮的。隨著ROS現(xiàn)在被采用于商業(yè)領(lǐng)域,它的許多主要缺點(diǎn)正在變得明顯。因此,更加有必要從頭開始重新構(gòu)建ROS以滿足商業(yè)用途,這就是ROS2。為響應(yīng)商業(yè)用途的要求,新增以下幾點(diǎn):
安全性——需要在必要時(shí)進(jìn)行適當(dāng)?shù)募用芤源_保安全
嵌入式系統(tǒng)——ROS2需要能夠運(yùn)行在嵌入式系統(tǒng)上
多樣化的網(wǎng)絡(luò)——需要能夠在廣泛的網(wǎng)絡(luò)上運(yùn)行和通信,因?yàn)闄C(jī)器人從局域網(wǎng)到多個(gè)衛(wèi)星跳躍都需要適應(yīng)各種環(huán)境并進(jìn)行通信。
實(shí)時(shí)計(jì)算——需要能夠可靠地進(jìn)行實(shí)時(shí)計(jì)算,因?yàn)檫\(yùn)行時(shí)效率在機(jī)器人領(lǐng)域至關(guān)重要
產(chǎn)品準(zhǔn)備——需要符合相關(guān)的安全/工業(yè)標(biāo)準(zhǔn),以使其準(zhǔn)備好面市。
ROS2較ROS1的變化
ROS2使用DDS作為網(wǎng)絡(luò)協(xié)議,提高了安全性和可靠性;
ROS2去除了ROS1的單點(diǎn)故障(ROS主節(jié)點(diǎn)),提高了系統(tǒng)的容錯(cuò)性;
ROS2在弱網(wǎng)絡(luò)或丟包網(wǎng)絡(luò)上表現(xiàn)比ROS1更好;
ROS2客戶端庫共享rcl實(shí)現(xiàn),提供了更一致的性能,同時(shí)也更容易創(chuàng)建新的客戶端庫支持新的語言。
ROS2構(gòu)建機(jī)器人平臺(tái)的特性
ROS2 的API設(shè)計(jì)現(xiàn)代化,而且它所需的其他軟件依賴較少,可以更方便地在不同的計(jì)算機(jī)系統(tǒng)上使用。
ROS2使用DDS作為中間件,DDS提供了一些有用的功能,如可靠的數(shù)據(jù)傳輸和實(shí)時(shí)能力。DDS還支持UDP組播、共享內(nèi)存和TLS等協(xié)議,可以幫助用戶更好地管理通信。
ROS2還提供了一些新功能,如動(dòng)態(tài)參數(shù)和主題重映射,可以讓用戶更方便地在運(yùn)行時(shí)調(diào)整程序的行為。
ROS2還可以更方便地處理多個(gè)節(jié)點(diǎn),同時(shí)也可以更高效地管理軟件資源。
在NVIDIAJetson上使用ROS
NVIDIA Jetson屬于一個(gè)嵌入式開發(fā)平臺(tái),整合了硬件模組,開發(fā)工具包和生態(tài),它可以用于運(yùn)行深度學(xué)習(xí)模型和機(jī)器人操作系統(tǒng)ROS。
NVIDIA使用了一個(gè)已有的深度學(xué)習(xí)模型部署框架,并結(jié)合TensorRT技術(shù)來提高模型推理的性能。他們還使用了一些AI模型,如ResNet18、MobileNetV1/V2、SSD、YOLO和FasterRCNN,用于分類和物體檢測等任務(wù)。
此外,還有一個(gè)編碼器和解碼器節(jié)點(diǎn),可用于將YOLOv5模型的推斷結(jié)果以張量的形式發(fā)布到解碼器節(jié)點(diǎn)中。最后,我們將訂閱這些張量并將其轉(zhuǎn)換為特定的參數(shù),最終將結(jié)果作為Detection2DArray消息發(fā)布給每個(gè)圖像。
Nvidia 網(wǎng)絡(luò)研討會(huì)
對于計(jì)算物體距離,可以使用一種高效的模型叫做半監(jiān)督模型(ESS),這個(gè)模型使用了一個(gè)深度學(xué)習(xí)算法,可以根據(jù)圖像對的視差來計(jì)算物體距離,并返回一個(gè)連續(xù)的視差圖。如果想把它和ROS2結(jié)合起來使用,需要參考一些相關(guān)的包,比如isaac_ros_stereo_image_proc、isaac_ros_ess和isaac_ros_bi3d。
Nvidia 網(wǎng)絡(luò)研討會(huì)
針對人體姿勢估計(jì),可以使用一個(gè)預(yù)訓(xùn)練模型,在圖像上推斷出人體的17個(gè)部位,并使用ros2_trt_pose包進(jìn)行標(biāo)記和可視化。這樣可以得到一個(gè)實(shí)時(shí)的圖像輸出,顯示人體的關(guān)節(jié)和骨骼的位置。
如果要使用多傳感器處理、視頻和圖像理解來構(gòu)建人工智能的端到端解決方案,NVIDIA提供了ros2_deepstream節(jié)點(diǎn),可以進(jìn)行目標(biāo)檢測和屬性分類的推斷,并在檢測到的物體周圍顯示邊界框和標(biāo)簽。
此外,您還可以參加NV即將舉辦的Isaac ROS網(wǎng)絡(luò)研討會(huì),了解如何使用預(yù)訓(xùn)練的DNN模型來估計(jì)立體相機(jī)的測距。注冊后,您可以在2023年1月17日參加此次研討會(huì),獲取更多信息。
Nvidia 網(wǎng)絡(luò)研討會(huì)
想要學(xué)習(xí)ROS(機(jī)器人操作系統(tǒng)),可以從推薦的Humble Hawksbill指南開始,其中包括概念、教程、安裝步驟以及很多有趣的項(xiàng)目。而對于ROS2,它支持Gazebo Fortress,這是一個(gè)基于ROS的機(jī)器人模擬器,包括超過十幾個(gè)現(xiàn)成的分割相機(jī)、GPS等傳感器,以及3D視圖圖形界面等功能。此外,移動(dòng)機(jī)器人Humble則為機(jī)器人臂操縱系統(tǒng)的開發(fā)注入了新的活力,特別是為混合編程功能而開發(fā)的:使用(較慢的)全局運(yùn)動(dòng)規(guī)劃器和(較快的)局部運(yùn)動(dòng)規(guī)劃器,使機(jī)器人可以在在線和動(dòng)態(tài)環(huán)境中解決不同的任務(wù)。
如果想要更好地管理ROS2開發(fā)周期并在機(jī)器人集成過程中獲得簡便的步驟,可以使用Cogniteam Nimbus。Nimbus使用容器化應(yīng)用程序作為軟件組件,通過代碼、控制臺(tái)界面或使用GUI從Web中組織、連接和重新組裝這些組件,使任何人(即使沒有ROS特定的知識(shí))都可以了解和查看構(gòu)成這些組件的機(jī)器人執(zhí)行的各種構(gòu)建塊。它還允許在同一機(jī)器人上使用各種ROS發(fā)行版(包括ROS1和ROS2組件),以解決OS和ROS版本之間的問題耦合問題。
對于想要開始ROS開發(fā)的人,可以使用Seeed Jetson產(chǎn)品,如J2021,它是一個(gè)手掌大小的邊緣AI盒子,內(nèi)置Jetson Xavier NX 8GB模塊,可以提供高達(dá)21 TOPS的AI性能,包括USB 3.1端口、用于WIFI的M.2 Key E、用于SSD的M.2 Key M、RTC、CAN、Raspberry Pi GPIO 40針等眾多IO。它具有鋁制外殼、冷卻風(fēng)扇、預(yù)安裝JetPack系統(tǒng)等功能,并可作為NVIDIA Jetson Xavier NX Dev Kit的替代品,適用于構(gòu)建自主應(yīng)用程序和復(fù)雜的AI任務(wù),如圖像識(shí)別、目標(biāo)檢測、姿態(tài)估計(jì)、語義分割、視頻處理等。
這是一款用于Jetson Nano/Xavier NX/TX2 NX的嵌入式板卡,它的設(shè)計(jì)和功能幾乎與NVIDIA Jetson Xavier NX嵌入式板卡相同,擁有多個(gè)USB 3.1端口、M.2鑰匙E用于WIFI、M.2鑰匙M用于固態(tài)硬盤、RTC、CAN、樹莓派GPIO 40針等接口,可加速你的下一個(gè)人工智能應(yīng)用的開發(fā)和部署。它還具有多個(gè)攝像頭連接器,適用于運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò),用于圖像分類、物體檢測、分割和語音處理等應(yīng)用。
審核編輯 :李倩
-
機(jī)器人
+關(guān)注
關(guān)注
212文章
29280瀏覽量
210873 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7025瀏覽量
124702 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
788文章
14128瀏覽量
168849
原文標(biāo)題:
文章出處:【微信號(hào):ChaiHuoMakerSpace,微信公眾號(hào):柴火創(chuàng)客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Micro-ROS:把ROS2放在MCU上
系統(tǒng)鏡像Ubuntu_ROS2中ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?
如何在ROS2中運(yùn)行小烏龜呢
基于無線wifi網(wǎng)絡(luò)的X3派和PC虛擬機(jī)通過ROS2實(shí)現(xiàn)跨設(shè)備通信
教你一步步創(chuàng)建自己的ROS2工作空間應(yīng)用
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】四:在 VisionFive2 上安裝 ROS2 humble
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】五:在 VisionFive2 上體驗(yàn) ROS2 humble
Linux嵌入式開發(fā)筆記(六)在ROS2中運(yùn)行小烏龜實(shí)例

Window10怎么安裝ROS2

DDS在ROS2中的應(yīng)用

ros1和ros2的通信模型

ROS2中自帶例程測試

在TogetherROS中如何安裝ROS2功能包

評論