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

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

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

了解ROS2是什么

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

ROS是一組開(kāi)源軟件庫(kù)和工具,可幫助您構(gòu)建機(jī)器人應(yīng)用程序。專業(yè)人士和業(yè)余愛(ài)好者可以協(xié)作和分享他們的代碼以進(jìn)行軟件開(kāi)發(fā)。工程師們可以快速重復(fù)使用代碼塊,并輕松找到構(gòu)建完全功能的機(jī)器人設(shè)備所需的所有工具。您一定已經(jīng)注意到ROS1和ROS2,選擇一開(kāi)始使用哪個(gè)或何時(shí)切換到另一個(gè)可能是很困難的選擇。現(xiàn)在,讓我們跳進(jìn)文章中,了解ROS2是什么,以及與之前版本相比,有什么讓人感興趣的地方呢?

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

什么是ROS2

ROS2是從底層構(gòu)建時(shí)便考慮使其適用于商業(yè)用途,它是機(jī)器人操作系統(tǒng)現(xiàn)有框架的重構(gòu),經(jīng)過(guò)優(yōu)化以適用于工業(yè)應(yīng)用,開(kāi)發(fā)可在新的應(yīng)用中進(jìn)行擴(kuò)展,如移動(dòng)機(jī)器人、無(wú)人機(jī)群和自動(dòng)駕駛汽車。

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

首先,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ā)送請(qǐng)求,該節(jié)點(diǎn)處理請(qǐng)求并發(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)的特定變量值。

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

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í)間等問(wèn)題并不是優(yōu)先考慮的。隨著ROS現(xiàn)在被采用于商業(yè)領(lǐng)域,它的許多主要缺點(diǎn)正在變得明顯。因此,更加有必要從頭開(kāi)始重新構(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客戶端庫(kù)共享rcl實(shí)現(xiàn),提供了更一致的性能,同時(shí)也更容易創(chuàng)建新的客戶端庫(kù)支持新的語(yǔ)言。

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è)嵌入式開(kāi)發(fā)平臺(tái),整合了硬件模組,開(kāi)發(fā)工具包和生態(tài),它可以用于運(yùn)行深度學(xué)習(xí)模型和機(jī)器人操作系統(tǒng)ROS。

NVIDIA使用了一個(gè)已有的深度學(xué)習(xí)模型部署框架,并結(jié)合TensorRT技術(shù)來(lái)提高模型推理的性能。他們還使用了一些AI模型,如ResNet18、MobileNetV1/V2、SSD、YOLO和FasterRCNN,用于分類和物體檢測(cè)等任務(wù)。

此外,還有一個(gè)編碼器和解碼器節(jié)點(diǎn),可用于將YOLOv5模型的推斷結(jié)果以張量的形式發(fā)布到解碼器節(jié)點(diǎn)中。最后,我們將訂閱這些張量并將其轉(zhuǎn)換為特定的參數(shù),最終將結(jié)果作為Detection2DArray消息發(fā)布給每個(gè)圖像。

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

Nvidia 網(wǎng)絡(luò)研討會(huì)

對(duì)于計(jì)算物體距離,可以使用一種高效的模型叫做半監(jiān)督模型(ESS),這個(gè)模型使用了一個(gè)深度學(xué)習(xí)算法,可以根據(jù)圖像對(duì)的視差來(lái)計(jì)算物體距離,并返回一個(gè)連續(xù)的視差圖。如果想把它和ROS2結(jié)合起來(lái)使用,需要參考一些相關(guān)的包,比如isaac_ros_stereo_image_proc、isaac_ros_ess和isaac_ros_bi3d。

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

Nvidia 網(wǎng)絡(luò)研討會(huì)

針對(duì)人體姿勢(shì)估計(jì),可以使用一個(gè)預(yù)訓(xùn)練模型,在圖像上推斷出人體的17個(gè)部位,并使用ros2_trt_pose包進(jìn)行標(biāo)記和可視化。這樣可以得到一個(gè)實(shí)時(shí)的圖像輸出,顯示人體的關(guān)節(jié)和骨骼的位置。

如果要使用多傳感器處理、視頻和圖像理解來(lái)構(gòu)建人工智能的端到端解決方案,NVIDIA提供了ros2_deepstream節(jié)點(diǎn),可以進(jìn)行目標(biāo)檢測(cè)和屬性分類的推斷,并在檢測(cè)到的物體周圍顯示邊界框和標(biāo)簽。

此外,您還可以參加NV即將舉辦的Isaac ROS網(wǎng)絡(luò)研討會(huì),了解如何使用預(yù)訓(xùn)練的DNN模型來(lái)估計(jì)立體相機(jī)的測(cè)距。注冊(cè)后,您可以在2023年1月17日參加此次研討會(huì),獲取更多信息。

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

Nvidia 網(wǎng)絡(luò)研討會(huì)

想要學(xué)習(xí)ROS(機(jī)器人操作系統(tǒng)),可以從推薦的Humble Hawksbill指南開(kāi)始,其中包括概念、教程、安裝步驟以及很多有趣的項(xiàng)目。而對(duì)于ROS2,它支持Gazebo Fortress,這是一個(gè)基于ROS的機(jī)器人模擬器,包括超過(guò)十幾個(gè)現(xiàn)成的分割相機(jī)、GPS等傳感器,以及3D視圖圖形界面等功能。此外,移動(dòng)機(jī)器人Humble則為機(jī)器人臂操縱系統(tǒng)的開(kāi)發(fā)注入了新的活力,特別是為混合編程功能而開(kāi)發(fā)的:使用(較慢的)全局運(yùn)動(dòng)規(guī)劃器和(較快的)局部運(yùn)動(dòng)規(guī)劃器,使機(jī)器人可以在在線和動(dòng)態(tài)環(huán)境中解決不同的任務(wù)。

如果想要更好地管理ROS2開(kāi)發(fā)周期并在機(jī)器人集成過(guò)程中獲得簡(jiǎn)便的步驟,可以使用Cogniteam Nimbus。Nimbus使用容器化應(yīng)用程序作為軟件組件,通過(guò)代碼、控制臺(tái)界面或使用GUI從Web中組織、連接和重新組裝這些組件,使任何人(即使沒(méi)有ROS特定的知識(shí))都可以了解和查看構(gòu)成這些組件的機(jī)器人執(zhí)行的各種構(gòu)建塊。它還允許在同一機(jī)器人上使用各種ROS發(fā)行版(包括ROS1和ROS2組件),以解決OS和ROS版本之間的問(wèn)題耦合問(wèn)題。

對(duì)于想要開(kāi)始ROS開(kāi)發(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)檢測(cè)、姿態(tài)估計(jì)、語(yǔ)義分割、視頻處理等。

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

這是一款用于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、樹(shù)莓派GPIO 40針等接口,可加速你的下一個(gè)人工智能應(yīng)用的開(kāi)發(fā)和部署。它還具有多個(gè)攝像頭連接器,適用于運(yùn)行多個(gè)神經(jīng)網(wǎng)絡(luò),用于圖像分類、物體檢測(cè)、分割和語(yǔ)音處理等應(yīng)用。

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

審核編輯 :李倩

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

    關(guān)注

    211

    文章

    28551

    瀏覽量

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

    關(guān)注

    37

    文章

    6858

    瀏覽量

    123485
  • 自動(dòng)駕駛
    +關(guān)注

    關(guān)注

    784

    文章

    13890

    瀏覽量

    166676

原文標(biāo)題:

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Micro-ROS:把ROS2放在MCU上

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

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

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

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

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

    如何在ROS2中運(yùn)行小烏龜呢

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

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

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

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

    ,IP地址替換為自己的實(shí)際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ì)算機(jī)體驗(yàn)】四:在 VisionFive2 上安裝 ROS2 humble

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

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

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

    Linux嵌入式開(kāi)發(fā)筆記(六)在ROS2中運(yùn)行小烏龜實(shí)例

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

    Window10怎么安裝ROS2

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

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

    X3派、PC虛擬機(jī)連接無(wú)線wifi網(wǎng)絡(luò)下,通過(guò)ROS2實(shí)現(xiàn)跨設(shè)備通信……
    的頭像 發(fā)表于 07-13 15:03 ?1018次閱讀
    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之上。在這個(gè)ROS2的架構(gòu)圖中,藍(lán)色和紅色部分就是DDS。 剛才我們也提到,DDS是一種通信的標(biāo)準(zhǔn),就像4G
    的頭像 發(fā)表于 11-24 17:54 ?964次閱讀
    DDS在<b class='flag-5'>ROS2</b>中的應(yīng)用

    ros1和ros2的通信模型

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

    ROS2中自帶例程測(cè)試

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

    在TogetherROS中如何安裝ROS2功能包

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