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