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