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

DDS在ROS2中的應用

ros1和ros2的通信模型

ROS2中自帶例程測試

在TogetherROS中如何安裝ROS2功能包

評論