rti_set_rate_limiter¶
Runs at once Any mode Takes control
Switch the real-time rate limiter on or off. The rate limiter keeps every real-time command within the joints' real-time limits from the robot XML (<rti_limits>). Position targets go through the servo generator and, in RTI mode, the stream checks; velocity commands are limited in speed, acceleration and jerk; torque commands in their rate of change. It takes effect at once, also mid-stream.
With it off, commands reach the motors unshaped. What still applies: the soft joint limits (position targets are clamped to them, a velocity brakes before them, torque pushing past them is cut), the tool speed cap on velocity commands, the SOFT_RTI position check, gravity compensation, the first-command check and the watchdog. No generator runs, the RTI-mode stream checks and the dynamics feedforward are skipped, and a claim no longer needs the generator's planner. It is meant for measuring latency, not for normal work.
Syntax¶
Arguments¶
| Name | Type | Default | Description |
|---|---|---|---|
enabled |
bool |
required | True to limit every command, False to pass commands through. |
Default values¶
On, set each time the robot software starts and at every
rti_connect(): a session never inherits it switched off.
Returns¶
Nothing.
Examples¶
Further details¶
Warning
Off, nothing limits how fast a command moves the arm: a position step
jumps at the drives' full authority, and a velocity command has no
speed limit. It stays off until it is switched on or the next
rti_connect().
Usage restrictions 3 codes
This command runs at once; it is not queued. The robot accepts it in any mode and state, 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:
- [6101] Control held by another client — another client holds control; the message names it
- [6003] Invalid arguments — the value is not true or false (1 / 0), or the message did not carry exactly one value; this client always sends one
- [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: 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.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.