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