set_profile¶
Runs at once Any mode Takes control
Set the default profile: how queued moves speed up and slow down. Every queued move that does not pass its own profile is timed with this one, joint moves and Cartesian moves alike. The robot knows these profiles, by these names and their other spellings:
"ruckig": limits speed, acceleration and jerk. Smooth starts and stops, with no ringing after a fast stop."trapezoid"(also"trapezoidal","trap"): limits speed and acceleration. Shorter moves; the arm can ring briefly after a full-speed stop."quintic"(also"poly5"): a smooth polynomial shape that starts and ends at rest."s_curve"(also"s-curve","scurve","smoothstep7"): a smooth fixed shape, with the gentlest jerk of the fixed shapes."toppra": the fastest timing along the path within the speed and acceleration limits. Needed for"zone"and"tolerance"blending.
Case and spaces around the name do not matter. The setting is the robot's: it applies to the moves every client sends after it, and moves already sent keep their profile. It lasts until it is changed or the robot software restarts.
Syntax¶
Arguments¶
| Name | Type | Default | Description |
|---|---|---|---|
profile |
str |
required | The profile's name, one of those above. |
Default values¶
"ruckig", set each time the robot software starts.
Returns¶
Any
{"profile": name}: the profile now in force, by its main name, for example "trapezoid" for "trap".
Examples¶
robot.set_profile("trapezoid")
robot.move_joints(90, -105, 165, 0, -30, 180)
robot.wait_idle()
robot.set_profile("ruckig")
Further details¶
Note
No status field shows this default: the status's current_profile is
the profile of the move that started last.
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 — no profile was given (only a raw client can send that)
- [6005] Unknown motion profile —
profileis not one of the names above
In Python, a code above raises CommandRejected; its number is the code. The call raises:
CommandRejected: The robot refused it: the name is not a known profile, or another client holds control.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.
Protocol¶
A client that does not use robotclient sends this over the TCP command protocol (port 29000) for the example above: