This repository contains the official ROS 2 packages for the ROBOTIS OpenMANIPULATOR platform. These packages provide the necessary interfaces and tools to control the robot, integrate with its sensors, and develop physical AI applications, including those utilizing frameworks like LeRobot. For detailed usage instructions, please refer to the documentation below.
To learn more about the Physical AI Tools, visit:
To explore our open-source platforms in a simulation environment, visit:
For usage instructions and demonstrations of the OpenMANIPULATOR, check out:
To access datasets and pre-trained models for our open-source platforms, see:
To use the Docker image for running ROS packages and Physical AI tools with the OpenMANIPULATOR, visit:
The project includes a thin simulation/ layer over the existing
OpenMANIPULATOR-X URDF and STL files. It does not modify the ROS packages or
source geometry.
/home/asa/devel/libresolid-studio/.venv/bin/solid build
/home/asa/devel/libresolid-studio/.venv/bin/solid test --faceted simulation/open_manipulator_x.py:OpenManipulatorX
/home/asa/devel/libresolid-studio/.venv/bin/solid test --exact simulation/open_manipulator_x.py:OpenManipulatorXThe viewer exposes base_yaw, shoulder, elbow, and wrist in degrees,
plus symmetric grip travel in millimetres. Demonstration buttons are Rest,
Home, Reach, Present, and Open. The hierarchy follows the generated
URDF from the fixed base through links 2–5 and the gripper fingers.
- The seven visual STL files contain 43 connected mesh bodies; all are kept.
- At the URDF zero pose, 23 positive-volume overlaps and 16 near-zero boundary
contacts are authored into the display meshes.
simulation/seats.pyinventories them so any change is detected. - Four bodies in
link5.stlare non-volume meshes; two are rejected as non-manifold by the spatial kernel. Per the pilot's decision, they remain visible and unchanged but are excluded from collision evidence. This is a visual and kinematic simulation, not a collision-certified one. plate.stlis omitted because the generated URDF does not reference it.
Source-frame measurements are recorded in docs/measurements.md.