Files
lerobot/lerobot_robot_ax_arm/README.md
T
CarolinePascal ec66ca42bb feat(ax-arm): add AX-series arm robot package
Add the lerobot_robot_ax_arm package with the AXArm robot,
its config, URDF joint mapping, an end-effector keyboard
teleop example, and packaging metadata.
2026-07-08 12:22:00 +02:00

1.4 KiB

lerobot_robot_ax_arm

A third-party LeRobot robot: a 4-DoF arm driven by Dynamixel AX-series servos (e.g. AX-12A) over Protocol 1.0.

Motor ID Joint Normalization
1 shoulder_pan [-100, 100]
2 shoulder_lift [-100, 100]
3 elbow_flex [-100, 100]
4 gripper [0, 100]

Protocol 1.0 notes

AX-series motors differ from the X-series (Protocol 2.0) used elsewhere in LeRobot:

  • No Sync Read — positions are read sequentially (get_observation / calibration). Sync Write is still used for Goal_Position.
  • No Operating_Mode / PID registersconfigure() only lowers the return delay time.
  • No homing offset register — calibration records the range of motion only (homing_offset = 0) and is stored via the CW/CCW angle limits.

Install

pip install -e .

This is discovered automatically by LeRobot thanks to the lerobot_robot_ package prefix.

Usage

lerobot-record \
  --robot.type=ax_arm \
  --robot.port=/dev/tty.usbserial-AL02L1E0 \
  # ... other arguments

Or from Python:

from lerobot_robot_ax_arm import AXArm, AXArmConfig

robot = AXArm(AXArmConfig(port="/dev/tty.usbserial-AL02L1E0"))
robot.connect()
obs = robot.get_observation()
robot.disconnect()