Skip to content

Errors and recovery

What the robot reports

Every 10 ms the control board sends the PC the joints' positions and speeds, which joints are homed, the state of the inputs, outputs and E-stop, the gripper's status, and two error bytes reserved for the drivers' temperature and position flags. The PC software adds its own: inverse kinematics failures, limit violations, timing problems.

The commander software

The response log shows what the robot and the program are doing and why a command was refused. The common entries:

Log Meaning What to do
Robot disable; button or estop The E-stop is open, or Disable was pressed Release the E-stop; press Enable
An inverse kinematics error The target pose has no solution, or lies past a singularity Change the pose or the approach; move in joint space to get near it
A joint limit error The move would leave a joint's range Choose a reachable target
Jogging stops in Cartesian mode A singularity Jog a joint away from it
The time between commands rises above 10 ms The PC cannot keep the 100 Hz loop Close other programs; a faster PC (Communication)

Enable clears the errors and enables the robot; Clear error resets the homing state but does not re-enable a disabled robot; Disable stops the firmware from accepting motion commands while the motors keep holding.

The Python API

A refused command raises MotionError with a code, a cause and a remedy, from the controller's error catalog: IK_TARGET_UNREACHABLE, MOTN_NOT_HOMED, SYS_ESTOP_ACTIVE, SYS_SELF_COLLISION, MOTN_CANCELLED and the others on Errors. error() returns the current error, activity() what the robot is doing. After an E-stop is released, call reset(): it enables the firmware again, and until then the arm does not move. After stop() nothing needs clearing.

After a collision or a stall

The motors have lost steps and the arm is not where the software says. Stop the program, move the arm clear if it is trapped (disable it, or switch off with the forearm held), check the belts and the printed parts, and home again before anything else.

After the arm fell

Power was lost with the arm extended. Check every joint by hand for free movement, look at the belts and the couplers, switch on with the forearm held, and home.

A joint moves the wrong way

On a new build or after work on the wiring: stop at once. The direction is set per joint in the firmware (Firmware and first run); do not try to home until every joint jogs in the right direction.

The gripper reports an error

The electric grippers report their own errors through the robot: not calibrated, E-stop, timeout. The commander's Gripper tab has Clear gripper error and Calibrate gripper: clear the error first, then calibrate, and wait until the calibration has finished before the first move. The Python API's tool.calibrate() calibrates but has no clear (SSG-48, MSG). The gripper manuals explain each error.

Comments


Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF