
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}
硬件元件可以是不同类型的。插件mock_components/GenericSystem是一个简单的系统,用于转发输入的 command_interface 要跟踪的节点值 state_interface。该系统模拟了对节点的完美控制。
为了将机器人的配置扩展到 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 用于与模拟机器人通信并执行轨迹的接口。
视频 1:了解如何集成 MoveIt 和 NVIDIA Isaac Sim
结论
将 MoveIt 与 NVIDIA Isaac Sim 集成,开发人员能够创建反映真实世界的复杂逼真的机器人系统模拟。通过将这两个框架与 ros2 _ control 配对,您可以在不同的模拟器和真实硬件之间快速切换,以快速迭代新算法和机器人行为。
即刻点击“阅读原文”,在 NVIDIA On-Demand 上观看 GTC 精选回放,包括主题演讲相关精选、中国本地精选内容、生成式 AI 专题以及全球各行业及领域最新成果!
原文标题:使用 ROS 2 MoveIt 和 NVIDIA Isaac Sim 创建逼真的机器人模拟
文章出处:【微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。
-
英伟达
+关注
关注
23文章
4150浏览量
99883
发布评论请先 登录
NVIDIA 发布面向学术研究的 NVIDIA Isaac GR00T 人形机器人参考平台
NVIDIA 携手全球机器人领导者,将物理 AI 带入现实世界
开发必看,RK3576基于Ubuntu22.04安装 测试ROS2机器人系统
借助NVIDIA Isaac Sim与World Labs Marble加速机器人仿真环境构建
基于NVIDIA Isaac库开发的机器人调酒师ADAM亮相国际赛场
仅使用智能手机在NVIDIA Isaac Sim中重建场景
NVIDIA Isaac Lab推动机器人技术突破
NVIDIA Isaac Sim仿真平台助力他山科技实现触觉传感技术突破
NVIDIA Jetson + Isaac SDK 人形机器人方案全面解析
NVIDIA Jetson + Isaac SDK 在人形机器人领域的方案详解
NVIDIA助力构建人形机器人全身遥操作仿真平台
NVIDIA Isaac Lab可用环境与强化学习脚本使用指南
使用 ROS 2 MoveIt 和 NVIDIA Isaac Sim 创建逼真的机器人模拟
评论