機(jī)器人技術(shù)正在采用深度學(xué)習(xí)技術(shù)來精確導(dǎo)航室內(nèi)環(huán)境,檢測并跟蹤感興趣的物體,以及在沒有碰撞的情況下進(jìn)行移動。然而,深度學(xué)習(xí)的復(fù)雜性日益增加,使得在嵌入式系統(tǒng)上適應(yīng)這些工作負(fù)載具有挑戰(zhàn)性。雖然您可以在精度和深度學(xué)習(xí)模型大小之間進(jìn)行權(quán)衡,但在大多數(shù)機(jī)器人應(yīng)用程序中,為了滿足實時需求而犧牲精度通常會適得其反。
易于使用和部署使得NVIDIAJetson平臺成為開發(fā)人員、研究人員和制造商制造和部署機(jī)器人(如JetBot、MuSHR和MITRaceCar)的合理選擇。在這篇文章中,我們在Jetson上提出了用于分類、目標(biāo)檢測和人體姿勢估計的深度學(xué)習(xí)模型。我們還提供了一個ROS2節(jié)點,用于在部署中監(jiān)控Jetson的各種資源和操作參數(shù)。ros2提供了輕量級實現(xiàn),因為它消除了網(wǎng)橋節(jié)點的依賴性,并在嵌入式系統(tǒng)中提供了各種優(yōu)勢。
我們利用現(xiàn)有的NVIDIA框架進(jìn)行深度學(xué)習(xí)模型部署,如TensorRT,以提高模型推理性能。我們還集成了NVIDIADeepStreamSDK和ROS2,以便您可以執(zhí)行流聚合和批處理,并部署各種AI模型用于分類和對象檢測,包括ResNet18、MobileNetV1/V2、SSD、YOLO、FasterRCNN。此外,我們還為世界各地的開發(fā)者基于Jetson的流行項目(如trt_pose和jetson_stats)實現(xiàn)ros2節(jié)點。最后,我們?yōu)樯厦嫣岬降拿總€應(yīng)用程序提供了一個GitHub存儲庫,包括ros2節(jié)點和Docker文件,這樣您就可以輕松地在Jetson平臺上部署節(jié)點。有關(guān)每個項目的詳細(xì)信息,請參閱以下部分。
用于人體姿態(tài)估計的ROS2節(jié)點
ros2_trt_pose包是基于trt_pose實現(xiàn)的,它可以在Jetson平臺上進(jìn)行姿態(tài)估計。存儲庫使用resnet18和densenet121為姿勢估計提供了兩個經(jīng)過訓(xùn)練的模型。為了了解人體姿勢,預(yù)訓(xùn)練模型根據(jù)COCO數(shù)據(jù)集的類別推斷出17個身體部位。
快遞分揀機(jī)器人工作原理圖圖1ros2\utrt_pose軟件包的描述和輸出。
以下是ros2_trt_posepackage的主要功能:
發(fā)布pose_msgs,如countofperson和person_id。對于每個person_id,它發(fā)布17個身體部位。
提供啟動文件以便于Rviz2上的使用和可視化:
圖像消息
視覺標(biāo)記:body_joints,body_skeleton
包含基于Jetson的Docker映像,便于安裝和使用。
PyTorch和TensorRT的ROS2包
圖2。ros2trt_分類和trt_檢測節(jié)點的包描述。
使用PyTorch有兩個用于分類和檢測的包,每個包都實現(xiàn)了相應(yīng)的TRT版本。這四個軟件包是使用ros2的機(jī)器人專家開始使用PyTorch進(jìn)行深度學(xué)習(xí)的良好起點。
TensorRT已經(jīng)在torch2trt的幫助下集成到包中,以加速推斷。它生成一個運(yùn)行時引擎,該引擎根據(jù)網(wǎng)絡(luò)架構(gòu)和部署設(shè)備進(jìn)行優(yōu)化。
這些軟件包的主要特點如下:
對于分類,您可以從各種ImageNet預(yù)訓(xùn)練模型中進(jìn)行選擇,包括Resnet18、AlexNet、squezenet和Resnet50。
對于檢測,目前支持基于MobileNetV1的SSD,在COCO數(shù)據(jù)集上進(jìn)行訓(xùn)練。
相對于直接在GPU上執(zhí)行推理的PyTorch模型,TRT包在執(zhí)行推理方面提供了顯著的加速。
推理結(jié)果以視覺圖形的形式公布。
在運(yùn)行該節(jié)點時,還將顯示一個窗口,其中可視化了推理結(jié)果。
提供了基于Jetson的Docker映像和啟動文件,以便于使用。
用于DeepStreamSDK的ROS2節(jié)點
圖3ROS2DeepStream發(fā)布服務(wù)器節(jié)點的包說明。
DeepStreamSDK提供了一個完整的流分析工具包,用于使用多傳感器處理、視頻和圖像理解構(gòu)建端到端基于人工智能的解決方案。它支持流行的對象檢測和分割模型,如最先進(jìn)的SSD、YOLO、FasterRCNN和MaskRCNN。
NVIDIA根據(jù)DeepStreamPythonApps項目提供執(zhí)行兩個推理任務(wù)的ROS2節(jié)點,如下所示:
目標(biāo)檢測:檢測到四類對象:Vehicle、Person、RoadSign和TwoWheeler。
屬性分類:車輛類的對象有三種類型的屬性:Color、Make和Type。
這些發(fā)布服務(wù)器節(jié)點從攝像機(jī)或文件接收單個或多個視頻流作為輸入。它們執(zhí)行推理,并將檢測和分類的結(jié)果發(fā)布到不同的主題。我們還提供了訂閱這些主題并以vision_msgs格式顯示結(jié)果的ros2訂戶節(jié)點示例。每個推理任務(wù)還生成一個可視化窗口,在檢測到的對象周圍有邊界框和標(biāo)簽。附加的推理任務(wù)和定制模型可以與本項目中提供的DeepStream軟件架構(gòu)集成。
vision_msgsClassification2D格式的示例分類輸出:
[vision_(id=’silver’,score=0.14),vision_(id=’toyota’,score=0.33),vision_(id=’sedan’,score=0.75)]
ROS2Jetson統(tǒng)計
ros2_jetson_stats包是一個社區(qū)構(gòu)建包,用于監(jiān)視和控制您的Jetson設(shè)備。它可以在您的終端上運(yùn)行,并提供一個Python包,以便于在Python腳本中集成。利用ros2_jetson_stats庫,構(gòu)建ROS2診斷消息和服務(wù)。
ros2_jetson_stats軟件包具有以下ROS2診斷消息:
GPU/CPU使用百分比
EMC/交換/內(nèi)存狀態(tài)
SoC的功率和溫度
現(xiàn)在您可以通過ROS2命令行控制以下內(nèi)容:
(EZX29和Speed:
電源型號
jetson_clocks
您還可以提供一個參數(shù)來設(shè)置讀取診斷消息的頻率。
有關(guān)詳細(xì)信息,請參閱NVIDIA-AI-IOT/ros2_jetson_statsGitHubrepo。
可回收物分揀機(jī)器人多少錢一臺用于Jetson的ROS2容器
為了在Jetson上輕松運(yùn)行ROS2的不同版本,NVIDIA發(fā)布了各種dockerfile,并為ROS2Eloquent和Foxy構(gòu)建了腳本,此外還有ROSMelodic和Noetic。這些容器提供了在Jetson上安裝ROS或ROS2并構(gòu)建自己的基于ROS的應(yīng)用程序的自動化和可靠的方法。
因為Elocquent和Melodic已經(jīng)為Ubuntu18。04提供了預(yù)構(gòu)建的包,所以這些版本的ROS被Dockerfiles安裝到容器中。另一方面,F(xiàn)oxy和Noetic是從容器內(nèi)部的源代碼構(gòu)建的,因為這些版本都是為ubuntu20。04預(yù)構(gòu)建的。對于容器,使用這些版本的ROS或ROS2是相同的,不管底層的OS發(fā)行版如何。
要構(gòu)建容器,請在運(yùn)行Jetpack4。4或更新版本的Jetson設(shè)備上克隆repo,然后啟動ROS構(gòu)建腳本:
此命令創(chuàng)建具有以下標(biāo)記的容器:
快遞分揀機(jī)器人在哪里ros:
ros:
ros:
ros:
例如,要啟動ROS2Foxy容器,請運(yùn)行以下命令:
倉庫智能分揀機(jī)器人$sudodockerrun–runtimenvidia-it–rm–networkhostros:
除了Jetson設(shè)備上的其他硬件加速器,使用–runtimenvidia標(biāo)志會自動啟用容器中的GPU直通。要在容器中傳輸MIPICSI攝影機(jī),請包含以下標(biāo)志:
–volume/tmp/argus_socket:/tmp/argus_socket
要在容器中傳輸V4L2USB攝像頭,請在啟動容器時安裝所需的/dev/video*設(shè)備:
–device/dev/video0
NVIDIAOmniverseISAAC面向ROS開發(fā)者的仿真平臺
在OmniverseNVIDIA平臺上構(gòu)建的NVIDIAISAAC模擬仿真工具包比現(xiàn)有的機(jī)器人工作流程帶來了一些有用的改進(jìn):
它利用了Omniverse高度精確的物理模擬和逼真的光線跟蹤圖形,直接與業(yè)界領(lǐng)先的物理框架集成,如用于剛體動力學(xué)的NVIDIAPhysXSDK。
它重新關(guān)注互操作性、與NVIDIAISAACSDK的深度集成以及ROS的擴(kuò)展。
它很容易擴(kuò)展。通過其基于Python的腳本接口,它允許您適應(yīng)自己獨(dú)特的用例。
它是為可部署而構(gòu)建的,其體系結(jié)構(gòu)支持本地工作站上的工作流,并通過云與NVIDIANGC一起工作。
AmeyKulkarni是NVIDIA的開發(fā)技術(shù)工程師,專注于將深度學(xué)習(xí)解決方案有效地部署到邊緣。在2019年加入NVIDIA之前,他完成了馬里蘭大學(xué)計算機(jī)工程博士學(xué)位。他的研究興趣是在嵌入式平臺上部署數(shù)字信號處理、計算機(jī)視覺和深度學(xué)習(xí)系統(tǒng)。
RishabhChadha是NVIDIA的嵌入式工程實習(xí)生——AI,他專注于為NVIDIAJetson平臺集成深度學(xué)習(xí)和機(jī)器人技術(shù)框架。他將于2021年畢業(yè)于伍斯特理工學(xué)院,獲得機(jī)器人學(xué)碩士學(xué)位。他的興趣主要包括深度學(xué)習(xí)、醫(yī)學(xué)成像和機(jī)器人感知。
AsawareeBhide是NVIDIA的AI嵌入式工程實習(xí)生,致力于優(yōu)化和部署邊緣設(shè)備上的深度學(xué)習(xí)模型。她目前正在喬治亞理工學(xué)院攻讀計算機(jī)科學(xué)碩士學(xué)位,她對解決由具體代理自主導(dǎo)航的復(fù)雜感知任務(wù)感興趣。TomaszLewicki是NVIDIA的嵌入式工程實習(xí)生。他擁有圣何塞州立大學(xué)計算機(jī)工程碩士學(xué)位,華沙工業(yè)大學(xué)華沙工業(yè)大學(xué)機(jī)器人工程學(xué)學(xué)士學(xué)位。他的興趣集中在計算機(jī)視覺和機(jī)器人應(yīng)用的深度學(xué)習(xí)上。
審核
藥品分揀機(jī)器人廠家報價食品生產(chǎn)線分揀機(jī)器人圖片垃圾分揀機(jī)器人的缺點