MoveIt 是一個(gè)機(jī)器人控制平臺(tái),包括了運(yùn)動(dòng)規(guī)劃、操縱、3D 感知、運(yùn)動(dòng)學(xué)、控制和導(dǎo)航方面的最新技術(shù)。PickNik Robotics 是進(jìn)行 MoveIt 開發(fā)的公司,該公司正在探索在內(nèi)部研發(fā)項(xiàng)目中使用 NVIDIA Isaac Sim。項(xiàng)目的目標(biāo)是提高對(duì)操縱的感知,并通過 PickNik 的商業(yè)機(jī)器人開發(fā)平臺(tái) MoveIt Studio 讓機(jī)器人具有更自主的行為。
本文展示了將 MoveIt 2 與 NVIDIA Isaac Sim 中模擬的機(jī)器人進(jìn)行集成的過程。本教程需要一臺(tái)安裝了 Isaac Sim 2022.2.0 的電腦,以及如下所列的系統(tǒng)配置。請(qǐng)參閱 NVIDIA Isaac Sim documentation (https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/overview.html)了解具體的安裝細(xì)節(jié)和要求。
1、NVIDIA Isaac Sim 2022.2.0 安裝于 Ubuntu 20.04 主機(jī)上。默認(rèn)位置為$HOME/.local/share/ov/pkg/isaac_sim-2022.2.0目錄。
2、安裝 Docker。
3、克隆 MoveIt2 教程,以構(gòu)建一個(gè)基于 Ubuntu 22.04 Humble 的 Docker 鏡像,該鏡像可以與 Isaac Sim 通信并運(yùn)行本教程。
ros2 _ control 介紹
要執(zhí)行 MoveIt 計(jì)算的軌跡,建議使用 ros2_control 框架進(jìn)行管理并與您的機(jī)器人通信(無論真實(shí)的還是模擬的)。這種方法為開發(fā)人員提供了一個(gè)通用的 API,使軟件能夠通過簡(jiǎn)單地更改一些啟動(dòng)參數(shù),在許多不同的機(jī)器人類型和內(nèi)置傳感器之間切換。
例如,Panda 機(jī)器人ros2_control.xacro使用標(biāo)志use_fake_hardware在被模擬或連接到物理機(jī)器人之間切換,如下所示:
if value="${use_fake_hardware}">
mock_components/GenericSystem
if>
"${use_fake_hardware}" >
franka_hardware/FrankaHardwareInterface
"robot_ip">${robot_ip}
硬件元件可以是不同類型的。插件
為了將機(jī)器人的配置擴(kuò)展到 Isaac Sim ,首先需要引入 topic_based_ros2_control。此硬件接口是一個(gè)訂閱和發(fā)布已配置主題的系統(tǒng)。對(duì)于本教程,topic /isaac_joint_states 將包含機(jī)器人的當(dāng)前狀態(tài),并且 將使用 /isaac_joint_commands 進(jìn)行驅(qū)動(dòng) 。
本教程中使用的 moveit_resources_panda_moveit_config 不支持連接到硬件。因此當(dāng)標(biāo)志 ros2_control_hardware_type 設(shè)置為 isaac 時(shí),表示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 機(jī)器人,同時(shí)構(gòu)建 OmniGraph 發(fā)布和訂閱用于控制機(jī)器人的 ROS topic。要了解有關(guān)配置 Isaac Sim 機(jī)器人與 ROS 2 通信的信息,請(qǐng)參閱ROS 2 Joint Control: Extension Python Scripting
(https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_ros2_manipulation.html)。
計(jì)算機(jī)設(shè)置
按照以下步驟設(shè)置計(jì)算機(jī)。
1、使用 Workstation Installation documentation 安裝 Isaac Sim.
2、使用以下腳本執(zhí)行 MoveIt2 教程存儲(chǔ)庫(kù)的淺克?。?/p>
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、構(gòu)建 Docker 鏡像:
docker compose build
使用模擬組件運(yùn)行
MoveIt Interactive Marker Demo
運(yùn)行以下腳本以測(cè)試 mock_components/GenericSystem 硬件接口:
docker compose up demo_mock_components
RViz 將運(yùn)行 Panda 機(jī)器人,并使用 mock_components 以模擬機(jī)器人并執(zhí)行軌跡。如果這是您第一次同時(shí)使用 MoveIt 與 RViz ,請(qǐng)參閱Quickstart in RViz 教程(https://moveit.picknik.ai/humble/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html)。
完成測(cè)試后,在終端中選擇 Ctrl+C 停止容器。
使用 Isaac Sim 運(yùn)行
MoveIt Interactive Marker Demo
1、在主機(jī)上,導(dǎo)航到教程啟動(dòng)目錄:
cd moveit2_tutorials/doc/how_to_guides/isaac_panda/launch
2、加載預(yù)配置的 Panda 機(jī)器人以使用本教程。請(qǐng)注意,此步驟假定 Isaac Sim 安裝在 $HOME/.local/share/ov/pkg/isaac_sim-2022.2.0" 目錄。
此步驟需要幾分鐘的時(shí)間來下載資源并設(shè)置 Isaac Sim。耐心等待,不要點(diǎn)擊 Force Quit 模擬器啟動(dòng)時(shí)彈出的對(duì)話框。要加載 Panda 機(jī)器人,請(qǐng)運(yùn)行以下命令:
./python.sh isaac_moveit.py
3、從moveit2_tutorials/doc/how_to_guides/isaac_panda 目錄,啟動(dòng)一個(gè)連接到 Isaac Sim 的容器,使用 topic_based_ros2_control/TopicBasedSystem 硬件接口:
docker compose up demo_isaac
RViz 將運(yùn)行 Panda 機(jī)器人,然后使用 TopicBasedSystem 用于與模擬機(jī)器人通信并執(zhí)行軌跡的接口。
結(jié)論
將 MoveIt 與 NVIDIA Isaac Sim 集成,開發(fā)人員能夠創(chuàng)建反映真實(shí)世界的復(fù)雜逼真的機(jī)器人系統(tǒng)模擬。通過將這兩個(gè)框架與 ros2 _ control 配對(duì),您可以在不同的模擬器和真實(shí)硬件之間快速切換,以快速迭代新算法和機(jī)器人行為。
審核編輯 :李倩
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
30249瀏覽量
217805 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5431瀏覽量
108270 -
ROS
+關(guān)注
關(guān)注
1文章
290瀏覽量
18257
原文標(biāo)題:使用 ROS 2 MoveIt 和 NVIDIA Isaac Sim 創(chuàng)建逼真的機(jī)器人模擬
文章出處:【微信號(hào):NVIDIA_China,微信公眾號(hào):NVIDIA英偉達(dá)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于Omniverse的NVIDIA Isaac Sim現(xiàn)已發(fā)布公測(cè)版

如何通過NVIDIA ISAAC ROS GEMs

用NVIDIA Omniverse ISAAC Sim加速機(jī)器人仿真

NVIDIA Isaac Sim 2022.1版本的亮點(diǎn)及功能
NVIDIA AI機(jī)器人開發(fā)— NVIDIA Isaac Sim入門
開發(fā)者使用NVIDIA Omniverse和Isaac Sim構(gòu)建機(jī)器人
NVIDIA 公開課 | AI 機(jī)器人開發(fā)第二講 — Isaac Sim 高階開發(fā)
CES | NVIDIA 發(fā)布智能機(jī)器人高級(jí)模擬引擎 Isaac Sim 的重大更新
CES | 用 NVIDIA Isaac Sim 2022.2 模擬未來智能機(jī)器人
使用 NVIDIA Isaac Sim、ROS 和 Nimbus 開發(fā)多機(jī)器人環(huán)境

從 0 到 1 搭建機(jī)器人 | 使用 NVIDIA Isaac Sim Replicator 和 TAO 套件進(jìn)行數(shù)據(jù)合成和訓(xùn)練
NVIDIA Isaac 平臺(tái)先進(jìn)的仿真和感知工具助力 AI 機(jī)器人技術(shù)加速發(fā)展

評(píng)論