• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    計算機視覺/視頻分析

    使用 NVIDIA Isaac 模擬和本地化 Husky 機器人

    ?

    由 Clearpath Robotics 開發的 Husky 機器人,是一款專為室內和室外研究用途設計的多功能四輪平臺。通過添加其他傳感器和更換高級主板,可以輕松進行升級改造。本文介紹了如何使用官方 ROS 2 Husky 軟件包,將機器人導入到 NVIDIA Isaac Sim 并進行模擬創建。

    在此演示中,Husky 機器人搭載了 NVIDIA Jetson Orin Nano,并使用最新版本的 Isaac ROS 2 驅動。該系統包含了多個 Isaac ROS 軟件包,用于機器人定位的 NVIDIA Isaac ROS VSLAM、地圖構建的 NVIDIA Isaac ROS NvBlox 以及 Apriltag 檢測的 NVIDIA Isaac ROS Apriltag

    Isaac ROS 演示的工作原理

    Husky 統一機器人描述格式 (URDF) 從 ROS 2 主題中動態加載。它用于在 ROS 可視化中可視化機器人(rviz)并將其加載到 NVIDIA Isaac Sim 中。

    加載機器人后,主 Isaac Sim 腳本會創建一個圖形來驅動機器人,將速度和轉向命令轉換為每個輪子的速度,并在一個tf(圖 1)。

    Husky motor control graph screenshot.
    圖 1.從 ROS 2 主題加載 Husky 時自動生成的電機控制動作圖

    腳本會為每個攝像頭生成一個圖形,以便在 ROS 2 主題中發布輸出。每個攝像頭都有 ROS 2 圖像消息和攝像頭信息。

    Husky camera control graph screenshot.
    圖 2.具有分辨率配置的攝像頭圖形和發布 ROS 2 主題

    加載所有圖形并成功導入 URDF 后,新的 Husky 機器人將出現在 Isaac Sim 中,如圖 3 所示。

    Husky robot on NVIDIA Isaac Sim screenshot.
    圖 3.具有 Husky 和所有攝像頭輸出的 NVIDIA Isaac Sim 2023.1.0

    成功加載 Husky 后,將提供適用于 ROS 2 的不同選項,包括攝像頭流、電機控制器和其他輔助輸出。您可以使用以下命令快速檢查其他終端中的運行內容:

    ros2 topic list
    
    Husky ROS 2 topics on terminal screenshot.
    圖 4.所有 Husky ROS 2 主題列表

    當 ROS 2 啟動器腳本啟動時,所有必需的 ROS 2 節點和 Isaac ROS 節點都將運行。機器人將構建一個連接的工作流,其中來自`Husky description`的 husky URDF 將用于 Isaac Sim 和機器人本身。Isaac ROS VSLAM 和 Isaac ROS NvBlox 還將用于定位和構建實時地圖。

    所有必要的軟件包現已運行,機器人可以完全本地化,并能夠構建 3D 地圖。現在,您可以使用 Nav2、鍵盤或操縱桿進行驅動。

    下一步是設置工作站和 Jetson Orin (可選),以便在 Isaac Sim 2023 和 Isaac ROS 2 上測試 Husky.

    3D-generated map on rviz2 with Husky robot.
    圖 5.正在移動的 Husky 生成 3D 地圖

    設置演示

    運行此演示有兩種方法:直接從工作站運行,或使用硬件在環 (HIL) 配置。本節介紹每個選項的設置要求。

    在選擇任何選項之前,請確保安裝了最新版本的 Isaac Sim。要查看詳細的安裝說明,請訪問開始使用 NVIDIA Omniverse頁面。

    注意:下載完成后,請勿啟動 Isaac Sim.

    Husky 演示工作站版本

    要運行 Husky 演示,您需要一臺配備 NVIDIA RTX GPU 的工作站,并且已安裝最新版本的 NVIDIA Isaac SimROS 2 Humble。請確保安裝的是桌面版本。

    sudo apt install ros-humble-desktop
    

    安裝并運行

    系統準備就緒后,您可以使用以下腳本克隆演示并在工作站上試用:

    git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
    cd husky_demo
    

    運行 Isaac Sim 后,使用以下命令啟動 Isaac Sim,并使用構建為 Isaac ROS 的 Docker 和演示所需的所有軟件包打開新終端:

    ./husky_demo.sh

    此命令將:

    • 克隆所有必需的資源庫
    • 克隆 Isaac ROS Docker 鏡像
    • 構建新圖像

    構建完成后,終端將等待新命令(圖 6)。圖 7 顯示 Isaac Sim 正在運行,環境已完全加載。

    Screenshot of terminal with Isaac ROS prompt.
    圖 6.終端帶有帶有 Isaac ROS 提示的 Docker 容器,等待命令
    Screenshot of Isaac Sim with empty environment loaded
    圖 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 演示 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 地址。如果您使用主機名,則需要通過工作站進行遠程連接。

    我們所需的組件使用以下配置運行:

    圖 8 展示了如何配置硬件環境。

    Diagram of hardware setup. From the left is a desktop with an NVIDIA RTX graphic card, router (center), and an NVIDIA Jetson Orin Nano Developer Kit (right).
    圖 8.硬件設置: NVIDIA RTX 顯卡(左)、路由器(中)和 NVIDIA Jetson Orin Nano 開發者套件(右)內的桌面

    安裝并運行

    系統準備就緒后,請克隆該演示,并使用以下命令在工作站上試用:

    git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
    cd husky_demo
    

    運行后,使用以下命令:

    ./husky_demo.sh --HIL
    

    此腳本將自動執行以下操作:

    • 克隆此演示所需的所有資源庫
    • 構建所有 ROS 2 軟件包
    • 啟動 Isaac Sim

    構建完成后,終端將等待新命令。運行以下腳本:

    ros2 launch husky_isaac_sim robot_display.launch.py

    您將在工作站上看到基于 Isaac Sim 的 Husky 圖像。

    接下來,打開一個新終端,以遠程連接到 NVIDIA Jetson Orin 系列。

    登錄 Jetsterminal 后,克隆 Husky 演示資源庫:

    git clone https://github.com/NVIDIA-AI-IOT/husky_demo.git
    cd husky_demo
    

    運行后,使用以下命令:

    ./husky_demo.sh
    

    此腳本將自動執行以下操作:

    • 克隆此演示所需的所有資源庫
    • 克隆 Isaac ROS docker 鏡像
    • 構建新圖像

    接下來,從 Docker 容器中運行以下腳本:

    bash src/husky_isaac_sim/scripts/run_in_docker.sh
    

    此腳本將自動執行以下操作:

    • 構建所有 ROS 2 軟件包
    • 啟動 Isaac ROS

    然后,您將看到終端上運行的所有 Isaac ROS 軟件包(圖 9)。

    Remote terminal to Jetson Orin Nano with Isaac ROS running.
    圖 9.在 Jetson Orin Nano 上運行并傳輸數據的 Isaac ROS

    駕駛您的哈士奇

    假設 Isaas Sim 和 Isaac ROS 都已啟動并運行(根據您的偏好在工作站或 Jetson 上運行),且沒有任何問題,您應該能夠在rviz完成本地化后,應可開始構建 3D 地圖(圖 10)。

    Husky localized on rviz.
    圖 10.基于rviz并使用 NvBlox 繪制 3D 地圖的第一部分

    現在,您可以使用鍵盤、操縱桿或 Nav2 驅動 Husky.只需簡單幾步,即可控制 Husky 在環境中的移動。

    總結

    本文介紹了如何使用 NVIDIA Isaac ROS 操作 Husky 機器人,包括如何加載由機器人描述衍生的 URDF,以及如何在rviz.此演示可以各種方式運行,可以直接從帶有 NVIDIA RTX 顯卡的工作站運行,也可以在硬件在環配置中運行,Isaac ROS 在 NVIDIA Jetson 上運行。

    想要深入了解 Isaac Sim 和 Isaac ROS?請查看我們新推出的 Isaac ROS 辦公時間 視頻系列,在 YouTube 上觀看。同時,歡迎訪問 NVIDIA 開發者機器人論壇

    ?

    0

    標簽

    人人超碰97caoporen国产