This repository provides an integrated management package for ROBOTIS robotic arms, including:
- OpenMANIPULATOR-Y
- 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 OpenMANIPULATOR-Y 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.
This package is compatible only with ROS 2 Jazzy. Ensure that ROS 2 Jazzy is properly installed.
Install the following dependencies:
sudo apt-get update && sudo apt-get install -y \
libboost-all-dev \
ros-jazzy-hardware-interface \
ros-jazzy-controller-manager \
ros-jazzy-ros2-controllers \
ros-jazzy-tf-transformations \
ros-jazzy-gz* \
ros-jazzy-pal-statistics
sudo apt-get install -y ros-jazzy-moveit-* --no-install-recommends
To enable communication with the hardware, add your user to the dialout
group:
sudo usermod -aG dialout $USER
A login and logout are required.
Set the robot model based on your system:
om_y_follower
– OpenMANIPULATOR-Y with leader-follower functionality.om_y
– OpenMANIPULATOR-Y as a standalone model.om_x
– OpenMANIPULATOR-X.
[Caution] Make sure to configure it properly before using the desired mode.
ex) Add the configuration to ~/.bashrc
:
echo 'export ROBOT_MODEL=om_y' >> ~/.bashrc
source ~/.bashrc
Navigate to your ROS 2 workspace and clone the repository:
cd ~/${WORKSPACE}/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
Compile the package using colcon
:
cd ~/${WORKSPACE}
colcon build --symlink-install
source ~/${WORKSPACE}/install/setup.bash
Create and apply udev
rules:
ros2 run open_manipulator_bringup y_create_udev_rules # for om_y
ros2 run open_manipulator_bringup x_create_udev_rules # for om_x
For leader-follower functionality, use:
ros2 launch open_manipulator_bringup ai_teleoperation.launch.py
Ensure proper connection and detection of leader and follower devices.
For standalone mode, launch:
ros2 launch open_manipulator_bringup hardware_y.launch.py #for om_y
ros2 launch open_manipulator_bringup hardware_x.launch.py #for om_x
Confirm that hardware is properly connected before execution.
For Gazebo simulation mode, launch:
ros2 launch open_manipulator_bringup gazebo.launch.py #for om_x and om_y
Ensure that Gazebo Harmonic is properly installed and configured before running the simulation.
Control the manipulator (simulation or hardware) using your keyboard:
ros2 run open_manipulator_teleop keyboard_control_y.py # for om_y
ros2 run open_manipulator_teleop keyboard_control_x.py # for om_x
1
/q
- Joint 12
/w
- Joint 23
/e
- Joint 34
/r
- Joint 45
/t
- Joint 56
/y
- Joint 6
o
- Open gripperp
- Close gripper
Enable MoveIt functionality for advanced motion planning in RViz:
ros2 launch open_manipulator_moveit_config moveit_core.launch.py
Move interactive markers to position the robotic arm, then click Plan and Execute.
Launch MoveIt GUI:
ros2 launch open_manipulator_moveit_config move_group.launch.py
Launch the OpenMANIPULATOR GUI:
ros2 launch open_manipulator_gui open_manipulator_y_gui.launch.py # for om_y
ros2 launch open_manipulator_gui open_manipulator_x_gui.launch.py # for om_x
- Start Timer: Activates the system.
- Robot Status: Displays current manipulator state.
- Init Pose: Moves the manipulator to a vertical position.
- Home Pose: Moves the manipulator to a compact, safe position.
- Gripper Open/Close: Opens or closes the gripper.
-
Joint Space Tab: Adjust individual joint angles.
-
Task Space Tab: Control the end-effector position.
-
Task Constructor Tab
- Read Task: View saved poses.
- Save Pose: Save current state.
- Rap: Set task repetition (1–999).
- Play: Execute saved tasks.
- Stop: Halt operations.
- Reset Task: Clear saved tasks.
The OpenMANIPULATOR-X operation method is similar to OpenMANIPULATOR-Y, and the e-Manual is currently being updated.