MoveIt 2 Logo

MoveIt2 Integration

MoveIt 2 provides motion planning, collision checking, and interactive manipulation capabilities for Doosan robots using the ROS 2 control stack.

Note

MoveIt 2 integration requires the following minimum Doosan Controller firmware versions:

  • Firmware 2.x: Version 2.12 or higher

  • Firmware 3.x: Version 3.4 or higher

Manipulator Launch

Command

ros2 launch dsr_bringup2 dsr_bringup2_moveit.launch.py [arguments]

Caution

The Gazebo/RViz2 GUI may not appear due to missing X11 permissions (especially when using Docker or a remote session). Run the commands below once per login (and after a reboot) before launching.

xhost +                         # allow everyone; use only temporarily

These permissions reset after logout or reboot; re-apply as needed.

Arguments

  • mode: Robot operation mode. Options:

    • real: Connect to a physical Doosan robot.

    • virtual: Run in simulator or emulator mode.

  • model: Robot model name (e.g., m1013, a0509)

  • host: IP address of the robot controller (real mode) or emulator (virtual mode)

Examples

Real Mode (Physical Robot)

ros2 launch dsr_bringup2 dsr_bringup2_moveit.launch.py mode:=real model:=m1013 host:=192.168.137.100

Virtual Mode (Simulation)

ros2 launch dsr_bringup2 dsr_bringup2_moveit.launch.py mode:=virtual model:=m1013 host:=127.0.0.1

Launching this command will start:

  • RViz 2 with the robot model and planning scene

  • Move Group (motion planning backend)

  • Joint trajectory controller

  • Robot state publisher and static transforms



MoveIt RViz2 Launch Screenshot

Motion Execution Demo

The animation below demonstrates motion execution using MoveIt 2:

MoveIt Motion Execution

R100 Mobile Manipulator Launch

This launch file starts MoveIt2 for R100 (Ridgeback) mobile manipulator variants (single-arm and dual-arm), including planning and execution workflows.

Single Arm + Mobile (MoveIt2)

ros2 launch dsr_bringup2 dsr_mobile_manipulator_moveit.launch.py mode:=virtual model:=r100_m1013 host:=127.0.0.1
R100 Single Arm Mobile Manipulator in MoveIt2

You can verify controllers with:

ros2 control list_controllers -c /r100_m1013/controller_manager

Example output:

whole_body_controller   dsr_mobile_wbc2/WholeBodyController                    active
diff_drive_controller   diff_drive_controller/DiffDriveController              active
dsr_moveit_controller   joint_trajectory_controller/JointTrajectoryController  active
dsr_controller2         dsr_controller2/RobotController                        active
joint_state_broadcaster joint_state_broadcaster/JointStateBroadcaster          active

You can also plan and execute motion directly in RViz2 using the MoveIt MotionPlanning panel (by adjusting Joint UI sliders or dragging interactive markers).

R100 Single Arm MoveIt2 Marker and Joint UI Demo

For the mobile manipulator, select the whole_body planning group to include both base and arm joints in a single planning request. You can then plan and execute from the MotionPlanning panel using Joint UI sliders (e.g., base + arm joints) and interactive markers.

For whole-body planning and execution, set the RViz2 Fixed Frame to odom.

R100 Mobile Manipulator Whole-Body Planning (Marker and Joint UI)

Dual Arm + Mobile (MoveIt2)

ros2 launch dsr_bringup2 dsr_mobile_manipulator_dual_moveit.launch.py mode:=virtual model:=r100_m1013_dual host:=127.0.0.1
R100 Dual Arm Mobile Manipulator in MoveIt2

You can verify controllers with:

ros2 control list_controllers -c /r100_m1013_dual/controller_manager

Example output:

whole_body_controller      dsr_mobile_wbc2/WholeBodyController                    active
diff_drive_controller      diff_drive_controller/DiffDriveController              active
joint_state_broadcaster    joint_state_broadcaster/JointStateBroadcaster          active
dual_dsr_moveit_controller joint_trajectory_controller/JointTrajectoryController  active
dsr_controller2            dsr_controller2/RobotController                        active

You can also plan and execute arm-group motions directly in RViz2 using the MoveIt MotionPlanning panel (by adjusting Joint UI sliders or dragging interactive markers) for left_arm, right_arm, and dual_arm.

R100 Dual Arm MoveIt2 Arm-Group Planning (Left/Right/Dual)

For mobile manipulator planning, select the whole_body planning group to include base and both arms in a single planning request. You can then plan and execute using Joint UI sliders and interactive markers.

For whole-body planning and execution, set the RViz2 Fixed Frame to odom.

R100 Dual Mobile Manipulator Whole-Body Planning

Note

  • Currently supported manipulator models are m1013, m1509, and a0509. Support for additional models will be added in future updates.

  • At this time, this workflow is supported only in virtual mode. Real mode support will be added in a future release.

References