This repository provides an integrated management package for ROBOTIS robotic arms, including:
- OMY
- OpenMANIPULATOR-X
- Leader-Follower Manipulator System
With this integration, all Robotis manipulators are managed under a unified package to ensure better compatibility and functionality.
This package supports ROS 2 Jazzy and Gazebo Harmonic on Ubuntu 24.04, offering the following functionalities:
- Integration of MoveIt 2 for Enhanced Motion Planning
- Graphical User Interface (GUI) Implementation and Support
- Teleoperation (Teleop) Capabilities
- Leader-Follower Control Mechanism with Gravity Compensation for Imitation Learning
The OMY is a 6-DOF robotic arm designed for advanced robotic manipulation tasks. This ROS 2 package provides seamless integration, enhanced control, and versatile functionality for simulation and hardware applications.
You can choose between two installation methods:
This method provides an isolated environment with all dependencies pre-installed.
-
Install Docker and Docker Compose Follow the official Docker installation guide: Install Docker Engine
-
Clone the Repository
git clone https://github.com/ROBOTIS-GIT/open_manipulator.git cd open_manipulator
-
Container Management The repository includes a container management script with the following commands:
# Show help ./docker/container.sh help # Start container ./docker/container.sh start # Enter the running container ./docker/container.sh enter # Stop and remove the container ./docker/container.sh stop
[Note] When stopping the container, you'll be asked for confirmation as this will remove all unsaved data in the container.
-
Data Persistence The container maps the following directories for data persistence:
./docker/workspace:/workspace
- The workspace directory inside the docker folder is mapped to/workspace
inside the container
[Important] Data Persistence Rules:
- Data in
/workspace
inside the container is saved todocker/workspace
on your host - Container restart (using
docker restart
) maintains all data - Container removal (using
container.sh stop
) will remove all data except what's in the mapped/workspace
directory - Always save your work in the
/workspace
directory to ensure it persists after container removal
Follow these steps if you prefer to install directly on your host system:
-
Prerequisites
-
Install Intel RealSense ROS Wrapper
Please follow the official instructions for installing and using the RealSense ROS wrapper at:
This will ensure you have the latest and most compatible version for your system and camera.
-
Clone the Repository
cd ~/ros2_ws/src git clone -b jazzy https://github.com/ROBOTIS-GIT/DynamixelSDK.git && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/dynamixel_interfaces.git && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/dynamixel_hardware_interface.git && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/open_manipulator.git
-
Install ROS 2 Dependencies
cd ~/ros2_ws rosdep update rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys="librealsense2 dynamixel_hardware_interface dynamixel_interfaces dynamixel_sdk open_manipulator" -y
-
Build the Package
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
-
Source the Workspace
source ~/ros2_ws/install/setup.bash
-
(Optional) Add Convenience Alias Add the following to your
~/.bashrc
for a convenient build alias:echo "alias cb='colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release'" >> ~/.bashrc source ~/.bashrc
-
Create and apply udev rules
ros2 run open_manipulator_bringup om_create_udev_rules
Below is a comprehensive list of available launch files, grouped by function. Use these to start the system in various modes, simulations, or with special features.
# Launch OMY 3M hardware
ros2 launch open_manipulator_bringup omy_3m.launch.py
# Launch OMY F3M hardware
ros2 launch open_manipulator_bringup omy_f3m.launch.py
# Launch OpenMANIPULATOR-X hardware
ros2 launch open_manipulator_bringup omx.launch.py
# Launch F3M follower for AI leader-follower mode
ros2 launch open_manipulator_bringup omy_f3m_follower_ai.launch.py
# Launch L100 as leader for AI leader-follower mode
ros2 launch open_manipulator_bringup omy_l100_leader_ai.launch.py
# Launch the full AI teleoperation leader-follower stack (runs both leader and follower)
ros2 launch open_manipulator_bringup omy_ai.launch.py
# Simulate OMY 3M in Gazebo
ros2 launch open_manipulator_bringup omy_3m_gazebo.launch.py
# Simulate OMY F3M in Gazebo
ros2 launch open_manipulator_bringup omy_f3m_gazebo.launch.py
# Simulate OpenMANIPULATOR-X in Gazebo
ros2 launch open_manipulator_bringup omx_gazebo.launch.py
# Simulate F3M follower in AI mode in Gazebo
ros2 launch open_manipulator_bringup omy_f3m_follower_ai_gazebo.launch.py
# Packs the OMY 3M manipulator (can also be used for OMY F3M)
ros2 launch open_manipulator_bringup omy_3m_pack.launch.py
# Unpacks the OMY 3M manipulator (can also be used for OMY F3M)
ros2 launch open_manipulator_bringup omy_3m_unpack.launch.py
# Launch Intel RealSense camera nodes
ros2 launch open_manipulator_bringup camera_realsense.launch.py
# GUI for OMY 3M
ros2 launch open_manipulator_gui omy_3m_gui.launch.py
# GUI for OMY F3M
ros2 launch open_manipulator_gui omy_f3m_gui.launch.py
# GUI for OpenMANIPULATOR-X
ros2 launch open_manipulator_gui omx_gui.launch.py
# MoveIt! for OMY 3M
ros2 launch open_manipulator_moveit_config omy_3m_moveit.launch.py
# MoveIt! for OMY F3M
ros2 launch open_manipulator_moveit_config omy_f3m_moveit.launch.py
# MoveIt! for OpenMANIPULATOR-X
ros2 launch open_manipulator_moveit_config omx_moveit.launch.py
# Load robot description for OMY 3M
ros2 launch open_manipulator_description omy_3m.launch.py
# Load robot description for OMY F3M
ros2 launch open_manipulator_description omy_f3m.launch.py
# Load robot description for OMY L100
ros2 launch open_manipulator_description omy_l100.launch.py
# Load robot description for OpenMANIPULATOR-X
ros2 launch open_manipulator_description omx.launch.py
- Hardware Mode: For real robot operation, use the hardware launch files from section A.
- Simulation Mode: For Gazebo simulation, use the launch files from section B.
- AI Leader-Follower Mode: Use
omy_ai.launch.py
to start both leader and follower, or launchomy_f3m_follower_ai.launch.py
andomy_l100_leader_ai.launch.py
separately for advanced setups. - Specialized Modes: Use pack/unpack launch files for special poses, and camera launch for vision integration.
The OpenMANIPULATOR-X operation method is similar to OMY, and the e-Manual is currently being updated.