This project demonstrates the simulation and manipulation of Two Dobot Nova5 robotic arms in NVIDIA Isaac Sim 4.2.0 using MoveIt 2 and MoveIt Task Constructor.
- ISAAC SIM DUAL ROBOT MANIPULATION
This package controls and coordinates two Dobot Nova5 arms in a simulated environment provided by NVIDIA Isaac Sim. The arms are controlled using MoveIt 2, and complex manipulation tasks (like pick-and-place) are executed using MoveIt Task Constructor (MTC). This setup is ideal for testing dual-arm industrial manipulation, coordinated motion planning, and task sequencing.
- ROS 2 Humble (or later)
- MoveIt 2
- Isaac Sim 4.2.0 or later
- NVIDIA GPU with proper drivers
- Colcon build system
- Python 3.10
Follow the MoveIt 2 installation instructions for your ROS 2 distro:
🔗 https://moveit.picknik.ai/humble/doc/tutorials/getting_started/getting_started.html
Make sure MoveIt 2 is properly sourced in your terminal:
source /opt/ros/humble/setup.bash
Install Isaac Sim 4.2.0 by following the official guide:
🔗 https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_isaacsim.html
Also follow the guide for ROS 2 bridge integration:
🔗 https://docs.omniverse.nvidia.com/isaacsim/latest/ros2_tutorials/tutorial_ros2_setup.html
Make sure Isaac Sim can run with python.sh
and ROS 2 environment is sourced in it.
Clone this repository into your desired workspace:
git clone https://github.com/emusman-lab/dual_robot_arm.git
cd dual_robot_arm
Build your workspace using colcon:
colcon build --base-paths src/
Then source it:
source install/setup.bash
✅ Replace the source path as needed, e.g.,
/home/username/dual_robot_arm/install/setup.bash
Launch Isaac Sim with the dual-arm control script:
~/.local/share/ov/pkg/isaac-sim-4.2.0/python.sh \
/home/usman/projects_ws/dual_robot_arm/isaac/scripts/isaac_moveit_dobot_dual.py
Make sure your Isaac Sim environment and ROS2 bridge are fully initialized.
Launch the MoveIt2 config and visualizer with:
ros2 launch dual_dobot_control dual_launch_config_dobot.py
🛠 This file should load both robot descriptions and bring up the joint state publishers, controllers, and MoveGroup interface.
Launch the dual-arm manipulation logic:
ros2 launch dual_dobot_control dual_pick_and_place_dobot.py
📦 This script uses MoveIt Task Constructor to execute predefined pick-and-place tasks using both Dobot Nova5 arms.
- MoveIt 2 Documentation
- Isaac Sim ROS 2 Bridge Docs
- MoveIt Task Constructor
- Dobot Nova5 Official Page
- Isaac Sim Python API Reference