MoveIt 是一个控制平台,包括了运动规划、操纵、3D 感知、运动学、控制和导航方面的。ckNik Robocs 是进行 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 并运行本教程。
_ control 介绍
要执行 MoveIt 计算的轨迹,建议使用 2_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>
包含的 脚本加载 Panda 机器人,同时构建 OmniGraph 发布和订阅用于控制机器人的 ROS topic。要了解有关配置 Isaac Sim 机器人与 ROS 2 通信的信息,请参阅ROS 2 Joint Control: Exnsion 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./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 配对,您可以在不同的模拟器和真实硬件之间快速切换,以快速迭代新和机器人行为。
审核编辑 :李倩
上一篇:亚马逊正研发升级版AI家庭机器人 内含类ChatGPT功能!
下一篇:亚马逊正研发升级版AI家庭机器人 内含类ChatGPT功能!
- 科学家研发基于AI的身份验证工具 可保护车辆免受网络攻击威胁
- Microchip推出广泛的IGBT 7 功率器件组合,专为可持续发展、电动出行和数据中心应用而设计
- 面向未来驾驶体验 博世推出新型微电子技术
- 英飞凌与马瑞利合作 利用AURIX™ TC4x MCU系列推动区域控制单元创新
- 5C超充,该怎么卷?
- 《2025年度中国汽车十大技术趋势》正式揭晓!你最看好哪个?
- Microchip推出新型VelocityDRIVE™软件平台和车规级多千兆位以太网交换芯片,支持软件定义汽车
- 英特尔中国正式发布2023-2024企业社会责任报告
- can转485数据是如何对应的
- MCU今年的重点:NPU和64位