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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何通過NVIDIA ISAAC ROS GEMs

星星科技指導員 ? 來源:NVIDIA ? 作者:Raffaello Bonghi ? 2022-04-15 16:42 ? 次閱讀

NVIDIA ISAAC GEMs for ROS 為您的 ROS2 應用程序提供了一套 GPU 加速包,提高了圖像處理和基于 DNN 的感知模型的吞吐量。這些 ROS2 軟件包是由 ROS2 Foxy 構建的,這是機器人社區(qū)推出的第一個長穩(wěn)定版本( LTS )。

這篇文章研究如何通過實現(xiàn) NVIDIA ISAAC ROS GEMs 來加速機器人的部署。本文的重點是使用nanosaur檢測 AprilTags ,這是一種基于 NVIDIA Jetson 平臺的簡單開源機器人。

在詳細介紹此應用程序之前,這里是 ROS 、 NVIDIA ISAAC GEMs 的歷史,以及 nanosaur 是如何構建的。

ROS 和 ROS2 的歷史

Willow Garage 于 2007 年開發(fā)了機器人操作系統(tǒng)( ROS )。 2012 次移交給新的開放機器人基金會是為了維護框架的發(fā)展。起初,該框架主要由機器人研究社區(qū)使用。最終,它在包括機器人制造商和公司在內(nèi)的更廣泛的開發(fā)者群體中贏得了歡迎。

2015 年, ROS 社區(qū)注意到生產(chǎn)版本的弱點,缺乏單機器人支持( roscore )安全性、實時支持緩慢以及其他核心問題。在這一點上,社區(qū)開始奠定第二代 ROS 的基礎,為研究社區(qū)和公司重新設計它,著眼于安全性、內(nèi)部通信和可靠性。

在最后一次 ROS 官方發(fā)布( Noetic )后, ROS2 正在成為新的機器人發(fā)行版,并且在第一次 LTS 發(fā)布后,社區(qū)的支持正在增加。

nanosaur

nanosaur 是一款基于NVIDIA Jetson的簡單開源機器人。這款機器人完全可以 3D 打印,能夠在你的辦公桌上自主漫游,使用一個簡單的攝像頭和兩個 OLED ,它們就像一對眼睛。它的尺寸為 10x12x6cm ,重量僅為 500 克。

nanosaur 的硬件與 NVIDIAJetBot類似,使用兩個 I2C OLED 顯示器并共享相同的 I2C 電機驅(qū)動器。然而, nanosaur 的軟件是直接在 ROS2 上開發(fā)的,完全是 GPU 加速的,基于 Docker 。

nanosaur 有許多節(jié)點來驅(qū)動和顯示機器人的狀態(tài)。所有節(jié)點均按包排列。

nanosaur_base

nanosaur_base啟用電機控制器和顯示器。

joy2eyes將操縱桿信息轉(zhuǎn)換為眼睛的主題。當您想要測試眼睛的主題時,此節(jié)點起作用。

nanosaur_camera

nanosaur_camera將相機拖纜從 MIPI 相機運行到 ROS2 主題。

ros2_jetson_stats

ros2_jetson_stats是jetson-statspackage的包裝,用于監(jiān)視和控制您的 NVIDIA Jetson Xavier NX 、 Jetson AGX Xavier 、 Nano 、 TX1 或 TX2]。

有關更多信息,請參閱主nanosaurGitHub 存儲庫。

這是啟動 nanosaur 時常見的 ROS2 圖表。

poYBAGJZMJ2AF14dAADQdSBkRgo884.png

圖 2 。 ROS2 納米龍圖,按存儲庫和包劃分

nanosaur 從 NVIDIA Jetson ROS Foxy Docker 圖像開始發(fā)布。還支持 ROS2 Galactic 、 ROS2 Elotent 、 ROS Melodic 和 ROS Noetic 以及 PyTorch 、 TensorRT 和 DeepStream SDK 等人工智能框架。

ROS2 Foxy 在nanosaur_camera中與 Jetson -UTIL 一起編譯和使用,以加快攝像頭訪問速度。

poYBAGJZMKOANhRjAADYWcJAo0I441.png

圖 3 。 Docker 概述。納米龍是根據(jù)dusty-nv/jetson-containers指南建造的.

當 nanosaur 運行時,有一組可用的主題,例如image_raw topic、移動顯示器上繪制的眼睛的眼睛主題以及驅(qū)動機器人的導航命令。

NVIDIA ISAAC 玫瑰寶石

簡化 GPU 加速算法的部署是這些新 ROS2 軟件包的核心目的。這些軟件包是機器人社區(qū)的開源軟件包,可以利用 CPU 并直接在 GPU 上使用 AI 和機器人感知來提高機器人的能力。所有這些 gem 都是為 rosfoxy 部署的,并與 NVIDIA 引擎配合使用。

pYYBAGJZMKiAepzVAACqDq3W8nQ915.png

圖 4 . ISAAC GEMs for ROS 是一套 GPU – 加速 ROS2 軟件包,為機器人社區(qū)發(fā)布,是 NVIDIA Jetson 平臺的一部分

NVIDIA ISAAC GEMs 在 ROS 軟件包中提供硬件加速的機器人功能,在其他 ROS 軟件包中結合本機節(jié)點時,保持 ROS2 中間件的集成。 NVIDIA ISAAC ROS GEMs 用于 x86 _ 64 / d GPU ( Ubuntu 20 . 04 )和 Jetson Xavier NX / AGX Xavier 以及最新的 NVIDIA JetPack 4 . 6 發(fā)行版。

新的NVIDIA ISAAC 玫瑰寶石包括:

isaac_ros_common

isaac_ros_image_pipeline

isaac_ros_apriltag

isaac_ros_dnn_inference(新)

isaac_ros_visual_odometry(新)

isaac_ros_argus_camera(新)

AprilTag

AprilTag 是一種獨特的 QR 碼,經(jīng)過優(yōu)化,可用于攝像機快速解碼和遠距離讀取。這些標記是基準點,用于驅(qū)動機器人或操縱器從特定點開始動作或完成作業(yè)。它們還用于增強現(xiàn)實中,以校準遮陽板的里程計。這些標簽在許多家庭中都有,但都很容易用臺式打印機打印。

poYBAGJZMK2AXZ18AADVCVfQi28498.png

圖 5 。不同類型的人名和姓氏

ROS2 AprilTag 軟件包使用 NVIDIA GPU 來加速圖像中的檢測,并發(fā)布姿勢、 ID 和其他元數(shù)據(jù)。該軟件包與CPU AprilTag 檢測的 ROS2 節(jié)點相當。

包依賴項包括:

isaac_ros_common

isaac_ros_image_pipeline

image_common

vision_cv

OpenCV 4.5+

熟悉存儲庫中提供的教程后,您可以在 ROS2 robotics 項目中定義和配置它。

poYBAGJZMNeAGVPUAABHQhpPqTo189.png

圖 6 . NVIDIA ISAAC ROS 示例管道,從攝像機流開始,到圖像校正,最后是 AprilTag 檢測

通常,從相機或立體相機輸出的流開始定義管道,其中發(fā)布了兩個主題:第一個主題,其中輸出為原始相機流;以及camera_info,其中所有校準和配置都定義了流。

完成此步驟后,您可以使用ros_image_proc來加速 ROS2 應用程序,以校正圖像以及可能的標簽和角的姿勢估計。

isaac_ros_apriltag是一個 ROS2 主題,其中包含從流中檢測到的 AprilTags 數(shù)組。對于列出的每個點,都有許多數(shù)據(jù)點,例如攝影機世界中的中心、所有角點、 ID 和姿勢。默認情況下,主題名為/tag_detections。下面是tag_detections消息的示例。

---
header:
  stamp:
    sec: 1631573373
    nanosec: 24552192
  frame_id: camera_color_optical_frame
detections:
- family: 36h11
  id: 0
  center:
    x: 779.4064331054688
    y: 789.7901000976562
    z: 0.0
  corners:
  - x: 614.0
    y: 592.0
    z: 0.0
  - x: 971.0
    y: 628.0
    z: 0.0
  - x: 946.0
    y: 989.0
    z: 0.0
  
- x: 566.0
    y: 970.0
    z: 0.0
  pose:
    header:
      stamp:
        sec: 0
        nanosec: 0
      frame_id: ''
    pose:
      pose:
        position:
          x: -0.08404197543859482
          y: 0.11455488204956055
          z: 0.6107800006866455
        orientation:
          x: -0.10551299154758453
          y: -0.10030339658260345
          z: 0.04563025385141373
          w: 0.9882935285568237
      covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

nanosaur 和 AprilTag 探測

nanosaur_follower節(jié)點使用一個配置文件初始化,其中所有選定的參數(shù)都是 PID 增益、要遵循的 AprilTag ID 和其他參數(shù)。在主循環(huán)中,該節(jié)點解碼來自Isaac_ros_apriltag的消息,當它出現(xiàn)在攝影機流中時,開始跟隨它,生成線性速度和扭曲。

在圖 8 中,Isaac_ros_apriltag為每一幀生成一個新的標簽檢測輸出,nanosaur_follower節(jié)點驅(qū)動機器人。

poYBAGJZMOiAK_PYAADzkU5F1ug288.png

圖 8 。 AprilTag 閉環(huán)導航和檢測

在這種情況下,單輪機器人,納米龍運動學模型的第一個近似值,可以使用解耦 PID 控制器跟蹤標簽。在圖 9 中,第一個控制器( A )將從中心 AprilTag 角到中心垂直線的誤差減小為零。此錯誤驅(qū)動 ROS2 twist 消息。同時,來自攝像機距離的第二個錯誤驅(qū)動機器人速度( B )。

pYYBAGJZMMOAHGRXAAEkx80Uo5Y143.png

圖 9 。在 AprilTag 檢測后, nanosaur 產(chǎn)生一個扭曲輸出來驅(qū)動電機

實時 web 界面

nanosaur 提供了第二張 Docker 圖像,其中所有主題和相機流都可以實時查看,并且您可以實時看到機器人移動時發(fā)生的情況。圖 10 顯示了一個用戶界面示例。

poYBAGJZMMqAGHBQAACXT_Y_aIs551.png

圖 10 。機器人運行時的 ROS2 web 界面示例

概括

在這篇文章中,我討論了如何使用 NVIDIA ISAAC ROS GEMs 加速機器人部署。解決方案的重點是使用nanosaur檢測 AprilTags ,這是一種基于 NVIDIA Jetson 平臺的簡單開源機器人。

關于作者

Raffaello Bonghi 是 AI & Robotics 的開發(fā)者關系經(jīng)理。自 2015 年以來,他一直是 NVIDIA Jetson 冠軍,設計用于戶外導航和教育應用的多 ROS / ROS 機器人。此外,他還參與為零售和機器人領域的眾多國際客戶開發(fā)人工智能解決方案。拉斐洛擁有博士學位。在控制理論和工業(yè)自動化領域,專注于機器人技術。

審核編輯:郭婷

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

    關注

    210

    文章

    28003

    瀏覽量

    205567
  • NVIDIA
    +關注

    關注

    14

    文章

    4817

    瀏覽量

    102639
收藏 人收藏

    評論

    相關推薦

    NVIDIA與學術研究人員聯(lián)合開發(fā)手術機器人

    利用 NVIDIA Isaac Sim 和 NVIDIA Omniverse 開發(fā)的 ORBIT-Surgical 正在 ICRA 機器人大會上展出。
    的頭像 發(fā)表于 10-10 10:00 ?250次閱讀

    Foxconn利用NVIDIA AI和Omniverse訓練機器人

    全球最大電子制造商 Foxconn 正準備制造 NVIDIA 最復雜的產(chǎn)品之一,并開始使用 NVIDIA Omniverse 和 Isaac 平臺驅(qū)動的數(shù)字孿生。
    的頭像 發(fā)表于 10-10 09:40 ?271次閱讀

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發(fā)展

    NVIDIA 發(fā)布了 Isaac Manipulator 和 Isaac Perceptor 等一系列基礎模型、機器人工具和 GPU 加速庫。 NVIDIA 創(chuàng)始人兼首席執(zhí)行官黃仁勛在
    的頭像 發(fā)表于 06-04 18:00 ?7578次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發(fā)展

    電子制造商采用NVIDIA AI和 Omniverse助力工廠提高運營效率并降低成本

    、NVIDIA Omniverse 基于物理學的渲染與模擬以及 NVIDIA Isaac AI 機器人開發(fā)與部署。 通過使用該工作流構建數(shù)字孿生以實時模擬不同工廠布局,制造商無須進行昂
    的頭像 發(fā)表于 06-04 10:22 ?546次閱讀

    NVIDIA Isaac Manipulator助力讓下一代機器人技術觸手可及

    兩家公司在芝加哥 Automate 展會上宣布將圍繞 NVIDIA AI、Isaac Manipulator 和 Intrinsic 平臺的使用展開合作。
    的頭像 發(fā)表于 05-13 14:15 ?807次閱讀

    NVIDIA Isaac機器人平臺升級,加速AI機器人技術革新

    NVIDIA Isaac機器人平臺近期實現(xiàn)重大升級,通過引入最新的生成式AI技術和先進的仿真技術,顯著加速了AI機器人技術的發(fā)展步伐。該平臺正不斷擴展其基礎模型、機器人學習框架、AI工作流編排以及機器人感知工具等功能,以應對日益
    的頭像 發(fā)表于 03-27 10:36 ?566次閱讀

    NVIDIA入局人形機器人!Isaac平臺迎來重要更新

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發(fā)展。
    的頭像 發(fā)表于 03-26 09:07 ?923次閱讀
    <b class='flag-5'>NVIDIA</b>入局人形機器人!<b class='flag-5'>Isaac</b>平臺迎來重要更新

    NVIDIA Isaac將生成式AI應用于制造業(yè)和物流業(yè)

    NVIDIA Isaac 機器人平臺利用最新的生成式 AI 和先進的仿真技術,加速 AI 機器人技術的發(fā)展。
    的頭像 發(fā)表于 03-22 10:06 ?455次閱讀
    <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b>將生成式AI應用于制造業(yè)和物流業(yè)

    生成式AI通過NVIDIA Isaac平臺提高機器人的智能化水平

    今日,NVIDIA 機器人和邊緣計算副總裁 Deepu Talla 在 CES 上的特別演講中,詳細介紹了 NVIDIA 及合作伙伴是如何將生成式 AI 與機器人技術相結合的。
    的頭像 發(fā)表于 01-09 10:27 ?1054次閱讀
    生成式AI<b class='flag-5'>通過</b><b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b>平臺提高機器人的智能化水平

    使用 NVIDIA Isaac 仿真并定位 Husky 機器人

    如何使用 ROS 2 Husky 官方軟件包將該機器人導入 NVIDIA Isaac Sim 并創(chuàng)建仿真。 本 Demo 中的 Husky 機器人配備了 NVIDIA Jetson O
    的頭像 發(fā)表于 12-26 18:05 ?1104次閱讀
    使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> 仿真并定位 Husky 機器人

    利用 NVIDIA Isaac Transport for ROS 提升自定義 ROS 圖形性能

    NVIDIA Isaac Transport for ROS(NITROS) 是隨 ROS 2 Humble 加入的兩項硬件加速功能——類型適配和類型協(xié)商。 類型適配 使
    的頭像 發(fā)表于 11-30 19:35 ?552次閱讀
    利用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> Transport for <b class='flag-5'>ROS</b> 提升自定義 <b class='flag-5'>ROS</b> 圖形性能

    ros的基本概念是什么

    基本概念: ROS是一個用于在不同進程間匿名的發(fā)布、訂閱、傳遞信息的中間件。 ROS2系統(tǒng)的核心部分是ROS網(wǎng)絡(ROS Graph)。 ROS
    的頭像 發(fā)表于 11-27 11:21 ?1669次閱讀

    NVIDIA再出手!加速開發(fā)邊緣AI應用,迎接生成式AI新紀元

    NVIDIA 近日宣布,對適用于邊緣 AI 和機器人的 NVIDIA Jetson 平臺上的兩個框架進行大規(guī)模擴展。NVIDIA Isaac ROS
    的頭像 發(fā)表于 11-23 17:31 ?979次閱讀
    <b class='flag-5'>NVIDIA</b>再出手!加速開發(fā)邊緣AI應用,迎接生成式AI新紀元

    Unity與ROS鏈接介紹

    ROS的話題與服務。 ROS和Unity之間的通信是通過Unity的“ROS-TCP-Connector”軟件包和ROS的“
    的頭像 發(fā)表于 11-17 17:22 ?877次閱讀
    Unity與<b class='flag-5'>ROS</b>鏈接介紹

    如何初始化ROS并創(chuàng)立鏈接

    Simulink對機器人操作系統(tǒng)(ROS)的支持使我們能夠創(chuàng)建與ROS網(wǎng)絡一起工作的Simulink模型。ROS是一個通信層,允許機器人系統(tǒng)的不同組件以消息的形式交換信息。 組件通過
    的頭像 發(fā)表于 11-15 17:26 ?448次閱讀
    如何初始化<b class='flag-5'>ROS</b>并創(chuàng)立鏈接