Skip to content

release_safety_stop

Runs at once SAFETY_STOP mode Takes control

Switch the motors back on after a safety stop. The robot returns to IDLE mode. An enabled, homed arm with gravity compensation on is then in freedrive; otherwise every joint holds still where it is. With an error still latched, the robot goes to the error state instead, which holds every joint still.

Syntax

robot.release_safety_stop(wait=None)

Arguments

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

Returns

Nothing.

Examples

robot.safety_stop(wait=True)
robot.release_safety_stop(wait=True)
Usage restrictions 3 codes

This command runs at once; it is not queued. The robot accepts it only when it is in SAFETY_STOP mode, from the client that holds control or when no client does.

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

  • [6010] Command not allowed now — the message names the mode or state it needs
  • [6101] Control held by another client — another client holds control; the message names it
  • [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: The robot refused it: the motors are not off, or another client holds control. Or 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 IDLE mode within 10 s, for example with an error still latched.
  • 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": "release_safety_stop", "args": []}

See also