由 Clearpath Robotics 公司開發的 Husky 機器人是一個多功能的四輪平臺,可用于室內和室外研究。其改裝非常簡單,只需添加其他傳感器和更改高級電路板即可。本文將介紹如何使用 ROS 2 Husky 官方軟件包將該機器人導入 NVIDIA Isaac Sim 并創建仿真。
本 Demo 中的 Husky 機器人配備了 NVIDIA Jetson Orin Nano 并在頂部安裝了 ZED 2 攝像頭。駕駛 Husky 機器人使用的是 Isaac ROS 2 的最新版本,其中包括用于機器人定位(NVIDIA Isaac ROS VSLAM)、地圖構建(NVIDIA Isaac ROS NvBlox)和 Apriltag 檢測(NVIDIA Isaac ROS AprilTag)的 Isaac ROS 軟件包。
Isaac ROS Demo 的工作原理
Husky 的統一機器人描述格式(URDF)是從 ROS 2 話題中動態加載的。它用于在 ROS 可視化視圖(rviz)中對機器人進行可視化,并將其加載到 NVIDIA Isaac Sim 中。
在加載該機器人后,Isaac Sim 主腳本會創建一個圖形來驅動該機器人,將速度和轉向命令轉換為每個車輪的速度,并在 tf 中發布車輪狀態(圖 1)。
圖 1. 從 ROS 2 話題加載 Husky 時
自動生成的電機控制動作圖
該腳本會為每個攝像頭生成一個圖形并將輸出結果發布到 ROS 2 話題中。每個攝像頭都有 ROS 2 圖像信息和攝像頭信息。
圖 2. 帶有分辨率配置和發布 ROS 2 話題指令的攝像頭圖
如圖 3 所示,在加載所有圖形并成功導入 URDF 后,一個新的 Husky 機器人出現在 Isaac Sim 中。
圖 3. NVIDIA Isaac Sim 2023.1.0 中的
Husky 機器人和所有攝像頭輸出結果
在成功加載 Husky 后,就可以使用 ROS 2 的不同選項,包括攝像頭流、電機控制器和其他輔助輸出。可以使用以下命令快速查看在另一個終端中正在運行的程序:
ros2 topic list
圖 4. Husky ROS 2 的所有話題列表
當 ROS 2 啟動器啟動時,所有必要的 ROS 2 節點和 Isaac ROS 節點都會運行。機器人將建立一個連接管道,其中,來自“Husky 描述”的 Husky URDF 將被用于 Isaac Sim 和機器人本身。Isaac ROS VSLAM 和 Isaac ROS NvBlox 也將被用于定位和構建實時地圖。
當所有必需的軟件包都在運行時,機器人就可以實現完全定位并構建一個 3D 地圖。現在可以使用 Nav2、鍵盤或操縱桿來驅動它。
下一步是設置工作站和 Jetson Orin(可選),以便在 Isaac Sim 2023 和 Isaac ROS 2 上測試 Husky。
圖 5. 移動中的 Husky 并生成 3D 地圖
設置 Demo
有兩種方法可以運行該 Demo:直接從工作站運行或使用硬件在環(HIL)配置。以下將介紹每種方法的設置要求。
無論采用哪種方式,首先都要安裝最新版本的 Isaac Sim。詳細說明參見 NVIDIA Omniverse 入門:
https://www.nvidia.com/en-us/omniverse/download/
注意:下載完成后請勿啟動 Isaac Sim。
Husky Demo: 工作站版本
若要運行 Husky Demo,需要一臺搭載 NVIDIA RTX GPU 的工作站,并安裝有最新版本的 NVIDIA Isaac Sim 和 ROS 2 Humble。請記得安裝桌面版本。
sudo apt install ros-humble-desktop
安裝和運行
系統準備就緒后,可以克隆 Demo 版本,并使用以下腳本在工作站上試用:
git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
cd husky_demo
運行后使用以下命令啟動 Isaac Sim 并打開一個新的終端,其中構建了 Docker,以使用 Isaac ROS 和 Demo 所需的所有軟件包:
./husky_demo.sh
該命令將:
-
克隆所需的所有資源庫
-
克隆 Isaac ROS Docker 鏡像
-
構建新的鏡像
構建完成后,該終端將等待新命令(圖 6)。圖 7 顯示 Isaac Sim 正在運行,環境已完全加載。
圖 6. 帶有 Isaac ROS 提示的
Docker 容器終端正在等待命令
圖 7. Isaac Sim 在已加載的倉庫環境中運行
現在,可以在第二個終端上運行這個腳本:
bash src/husky_isaac_sim/scripts/run_in_docker.sh
腳本 run_in_docker.sh 將在運行 Isaac ROS 啟動文件之前執行一些步驟。第一階段將更新并構建所有必需的 ROS 2 和 Isaac ROS 軟件包。然后該腳本將執行啟動文件:
ros2 launch husky_isaac_sim allinone.launch.py
這個 ROS 2 腳本會啟動所有 Isaac ROS 軟件包來定位機器人,并開始繪制地圖和啟動 rviz,以在地圖上可視化 Husky。
該腳本還將在環境中加載 Husky,并自動設置攝像頭和控制器。
Husky Demo: HIL 版本
要使用 HIL 版本,需要一臺裝有 NVIDIA RTX GPU 和最新版本 NVIDIA Isaac Sim 2023.1.0 的工作站、一臺路由器以及 NVIDIA Jetson Orin Nano(請注意,其他型號的 Jetson Orin 也能勝任這項工作)。
在工作站和 Jetson 之間建立有線連接是很重要的,強烈建議在它們之間配置一臺好的路由器。請記住,工作站和 Jetson 之間將共享大量數據,因此僅靠 Wi-Fi 連接是不夠的。
您的 NVIDIA Jetson Orin Nano 必須使用最新的 Jetpack 5.1.2 并已安裝完畢。請保留 IP 地址。如果使用主機名,則需要從工作站進行遠程連接。
運行此配置所需的組件如下:
-
裝有 Ubuntu 22.04 的 x86/64 機器
-
NVIDIA RTX GPU
-
內置 Jetpack 5.1.2 的 NVIDIA Jetson Orin Nano 開發者套件
-
路由器和電纜
圖 8 顯示了如何設置硬件環境。
圖 8. 硬件設置:帶有 NVIDIA RTX 顯卡(左)、
路由器(中)和 NVIDIA Jetson
Orin Nano 開發者套件(右)的臺式機
安裝與運行
系統準備就緒后,克隆 Demo 版本,并使用以下命令在工作站上試用:
git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
cd husky_demo
運行后,使用以下命令:
./husky_demo.sh --HIL
該腳本將自動:
-
克隆該 Demo 所需的所有資源庫
-
構建所有 ROS 2 軟件包
-
啟動 Isaac Sim
構建完成后,終端將等待新的命令。運行以下腳本:
ros2 launch husky_isaac_sim robot_display.launch.py
您將看到 Isaac Sim 上的 Husky 圖像顯示在工作站上。
接下來,打開一個新終端,遠程連接 NVIDIA Jetson Orin 系列。
登錄 Jetsterminal 后,克隆 Husky Demo 資源庫:
git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
cd husky_demo
運行后,使用以下命令:
./husky_demo.sh
該腳本將自動:
-
克隆該 Demo 所需的所有資源庫
- 克隆 Isaac ROS docker 鏡像
- 構建新鏡像
接下來,在 Docker 容器中運行以下腳本:
bash src/husky_isaac_sim/scripts/run_in_docker.sh
該腳本將自動:
-
構建所有 ROS 2 軟件包
-
啟動 Isaac ROS
然后您將看到所有在終端上運行的 Isaac ROS 軟件包(圖 9)。
圖 9. Isaac ROS 在 Jetson Orin Nano 上
運行并傳輸數據
駕駛您的 Husky
如果 Isaas Sim 和 Isaac ROS 都已啟動并運行(根據個人喜好,可以在工作站或 Jetson 上運行)且沒有任何問題,那么您應該可以在 rviz 上看到機器人成功定位。定位完成后,它應該會開始構建 3D 地圖(圖 10)。
圖 10. Husky 已在 rviz 上定位并使用
NvBlox 繪制了 3D 地圖的第一張切片
現在,您可以使用鍵盤、操縱桿或 Nav2 來駕駛 Husky。只需簡單幾步,就可以控制 Husky 在環境中移動。
總結
本文介紹了如何使用 NVIDIA Isaac ROS 操作 Husky 機器人,包括如何加載從機器人描述中導出的 URDF 以及如何在 rviz 上驅動機器人。該 Demo 可以通過多種方式運行,既可以直接從搭載 NVIDIA RTX 顯卡的工作站運行,也可以在硬件在環配置中運行,即在 NVIDIA Jetson 上運行 Isaac ROS。
如要了解有關 Isaac Sim 和 Isaac ROS 的更多信息,請查看并加入 NVIDIA 開發者機器人技術論壇上的討論:
https://forums.developer.nvidia.com/c/agx-autonomous-machines/isaac/67
NVIDIA 攜手中國百萬開發者,有獎征集作品秀。即日起至 2024 年 1 月 12 日,點擊“閱讀原文”或下方海報,一起來分享您的開發故事或實踐心得吧! #1M Strong#
掃描海報二維碼,鎖定北京時間 1 月 9 日 (星期二) 凌晨 0 點舉行的線上 NVIDIA CES 2024 特別演講。
原文標題:使用 NVIDIA Isaac 仿真并定位 Husky 機器人
文章出處:【微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
-
英偉達
+關注
關注
22文章
3776瀏覽量
91103
原文標題:使用 NVIDIA Isaac 仿真并定位 Husky 機器人
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論