Overview
The OMX is designed for:- Education and research
- Manipulation tasks
- Teleoperation and imitation learning
- Modular hardware expansion
- Open-source development
Features
- 6 degrees of freedom (5 arm joints + gripper)
- Dynamixel XL430-W250 and XL330-M288 servos
- Pre-calibrated from factory
- USB serial communication (U2D2 adapter)
- Extended position control
- Current-based gripper control
- Open-source design by ROBOTIS
Hardware Specifications
Motor Configuration
| Motor Name | ID | Model | Description |
|---|---|---|---|
| shoulder_pan | 11 | XL430-W250 | Base rotation |
| shoulder_lift | 12 | XL430-W250 | Shoulder pitch |
| elbow_flex | 13 | XL430-W250 | Elbow joint |
| wrist_flex | 14 | XL330-M288 | Wrist pitch |
| wrist_roll | 15 | XL330-M288 | Wrist rotation |
| gripper | 16 | XL330-M288 | Gripper (current-controlled) |
Motor IDs start at 11 (not 1) as per ROBOTIS Open Manipulator-X standard configuration.
Control Modes
- Arm joints: Extended Position Mode (allows >360° rotation)
- Gripper: Current-Based Position Mode (force-limited grasping)
Installation
Hardware Setup
- Connect Dynamixel U2D2 adapter to OMX
- Connect U2D2 to computer via USB
- Power the servos (typically 12V)
- Set up serial port permissions:
Software Installation
Configuration
Basic Configuration
Configuration Parameters
Serial port for Dynamixel U2D2 adapter (e.g.,
/dev/ttyUSB0 or /dev/tty.usbserial-*)Unique identifier for this robot (used for calibration files)
Disable motor torque when disconnecting
Safety limit for maximum position change per action. Can be a single value or per-motor dictionary.
Dictionary of camera configurations
Use degree normalization (default is normalized range [-100, 100])
Directory for calibration files (defaults to
~/.cache/lerobot/calibration/robots/omx_follower)Usage
Basic Connection
Factory Calibration
The OMX comes pre-calibrated from ROBOTIS. LeRobot uses factory default values:Unlike Koch or SO robots, the OMX doesn’t require manual calibration. Factory defaults work out of the box.
Observation Format
Action Format
Advanced Features
Operating Modes
Extended Position Mode (all joints except gripper):- Allows unlimited rotation beyond 360°
- Prevents assembly issues from limiting range
- Automatically configured in
configure()
- Position control with current limiting
- Safe grasping without excessive force
- Prevents motor burnout
- Compliant for leader arm teleoperation
Safety Limiting
Teleoperation
Leader-Follower Setup
Motor Setup
If you need to configure motor IDs (for custom builds or replacements):For standard ROBOTIS OMX, motor IDs are pre-configured and this step isn’t necessary.
Differences from Koch
The OMX and Koch robots are similar but have key differences:| Feature | OMX | Koch |
|---|---|---|
| Motor IDs | 11-16 | 1-6 |
| Calibration | Factory defaults | Manual calibration |
| Source | ROBOTIS | Tau Robotics |
| Default normalization | Range[-100,100] | Range[-100,100] |
| Motor models | XL430-W250, XL330-M288 | Same |
Troubleshooting
U2D2 Not Detected
Motors Not Responding
- Check power supply (~12V)
- Verify cable connections
- Ensure motor IDs are 11-16 (not 1-6)
- Try power cycling
Gripper Issues
The gripper uses current-based control:Wrong Motor IDs
If motors have IDs 1-6 instead of 11-16:Implementation Details
- Motor bus:
DynamixelMotorsBus - Protocol: Dynamixel Protocol 2.0
- Normalization:
MotorNormMode.RANGE_M100_100(default) orDEGREES - Factory calibration: All offsets = 0, range = [0, 4095]
- Source: /home/daytona/workspace/source/src/lerobot/robots/omx_follower/omx_follower.py
- Config: /home/daytona/workspace/source/src/lerobot/robots/omx_follower/config_omx_follower.py
Related Documentation
Robot Overview
See all supported robots
Koch
Similar Dynamixel-based arm
Dynamixel Motors
Motor bus API reference
Recording Data
Collect training data