MoveIt 是一個機器人控制平臺,包括了運動規劃、操縱、3D 感知、運動學、控制和導航方面的最新技術。PickNik Robotics 是進行 MoveIt 開發的公司,該公司正在探索在內部研發項目中使用 NVIDIA Isaac Sim。項目的目標是提高對操縱的感知,并通過 PickNik 的商業機器人開發平臺 MoveIt Studio 讓機器人具有更自主的行為。
本文展示了將 MoveIt 2 與 NVIDIA Isaac Sim 中模擬的機器人進行集成的過程。本教程需要一臺安裝了 Isaac Sim 2022.2.0 的電腦,以及如下所列的系統配置。請參閱 NVIDIA Isaac Sim documentation (https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html)了解具體的安裝細節和要求。
1、NVIDIA Isaac Sim 2022.2.0 安裝于 Ubuntu 20.04 主機上。默認位置為$HOME/.local/share/ov/pkg/isaac_sim-2022.2.0目錄。
2、安裝 Docker。
3、克隆 MoveIt2 教程,以構建一個基于 Ubuntu 22.04 Humble 的 Docker 鏡像,該鏡像可以與 Isaac Sim 通信并運行本教程。
ros2 _ control 介紹
要執行 MoveIt 計算的軌跡,建議使用 ros2_control 框架進行管理并與您的機器人通信(無論真實的還是模擬的)。這種方法為開發人員提供了一個通用的 API,使軟件能夠通過簡單地更改一些啟動參數,在許多不同的機器人類型和內置傳感器之間切換。
例如,Panda 機器人ros2_control.xacro使用標志use_fake_hardware在被模擬或連接到物理機器人之間切換,如下所示:
if value="${use_fake_hardware}">
mock_components/GenericSystem
if>
"${use_fake_hardware}" >
franka_hardware/FrankaHardwareInterface
"robot_ip">${robot_ip}
硬件元件可以是不同類型的。插件
為了將機器人的配置擴展到 Isaac Sim ,首先需要引入 topic_based_ros2_control。此硬件接口是一個訂閱和發布已配置主題的系統。對于本教程,topic /isaac_joint_states 將包含機器人的當前狀態,并且 將使用 /isaac_joint_commands 進行驅動 。
本教程中使用的 moveit_resources_panda_moveit_config 不支持連接到硬件。因此當標志 ros2_control_hardware_type 設置為 isaac 時,表示ros2_control.xacro已更新并裝載 TopicBasedSystem 插件。
if value="${ros2_control_hardware_type == 'mock_components'}">
mock_components/GenericSystem
if>
if value="${ros2_control_hardware_type == 'isaac'}">
topic_based_ros2_control/TopicBasedSystem
"joint_commands_topic">/isaac_joint_commands
"joint_states_topic">/isaac_joint_states
if>
包含的 Python 腳本加載 Panda 機器人,同時構建 OmniGraph 發布和訂閱用于控制機器人的 ROS topic。要了解有關配置 Isaac Sim 機器人與 ROS 2 通信的信息,請參閱ROS 2 Joint Control: Extension Python Scripting
(https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_ros2_manipulation.html)。
計算機設置
按照以下步驟設置計算機。
1、使用 Workstation Installation documentation 安裝 Isaac Sim.
2、使用以下腳本執行 MoveIt2 教程存儲庫的淺克隆:
git clone https://github.com/ros-planning/moveit2_tutorials.git -b humble --depth 1
3、打開克隆教程的文件夾,然后切換到以下目錄:
cd moveit2_tutorials/doc/how_to_guides/isaac_panda
4、構建 Docker 鏡像:
docker compose build
使用模擬組件運行
MoveIt Interactive Marker Demo
運行以下腳本以測試 mock_components/GenericSystem 硬件接口:
docker compose up demo_mock_components
RViz 將運行 Panda 機器人,并使用 mock_components 以模擬機器人并執行軌跡。如果這是您第一次同時使用 MoveIt 與 RViz ,請參閱Quickstart in RViz 教程(https://moveit.picknik.ai/humble/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html)。
完成測試后,在終端中選擇 Ctrl+C 停止容器。
使用 Isaac Sim 運行
MoveIt Interactive Marker Demo
1、在主機上,導航到教程啟動目錄:
cd moveit2_tutorials/doc/how_to_guides/isaac_panda/launch
2、加載預配置的 Panda 機器人以使用本教程。請注意,此步驟假定 Isaac Sim 安裝在 $HOME/.local/share/ov/pkg/isaac_sim-2022.2.0" 目錄。
此步驟需要幾分鐘的時間來下載資源并設置 Isaac Sim。耐心等待,不要點擊 Force Quit 模擬器啟動時彈出的對話框。要加載 Panda 機器人,請運行以下命令:
./python.sh isaac_moveit.py
3、從moveit2_tutorials/doc/how_to_guides/isaac_panda 目錄,啟動一個連接到 Isaac Sim 的容器,使用 topic_based_ros2_control/TopicBasedSystem 硬件接口:
docker compose up demo_isaac
RViz 將運行 Panda 機器人,然后使用 TopicBasedSystem 用于與模擬機器人通信并執行軌跡的接口。
結論
將 MoveIt 與 NVIDIA Isaac Sim 集成,開發人員能夠創建反映真實世界的復雜逼真的機器人系統模擬。通過將這兩個框架與 ros2 _ control 配對,您可以在不同的模擬器和真實硬件之間快速切換,以快速迭代新算法和機器人行為。
審核編輯 :李倩
-
機器人
+關注
關注
211文章
28589瀏覽量
207822 -
NVIDIA
+關注
關注
14文章
5064瀏覽量
103452 -
ROS
+關注
關注
1文章
279瀏覽量
17043
原文標題:使用 ROS 2 MoveIt 和 NVIDIA Isaac Sim 創建逼真的機器人模擬
文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何通過NVIDIA ISAAC ROS GEMs
![如何通過<b class='flag-5'>NVIDIA</b> <b class='flag-5'>ISAAC</b> <b class='flag-5'>ROS</b> GEMs](https://file.elecfans.com/web2/M00/3D/60/poYBAGJZMJ2AF14dAADQdSBkRgo884.png)
用NVIDIA Omniverse ISAAC Sim加速機器人仿真
![用<b class='flag-5'>NVIDIA</b> Omniverse <b class='flag-5'>ISAAC</b> <b class='flag-5'>Sim</b>加速<b class='flag-5'>機器人</b>仿真](https://file.elecfans.com//web2/M00/3F/A2/pYYBAGJo-ZGACCi9AAG_WjuuE_o822.png)
NVIDIA Isaac Sim 2022.1版本的亮點及功能
NVIDIA AI機器人開發— NVIDIA Isaac Sim入門
開發者使用NVIDIA Omniverse和Isaac Sim構建機器人
NVIDIA 公開課 | AI 機器人開發第二講 — Isaac Sim 高階開發
CES | NVIDIA 發布智能機器人高級模擬引擎 Isaac Sim 的重大更新
CES | 用 NVIDIA Isaac Sim 2022.2 模擬未來智能機器人
使用 NVIDIA Isaac Sim、ROS 和 Nimbus 開發多機器人環境
![使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Isaac</b> <b class='flag-5'>Sim</b>、<b class='flag-5'>ROS</b> 和 Nimbus 開發多<b class='flag-5'>機器人</b>環境](https://file1.elecfans.com/web2/M00/8E/68/wKgaomTGcGuAX8_qAABTv0m2SQE749.png)
評論