• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 機器人

    在 NVIDIA Jetson 上使用 Hardware-in-the-Loop 設計機器人

    Hardware-in-the-Loop( HIL )測試是一種強大的工具,用于驗證復雜系統的性能,包括機器人和計算機視覺。這篇文章探討了 HIL 測試是如何與NVIDIA Isaac platform.

    NVIDIA Isaac 平臺包括 NVIDIA Isaac Sim,一個模擬器,為測試機器人算法提供模擬環境,以及NVIDIA Isaac ROS,為 NVIDIA Jetson 優化的硬件加速軟件,其中包含機器學習、計算機視覺和定位算法。通過在該平臺上使用 HIL 測試,您可以驗證和優化機器人軟件堆棧的性能,從而獲得更安全、更可靠、更高效的產品。

    在這篇文章中,我們討論了 HIL 系統的各個組件,包括 NVIDIA Isaac 平臺的軟件和硬件。我們研究了它們如何協同工作,以優化機器人和計算機視覺算法的性能。我們還探討了使用 NVIDIA Isaac 平臺進行 HIL 測試的好處,并將其與其他測試方法進行了比較。

    NVIDIA Isaac 模擬

    NVIDIA Isaac Sim基于 Omniverse ,為測試機器人和計算機視覺算法提供了一個照片真實、物理精確的虛擬環境。它使您能夠對性能進行微調,而不會有損壞物理硬件的風險。模擬器也是高度可定制的,非常適合測試各種場景和用例。

    您可以使用 NVIDIA Isaac Sim 創建更智能、更先進的機器人。該平臺提供了一套工具和技術,可以幫助您構建復雜的算法,使機器人能夠執行復雜的任務。

    NVIDIA Isaac Sim 可以輕松協作、共享和導入通用場景描述( USD )格式的環境和機器人模型,方法是使用Omniverse NucleusOmniverse Connectors通過 Isaac ROS / ROS 2 接口、功能齊全的 Python 腳本以及用于導入機器人和環境模型的插件,這種集成實現了更高效、更有效的機器人模擬方法。

    Diagram shows a robot model, environment model, or 3D assets as input into Omniverse and Isaac Sim, with NVIDIA RTX, MDL, and PhysX as components.
    圖 1 。 NVIDIA Isaac Sim 堆棧

    您可以使用 ROS 或 ROS 2 或 Python 與 NVIDIA Isaac Sim 進行交互。運行 NVIDIA Isaac Gym 和 NVIDIA Isaac Cortex ,生成合成數據,或將其用于您的數字孿生。

    NVIDIA Isaac Sim 內部使用 ROS Noetic 的定制版本roscpp對于 ROS 橋,可以與 Omniverse 框架和 Python 3 . 7 無縫配合。此版本與 ROS 旋律兼容。

    NVIDIA Isaac Sim 目前支持 ROS 2 Foxy 和 Humble 用于 ROS 2 橋接。我們建議將 Ubuntu 20 . 04 用于 ROS 2 。

    有關詳細信息,請參閱NVIDIA Isaac Sim.

    NVIDIA Isaac ROS

    構建在機器人操作系統( ROS )之上,NVIDIA Isaac ROS提供一系列先進的功能和工具,幫助您打造更智能、更能干的機器人。這些功能包括高級映射和定位功能,以及物體檢測和跟蹤。有關最新功能的更多信息,請參閱Isaac ROS Developer Preview 3.

    通過將 Isaac ROS 作為 NVIDIA Isaac 平臺的一部分,您可以創建復雜的機器人應用程序,精確地執行復雜的任務。憑借其強大的計算機視覺和定位算法, Isaac ROS 對于任何希望創建高級機器人應用程序的開發人員來說都是一個有價值的工具。

    Diagram shows Isaac ROS layered on Isaac Gem, with ROS2 nodes for image processing, DNN, and CV.
    圖 2 : Isaac ROS 和軟件層

    ROS 的 Isaac GEM 是為機器人社區發布的一組 GPU 加速 ROS 2 軟件包,也是 NVIDIA Jetson 平臺的一部分。

    Isaac ROS 提供了一套用于感知和人工智能的軟件包,以及被稱為 NVIDIA Isaac ROS 傳輸( NITROS )的完整管道。這些軟件包已針對 NVIDIA GPU 和 Jetson 平臺進行了優化,具有圖像處理和計算機視覺功能。

    在這篇文章中,我們包括了如何為以下包運行 HIL 的示例:

    • NVIDIA Isaac ROS vslam
    • NVIDIA Isaac ?ROS apriltag
    • NVIDIA Isaac ?ROS nvblox
    • NVIDIA Isaac ROS 接近度細分

    有關其他 Isaac ROS 軟件包和最新的 Isaac ROS Developer Preview 3 的更多信息,請參閱NVIDIA Isaac ROS.

    硬件規格和設置

    對于此測試,您需要一個工作站或筆記本電腦和 NVIDIA Jetson :

    • 安裝了 Ubuntu 20 . 04 的 x86 / 64 計算機
    • 帶 NVIDIA RTX 的 NVIDIA 顯卡?
    • 陳列
    • 鍵盤和鼠標
    • NVIDIA Jetson AGX Orin 或 NVIDIA Jetson Orin NX
    • NVIDIA JetPack 5 +(已測試 5 . 1 . 1 )
    • 路由器
    • 以太網電纜
    Diagram shows a desktop with an NVIDIA graphics card connected by a router to an NVIDIA AGX Orin module.
    圖 3 。硬件設置

    當在設備(如 NVIDIA Jetson 模塊和 PC )之間傳輸大量數據時,通常首選使用有線以太網連接而不是 Wi-Fi 。這是因為以太網連接提供了更快、更可靠的數據傳輸速率,這對于實時數據處理和機器學習任務尤為重要。

    要在 Jetson 模塊和您的電腦之間建立以太網連接,請執行以下步驟:

    1. 獲得一根以太網電纜和一個帶有免費以太網端口的路由器。
    2. 將電纜的一端插入設備的以太網端口。
    3. 將電纜的另一端插入路由器上的任何空閑以太網端口。
    4. 打開設備,等待其完全啟動。
    5. 通過查找以太網圖標或使用網絡診斷工具如ifconfigipconfig.

    當您的電腦和 NVIDIA Jetson 準備就緒并連接后,請按照/NVIDIA-AI-IOT/isaac_demoGitHub 存儲庫。

    運行演示并駕駛

    在第一步中,在您的工作站上運行 NVIDIA Isaac Sim 。這個./isaac_ros.sh腳本運行了一個卡特機器人的演示。

    Carter 1.0 是一個機器人平臺,使用賽格威的差速器底座、用于 3D 范圍掃描的 Velodyne P16 、 ZED 相機、 IMU 和 Jetson 模塊作為系統的核心。與自定義安裝支架一起,它為 NVIDIA Isaac 導航堆棧提供了一個強大而穩健的演示平臺。

    當模擬開始時,您會看到 NVIDIA Isaac Sim 的立體聲相機輸出。使用兩個攝像頭,機器人可以接收 NVIDIA Jetson 模塊上運行的 Isaac ROS 的輸入。

    The Carter view from NVIDIA Isaac SIM. In this frame, the stereo camera output is shown.
    圖 4 。Carter 在 NVIDIA? Isaac? Sim 上

    Isaac ROS 軟件包將在本演示中試用

    在這篇文章中,我們討論了一些用于 AMR 機器人或與輪式機器人一起使用的 NVIDIA Isaac ROS 軟件包。我們專注于用于本地化、映射和 AprilTag 檢測的包,但您可以根據需要修改存儲庫以測試其他包。

    Isaac ROS 視覺 SLAM

    NVIDIA Isaac ROS 視覺 SLAM 結合了視覺里程計和同時定位與標測( SLAM )。

    視覺里程計是一種用于估計相機相對于其起始位置的位置的技術。該技術涉及分析兩個連續輸入幀或立體聲對以識別關鍵點集合的迭代過程。通過匹配這兩個集中的關鍵點,可以確定攝影機的過渡和幀之間的相對旋轉。

    SLAM 是一種通過結合先前獲得的軌跡知識來提高視覺 SLAM 準確性的方法。通過檢測之前是否看到過當前場景(相機移動中的循環),它可以優化之前估計的相機姿勢。

    Screenshot of Isaac ROS with the 3D map generated by nvblox and visualized on rviz.
    圖 5 。 Isaac ROS? vslam和 nvblox的比較
    Screenshot of terminal window shows the status of the NVIDIA Jetson GPU and RAM on NVIDIA Orin NX when Isaac ROS is running.
    圖 6 。 Isaac ROS vslam 和 nvblox 運行狀態

    Isaac ROS nvblox

    nvblox 軟件包有助于使用傳感器觀測實時構建機器人周圍環境的 3D 模型。路徑規劃人員使用該模型來創建無碰撞路徑。該軟件包使用 NVIDIA CUDA 技術來加速進程以獲得實時性能。該存儲庫包括用于 nvblox 庫的 ROS 2 集成。

    Workflow diagram shows how the NVIDIA Isaac ROS nvblox setup works in this demo. From left to right, the depth and RGB sensor output is used from nvblox mapping library to generate a cost map and a 3D output visualizzable from rviz.
    圖 7 。 Isaac ROS NVblox 工作流程
    Screenshot shows the 3D mapping and localization running on NVIDIA Jetson Orin NX and the output available when you run on rviz.
    圖 8 。 Isaac ROS vs . lam 輸出

    如果您遵循/NVIDIA-AI-IOT/isaac_demo說明書

    NVIDIA Isaac ROS apriltag

    ROS 2 apriltag 軟件包使用 NVIDIA GPU 加速圖像檢測,并發布姿勢、 ID 和其他元數據。該包可與 ROS 2 節點進行 CPU AprilTag 檢測。

    這些標簽是驅動機器人或操縱器從特定點開始動作或完成作業的基準。它們也被用于增強現實,以校準護目鏡的里程計。這些標簽在許多系列中都可用,但使用桌面打印機打印起來都很簡單,例如圖 9 中的標簽。

    Picture of six different AprilTag standards that NVIDIA Isaac ROS apriltag can detect.
    圖 9 。 AprilTags 代替二維碼的例子
    Screenshot shows that the Carter robot can detect two AprilTags in front of the camera. In this view the robot is also localized with NVIDIA Isaac ROS vslam and can generate a map with NVIDIA Isaac ROS nvblox.
    圖 10 。 Isaac ROS apriltag 檢測演示

    Isaac ROS 接近度分割

    這個isaac_ros_bi3d該封裝采用 Bi3D 模型,該模型已被優化以通過二進制分類來執行立體深度估計。該過程用于鄰近度分割,這有助于識別某個范圍內是否存在障礙物,并有助于在環境中導航時防止碰撞。

    In this screenshot, Carter is making a 2D map starting from the obstacle detected with Isaac ROS proximity segmentation.
    圖 11 。 Isaac ROS 接近度分割

    從 rviz 驅動 Carter

    當讀取 rviz 和 all 正在運行時, rviz 顯示此輸出。圖 12 顯示了卡特在地圖和所有區塊的中心位置。

    Screenshot of rviz and command drive.
    圖 12 。使用 Isaac ROS vslam 和 Isaac ROS nvblox 構建地圖的 rviz

    在下面的視頻中,您可以使用 rviz 在所有環境中驅動您的機器人,并查看由 nvblox 生成的地圖。

    視頻 1 。 NVIDIA Orin NX 上的 HIL ,帶有 Isaac ROS vslam 和 nvblox

    您也可以使用 Foxglove 來測試模擬。

    Screenshot shows gridded background and debugging panel for using Foxglove to visualize the output from NVIDIA Isaac ROS.
    圖 13 。使用 Foxglove 進行模擬測試

    總結

    在這篇文章中,我們向您展示了如何設置硬件在環并使用 NVIDIA Jetson Isaac ROS 模塊進行測試,以及如何嘗試 NVIDIA Isaac Sim 。請記住在您的桌面和 Jetson 模塊之間使用有線連接。要顯示所有遙測原始數據,您需要一個可靠的連接。

    也可以隨意測試剛剛添加到/isaac-ros_dev文件夾有關詳細信息,請參閱位于的 readme . md 文件/NVIDIA-AI-IOT/isaac_demo.

    有關詳細信息,請參閱Isaac ROS webinar series.

    ?

    ?

    +1

    標簽

    人人超碰97caoporen国产