safety_stop¶
Runs at once Any mode Open to every client
Switch the motors off: the arm goes limp and falls. Every joint's motor gets no position, no speed and zero current, so nothing holds the arm up. The robot accepts it in every mode and state, from every client, also with an error latched, and never refuses it. An error that latches while the motors are off does not switch them on again. The robot stays in this mode until release_safety_stop().
Unlike disable(), which holds every joint still, this takes all torque off the arm: to free something trapped by hand, or to hear whether a noise comes from a drive's own firmware. From EXEC mode it switches at once, without braking, and a queued program is cancelled as with disable(). The gripper's jaws stop where they are.
Syntax¶
Arguments¶
| Name | Type | Default | Description |
|---|---|---|---|
wait |
bool | None |
None |
Wait until the robot reports the motors off, up to 10 s. None follows the client's sync setting. |
Returns¶
Nothing.
Examples¶
Further details¶
Warning
The arm falls under its own weight. Support it, or park it, first.
stop() and disable() from any client switch the motors on again.
Usage restrictions 2 codes
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
- [6014] Mode change refused — rTI refused SAFETY_STOP from the mode it is in. The message says why
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, withwait, did not report the motors off 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: