Skip to main content
Sets a motor’s zero to its current position and saves it to the motor’s flash. Use --guided to zero every arm joint in turn. Power-cycle Damiao motors (wrist_2 and wrist_3) afterward so the new zero takes effect.
Each joint is zeroed at one of its mechanical end stops, not at the rest pose. --guided mode walks you to the right end stop. With --id, you must hold the joint at the right end stop yourself before you zero it. Axol still reports joint positions with 0 at the rest pose.

Guided zeroing

  1. Hold every selected joint inside its range, away from the end stops, and press Enter once.
  2. For each joint in turn, move it to the end stop the prompt names and press Enter.
  3. If you moved the joint the wrong way, the prompt asks you to move it to the other end stop instead. Press Enter there.
Press Ctrl-C to skip a joint. wrist_2 and wrist_3 accept either end stop, because on some units one stop is placed better than the other. Move to the one you trust and press Enter. Axol detects which stop was used from the encoder reading. Don’t leave these two joints right at an end stop when you connect, because that position is ambiguous.
Axol won’t enable arms whose zeros were never set. Before it powers any motor, every arm bring-up checks that each joint’s reading is plausible for its end-stop zero. This covers teleop, collect-data, run-policy, gravity-comp, the control panel and the diagnostics dashboard. If a joint fails, the error names it. Run axol motor.set-zero-pos --guided, then try again.