Hardware-in-the-Loop(硬件在環,HIL)測試是一種強大的工具,用于驗證和核實包括機器人技術和計算機視覺在內的復雜系統的性能。本文探討了 HIL 測試是如何通過 NVIDIA Isaac 平臺應用于這些領域的。
NVIDIA Isaac 平臺由 NVIDIA Isaac Sim 和 NVIDIA Isaac ROS 組成。前者是一個仿真器,為測試機器人算法提供仿真環境,后者是針對NVIDIA Jetson優化的硬件加速軟件,其中包含機器學習、計算機視覺和定位算法。基于NVIDIA Isaac 平臺進行 HIL 測試,您可以驗證和優化機器人軟件棧的性能,從而獲得更安全、更可靠、更高效的產品。
下文將討論 HIL 系統的各個組件,包括 NVIDIA Isaac 平臺的軟件和硬件。此外還會研究它們如何協同工作,以優化機器人和計算機視覺算法的性能。我們也將探討使用 NVIDIA Isaac 平臺進行 HIL 測試的好處,并與其他測試方法進行比較。
NVIDIA Isaac Sim
基于 Omniverse 的 NVIDIA Isaac Sim 為測試機器人和計算機視覺算法提供了一個照片級真實、物理精準的虛擬環境,使用戶能夠在無損壞物理硬件風險的前提下對性能進行微調。同時,該仿真器也是高度可定制的,是測試各種場景和用例的理想選擇。
您可以利用 NVIDIA Isaac Sim 創造更智能、更先進的機器人。平臺提供了一套能夠幫您構建復雜算法的工具和技術,使機器人能夠執行復雜的任務。
通過使用 Omniverse Nucleus 和Omniverse Connectors,NVIDIA Isaac Sim可以輕松協作、共享和導入通用場景描述(USD)格式的環境和機器人模型。通過集成 Isaac ROS/ROS 2 接口、全功能的 Python 腳本,以及用于導入機器人和環境模型的插件,可以實現更加高效和有效的機器人仿真。
圖 1. NVIDIA Isaac Sim 堆棧
您可以使用 ROS 或 ROS 2,又或是 Python 與 NVIDIA Isaac Sim 進行交互。運行 NVIDIA Isaac Gym 和 NVIDIA Isaac Cortex,生成合成數據,或者將其用于數字孿生。
NVIDIA Isaac Sim 在內部采用定制版本的 ROS Noetic,使用 roscpp構建用于ROS Bridge,與 Omniverse 框架和 Python 3.7 無縫協作。這個版本與 ROS Melodic 兼容。
NVIDIA Isaac Sim 目前支持 ROS 2 Foxy 和 Humble 的 ROS 2 Bridge,建議將 Ubuntu 20.04 用于 ROS 2。
了解更多詳細信息,請參閱 NVIDIA Isaac Sim(https://developer.nvidia.com/isaac-sim)。
NVIDIA Isaac ROS
NVIDIA Isaac ROS 建立在機器人操作系統(ROS)之上,提供了一系列先進的功能和工具,幫您打造更智能、更強大的機器人。這些功能包括先進的繪圖和定位,以及物體檢測和跟蹤。有關最新功能的更多信息,請參閱 Isaac ROS Developer Preview 3 (https://developer.nvidia.com/blog/build-high-performance-robotic-applications-with-nvidia-isaac-ros-developer-preview-3/)。
通過使用 NVIDIA Isaac 平臺的 Isaac ROS,您可以創建復雜的機器人應用程序,精確地執行復雜的任務。憑借強大的計算機視覺和定位算法,Isaac ROS 對于任何希望創建高級機器人應用程序的開發人員來說都是一個有價值的工具。
圖 2. Isaac ROS 和軟件層
Isaac GEMs for ROS 是一套為機器人社區發布的 GPU 加速 ROS 2 軟件包,是 NVIDIA Jetson 平臺的一部分。
Isaac ROS 提供了一套用于感知及 AI 的軟件包,以及被稱為 NVIDIA Isaac Transport for ROS (NITROS)的完整管線。這些軟件包已經針對 NVIDIA GPU 和 Jetson 平臺進行了優化,具有圖像處理和計算機視覺的功能。
在這篇文章中,我們收錄了如何為以下軟件包運行 HIL 的示例:
-
NVIDIA Isaac ROS vslam
-
NVIDIA Isaac ROS apriltag
-
NVIDIA Isaac ROS nvblox
-
NVIDIAIsaac ROS Proximity segmentation
有關其他Isaac ROS 軟件包和最新Isaac ROS Developer Preview 3 的更多信息,請參閱 NVIDIA Isaac ROS (https://developer.nvidia.com/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)
-
路由器
-
以太網電纜
圖 3. 硬件設置
當在設備之間(如 NVIDIA Jetson 模塊和電腦)傳輸大量數據時,通常首選使用有線以太網連接而不是 Wi-Fi。這是因為以太網連接提供了更快、更可靠的數據傳輸速率,對于實時數據處理和機器學習任務尤為重要。
在 Jetson 模塊和電腦之間建立以太網連接,您需要按照以下步驟操作:
-
準備一根以太網電纜和一個帶有免費以太網端口的路由器。
-
將電纜的一端插入設備的以太網端口。
-
將電纜的另一端插入路由器上其他未使用的以太網端口。
-
打開設備,等待其完全啟動。
-
通過查找以太網圖標,或使用如 ifconfig 或 ipconfig 的網絡診斷工具。
當電腦和 NVIDIA Jetson 準備就緒并連接后,請按照 /NVIDIA-AI-IOT/isaac_demo(https://github.com/NVIDIA-AI-IOT/isaac_demo)進行操作。
運行 Demo 和驅動
第一步,在工作站上運行 NVIDIA Isaac Sim。使用 ./isaac_ros.sh 腳本運行一個 Carter 機器人的 Demo。
Carter 1.0 是一個機器人平臺,使用了Segway的差速器底座、一個用于 3D 范圍掃描的 Velodyne P16、一個 ZED 攝像頭、一個 IMU 以及一個作為系統核心的 Jetson 模塊,與定制的安裝支架一起,為 NVIDIA Isaac 導航堆棧提供了一個強大而堅固的演示平臺。
當仿真開始時,您可以看到 NVIDIA Isaac Sim 的立體相機進行輸出。使用兩個攝像頭,機器人已經準備好接收在 NVIDIA Jetson 模塊上運行的 Isaac ROS 的輸入。
圖 4. NVIDIAIsaacSim 上的Carter
在 Demo 中試用 Isaac ROS 軟件包
在這篇文章中,我們探討用于 AMR 機器人或輪式機器人的 NVIDIA Isaac ROS 軟件包。我們會重點討論用于定位、繪圖和 AprilTag 檢測的軟件包,您也可以根據需要修改資源庫,以測試其他需要使用的軟件包。
Isaac ROS Visual SLAM
NVIDIA Isaac ROS Visual SLAM 采用了視覺里程計和同步定位與建圖技術(SLAM)的結合。
視覺里程計用于估計攝像機相對于其起始位置的位置。該技術涉及分析兩個連續輸入幀或立體聲對識別關鍵點集合的迭代過程。通過匹配這兩個集合的關鍵點,可以確定攝像機的過渡和幀之間的相對旋轉。
SLAM 是一種通過結合先前獲得的軌跡來增強視覺 SLAM 準確性的方法。通過檢測當前場景是否曾被看過(攝像機運動的循環),就可以優化先前估計的攝像機姿勢。
圖 5. Isaac ROSvslam 和 nvblox
圖 6. Isaac ROS vslam 和 nvblox 運行狀態
Isaac ROS nvblox
nvblox 軟件包通過使用傳感器觀測數據,實時建立機器人周圍環境的 3D 模型,路徑規劃人員可以使用該模型來創建無碰撞路徑。軟件包使用 NVIDIA CUDA 技術來加速這一過程,以獲得實時性能。這個存儲庫包括用于 nvblox 庫的 ROS 2 集成。
圖 7. Isaac ROS NVblox 工作流程
圖 8. Isaac ROS vs.lam 輸出
按照 /NVIDIA-AI-IOT/isaac_demo(https://github.com/NVIDIA-AI-IOT/isaac_demo)進行操作,Isaac ROS vslam 軟件包即可在 Demo 上運行。
NVIDIA Isaac ROS apriltag
ROS 2 apriltag 軟件包使用 NVIDIA GPU 來加速圖像中的檢測,并發布位姿、ID 和其他元數據。這個軟件包可與 ROS 2 節點的 CPU AprilTag 檢測相媲美。
這些標簽是驅動機器人或操縱者從特定點開始動作或完成作業的基準。它們也被用于增強現實,以校準觀察孔的測距。這些標簽在許多系列中都可用,也易用桌面打印機打印,如圖 9 中的標簽。
圖 9. AprilTags 代替二維碼的例子
圖 10. Isaac ROS apriltag 檢測 Demo
Isaac ROSproximity segmentation
isaac_ros_bi3d 軟件包采用了一個 Bi3D 模型,該模型經過優化,通過二元分類可執行立體深度評估。這個過程被用于 proximity segmentation,有助于識別某個范圍內是否存在障礙物,并有助于在環境中導航時防止碰撞。
圖 11. Isaac ROS proximity segmentation
使用 rviz 驅動 Carter
當讀取 rviz 并全部運行時,rviz 顯示了下圖中的輸出。圖 12 顯示了 Carter 在地圖的中心和所有區塊的位置。
圖 12. 使用 Isaac ROS vslam 和
Isaac ROS nvblox 構建地圖的 rviz
以下視頻展示的是您可以使用 rviz 在所有環境中驅動機器人,并查看由 nvblox 生成的地圖。
視頻 1. NVIDIA Orin NX 上的 HIL,基于
Isaac ROS vslam 和 nvblox
您也可以使用 Foxglove 來測試仿真。
圖 13. 使用 Foxglove 進行仿真測試
總結
在這篇文章中,我們向您展示了如何設置HIL和使用 NVIDIA Jetson Isaac ROS 模塊進行測試,以及如何嘗試 NVIDIA Isaac Sim。請在桌面電腦和 Jetson 模塊之間使用有線連接。想要顯示所有遙測的原始數據,您需要一個可靠的連接。
您也可以測試剛剛添加到 /isaac-ros_dev 文件夾的其他 NVIDIA Isaac ROS 軟件包。更多詳細信息,請參閱 readme . md 文件,位置是 /NVIDIA-AI-IOT/isaac_demo(https://github.com/NVIDIA-AI-IOT/isaac_demo)。
更多詳細信息,請參閱Isaac ROS 系列網絡研討會(https://gateway.on24.com/wcc/experience/elitenvidiabrill/1407606/3998202/isaac-ros-webinar-series)。
點擊“閱讀原文”,或掃描下方海報二維碼,觀看 NVIDIA 創始人兼 CEO 黃仁勛在 COMPUTEX 2023 的主題演講直播回放,主題演講中文字幕版已上線,了解 AI、圖形及其他領域的最新進展!
原文標題:基于 NVIDIA Jetson 使用硬件在環設計機器人
文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3770瀏覽量
90990
原文標題:基于 NVIDIA Jetson 使用硬件在環設計機器人
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論