rti_set_dynamics_ff¶
Runs at once Any mode Takes control
Choose the inertia and Coriolis feedforward of real-time streams. With "stream" the robot estimates your position stream's own acceleration, the change of its speed between your packets smoothed at about 8 Hz, and feeds the torque that motion needs forward to the drives: the joints' inertia, and their Coriolis effect on each other. It helps tracking from about 25 Hz up and comes too late below about 10 Hz; noise in your targets shows as torque ripple. The robot-wide set_inertia_comp() and set_coriolis_comp() must be on too. With "off" nothing is fed forward: choose it when your PC computes its own dynamics.
It acts on position streams while the rate limiter is on; velocity and torque commands get none. rti_connect() sets it again: call this after it.
Syntax¶
Arguments¶
| Name | Type | Default | Description |
|---|---|---|---|
source |
str |
required | "stream" or "off", in any case. The robot ignores any other value and keeps the current one. |
Default values¶
"stream", set at every rti_connect().
Returns¶
Nothing.
Examples¶
robot.rti_connect(rate_hz=50, wait=True)
robot.rti_set_dynamics_ff("off")
robot.rti_disconnect(wait=True)
Usage restrictions 4 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 —
sourceis empty or holds a colon, or the message did not carry exactly one value - [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
- [6026] Refused by RTI — rTI could not use the value. The message says why; the setting in force stays
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.