Skip to content

disable

Runs at once Any mode Open to every client

Disable the robot: it stops at once and holds every joint still. The robot accepts it in every mode, from every client, and never refuses it. It switches to IDLE mode at once and holds each joint at zero speed: the motors stay on and resist being moved. To take all torque off the arm, use safety_stop(). The gripper's jaws stop where they are.

A program running in EXEC mode is cancelled without braking along its path: the drives stop the joints as fast as their limits allow. Its queued commands fail with ABORTED, and the robot refuses new moves with MOTION_ABORTED until clear_errors(). To stop along the path first, use stop() or enter_idle_mode(). Homing in progress is abandoned, and the arm is then not homed.

Syntax

robot.disable(wait=None)

Arguments

Name Type Default Description
wait bool | None None Wait until the robot reports itself disabled, up to 10 s. None follows the client's sync setting.

Returns

Nothing.

Examples

robot.disable(wait=True)

Further details

Warning

It also ends motors off and firmware flashing, whichever client sends it: the motors hold again, and during a flash the robot's CAN traffic resumes, which can make the flash fail.

Usage restrictions 1 code

This command runs at once; it is not queued. The robot accepts it in any mode and state, from every client.

It answers with one of these codes when it does not carry the command out:

  • [6025] RTI not running or not answering — rTI did not answer within 1 s: it is not running or not responding. The command may still have taken effect

In Python, a code above raises CommandRejected; its number is the code. The call raises:

  • CommandRejected: RTI refused it or did not answer within 1 s (Errors:).
  • RobotTimeout: The robot did not answer within 5 s, or, with wait, did not report itself disabled within 10 s.
  • RobotConnectionError: The client is not connected.

If the connection drops while the call waits for the robot's answer, it raises CommandRejected with the code CONNECTION_LOST (DISCONNECTED after disconnect()); while it waits for the robot's status, RobotConnectionError.

Like every immediate command, it also answers BAD_ARGS when a raw client sends a value the robot cannot read at all, and INTERNAL when it fails inside the robot.

Protocol

A client that does not use robotclient sends this over the TCP command protocol (port 29000) for the example above:

{"id": "c1", "cmd": "disable", "args": []}

See also