0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

了解ROS2是什么

柴火創(chuàng)客空間 ? 來源:柴火創(chuàng)客空間 ? 2023-02-28 13:38 ? 次閱讀

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是什么,以及與之前版本相比,有什么讓人感興趣的地方呢?

246f94ce-b217-11ed-bfe3-dac502259ad0.png

什么是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ī)群和自動駕駛汽車。

24953652-b217-11ed-bfe3-dac502259ad0.png

首先,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é)點的特定變量值。

24b33936-b217-11ed-bfe3-dac502259ad0.png

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ā)布給每個圖像。

24cd12ac-b217-11ed-bfe3-dac502259ad0.png

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。

250006c6-b217-11ed-bfe3-dac502259ad0.png

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日參加此次研討會,獲取更多信息。

251d2e0e-b217-11ed-bfe3-dac502259ad0.png

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)估計、語義分割、視頻處理等。

253644b6-b217-11ed-bfe3-dac502259ad0.png

這是一款用于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)用。

25512d44-b217-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28103

    瀏覽量

    205853
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6684

    瀏覽量

    123140
  • 自動駕駛
    +關(guān)注

    關(guān)注

    782

    文章

    13622

    瀏覽量

    165952

原文標(biāo)題:

文章出處:【微信號:ChaiHuoMakerSpace,微信公眾號:柴火創(chuàng)客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Micro-ROS:把ROS2放在MCU上

    機(jī)器人的發(fā)展。 ? ROS便是為機(jī)器人在研發(fā)的過程中的代碼復(fù)用提供支持的開源框架,大量的機(jī)器人開源項目,從感知到控制、從定位到構(gòu)圖、從導(dǎo)航到可視化,幾乎都使用ROS作為基礎(chǔ)。 ? Micro-ROS從何而來? ? Micro-
    的頭像 發(fā)表于 04-07 07:13 ?7559次閱讀

    系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請問一下,百度文庫資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    ROS2的安裝與使用 精選資料推薦

    ros2的烏龜仿真turtlesim,介紹topic,service,action等元素及其使用,介紹ros的基本操作
    發(fā)表于 08-30 08:24

    如何在ROS2中運行小烏龜呢

    ROS2中運行小烏龜,其實主要就是安裝兩個工具,turtlesim和rqt。A: 安裝turtlesim。輸入【sudo apt update】輸入【sudo apt install
    發(fā)表于 11-05 06:08

    基于無線wifi網(wǎng)絡(luò)的X3派和PC虛擬機(jī)通過ROS2實現(xiàn)跨設(shè)備通信

    1、X3派和PC虛擬機(jī)都連接無線wifi網(wǎng)絡(luò)的情況下通過ROS2實現(xiàn)跨設(shè)備通信多機(jī)通信是ROS的基礎(chǔ)能力之一,相比于ROS1,ROS2通過非常簡單的配置即可實現(xiàn)多機(jī)通信。對于兩個安裝了
    發(fā)表于 07-13 15:13

    教你一步步創(chuàng)建自己的ROS2工作空間應(yīng)用

    ,IP地址替換為自己的實際IP地址。ssh root@192.168.31.1922、在X3派中執(zhí)行下面的命令腳本進(jìn)行系統(tǒng)的更新以及ROS2編譯環(huán)境依賴安裝apt -y update &
    發(fā)表于 11-24 15:00

    【昉·星光 2 高性能RISC-V單板計算機(jī)體驗】四:在 VisionFive2 上安裝 ROS2 humble

    在 VisionFive2 上安裝 ROS2 humble ROS(Robot Operating System)是一種用于編寫機(jī)器人軟件的靈活框架。它是一個工具(tools)、庫
    發(fā)表于 09-04 03:33

    【昉·星光 2 高性能RISC-V單板計算機(jī)體驗】五:在 VisionFive2 上體驗 ROS2 humble

    在 VisionFive2 上體驗 ROS2 humble 一、系統(tǒng)準(zhǔn)備 參考 在 VisionFive2 上安裝 ROS2 humble 安裝并配置
    發(fā)表于 09-04 04:59

    Linux嵌入式開發(fā)筆記(六)在ROS2中運行小烏龜實例

    ROS2中運行小烏龜,其實主要就是安裝兩個工具,turtlesim和rqt。A: 安裝turtlesim。輸入【sudo apt update】輸入【sudo apt install
    發(fā)表于 11-02 15:21 ?10次下載
    Linux嵌入式開發(fā)筆記(六)在<b class='flag-5'>ROS2</b>中運行小烏龜實例

    Window10怎么安裝ROS2

    Window10怎么安裝ROS2,以下的操作都要管理員的權(quán)限,我可以提前劇透,我應(yīng)該應(yīng)該是沒有安裝上DDS,應(yīng)該是算安裝好了80%的樣子。
    的頭像 發(fā)表于 02-22 10:12 ?882次閱讀
    Window10怎么安裝<b class='flag-5'>ROS2</b>

    X3派和PC虛擬機(jī)之間基于ROS2和wifi的通信

    X3派、PC虛擬機(jī)連接無線wifi網(wǎng)絡(luò)下,通過ROS2實現(xiàn)跨設(shè)備通信……
    的頭像 發(fā)表于 07-13 15:03 ?908次閱讀
    X3派和PC虛擬機(jī)之間基于<b class='flag-5'>ROS2</b>和wifi的通信

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

    DDS在ROS2中的應(yīng)用 DDS在ROS2系統(tǒng)中的位置至關(guān)重要,所有上層建設(shè)都建立在DDS之上。在這個ROS2的架構(gòu)圖中,藍(lán)色和紅色部分就是DDS。 剛才我們也提到,DDS是一種通信的標(biāo)準(zhǔn),就像4G
    的頭像 發(fā)表于 11-24 17:54 ?845次閱讀
    DDS在<b class='flag-5'>ROS2</b>中的應(yīng)用

    ros1和ros2的通信模型

    數(shù)據(jù) ROS2: 參與者(DomainParticipant):一個參與者Participant就是一個容器,對應(yīng)于一個使用DDS的用戶,任何DDS的用戶都必須通過Participant來訪問全局
    的頭像 發(fā)表于 11-27 11:26 ?735次閱讀
    <b class='flag-5'>ros</b>1和<b class='flag-5'>ros2</b>的通信模型

    ROS2中自帶例程測試

    如果你是一個ROS2的開發(fā)者,可能對剛才我們使用的ROS2命令比較熟悉,這時你可能也會產(chǎn)生一個問題:我們之前也安裝了ROS2系統(tǒng),那ROS2的原生功能還可以正常運行么? 我們再來試一試
    的頭像 發(fā)表于 11-28 16:29 ?882次閱讀
    <b class='flag-5'>ROS2</b>中自帶例程測試

    在TogetherROS中如何安裝ROS2功能包

    安裝ROS2功能包 接下來,還有一個很重要的配置,那就是安裝ROS2功能包,我們說TogetherROS是基于ROS2深度優(yōu)化的,很多模塊還是會復(fù)用ROS2中的功能,所有
    的頭像 發(fā)表于 12-01 16:02 ?905次閱讀
    在TogetherROS中如何安裝<b class='flag-5'>ROS2</b>功能包