Jogging and servoing¶
Streamed motion: takes the arm at once and cancels the planned queue (MOTN_CANCELLED for every discarded
command). A jog ends when its duration runs out; a servo stream ends about 0.25 s after the last target. Then
the arm brakes to rest. Speeds are signed fractions in [−1, 1] for jogs and fractions in (0, 1] for servo
targets. jog_j works before homing; jog_l and the servo targets need a homed robot.
Jogging and servoing in the guide.
jog_j¶
rbt.jog_j(
joint: int | None = None,
speed: float = 0.0,
duration: float = 0.1,
*,
joints: list[int] | None = None,
speeds: list[float] | None = None,
accel: float = 0.5,
) -> int
Joint velocity jog. Single-joint or multi-joint.
Single joint: jog_j(0, 0.5, 1.0) Multi joint: jog_j(joints=[0,1], speeds=[0.5, -0.3], duration=1.0)
| Parameter | Meaning |
|---|---|
joint |
Joint index (0-5) for single-joint jog |
speed |
Signed speed fraction for single-joint jog |
duration |
Jog duration in seconds |
joints |
List of joint indices for multi-joint jog |
speeds |
List of signed speed fractions for multi-joint jog |
accel |
Acceleration fraction 0-1 |
jog_l¶
rbt.jog_l(
frame: Frame,
axis: Axis | None = None,
speed: float = 0.0,
duration: float = 0.1,
*,
axes: list[Axis] | None = None,
speeds_list: list[float] | None = None,
accel: float = 0.5,
) -> int
Cartesian velocity jog. Single-axis or multi-axis.
Single axis: jog_l("WRF", "X", 0.5, 1.0) Multi axis: jog_l("WRF", axes=["X","Y"], speeds_list=[0.5, -0.3], duration=1.0)
| Parameter | Meaning |
|---|---|
frame |
Reference frame ("WRF" or "TRF") |
axis |
Axis name for single-axis jog |
speed |
Signed speed fraction for single-axis jog |
duration |
Jog duration in seconds |
axes |
List of axis names for multi-axis jog |
speeds_list |
List of signed speed fractions for multi-axis jog |
accel |
Acceleration fraction 0-1 |
Note
Axis names: X, Y, Z, RX, RY, RZ; frames WRF and TRF. Jogs are clamped to 80 % of the limits.
servo_j¶
rbt.servo_j(
angles: list[float] | None = None,
*,
pose: list[float] | None = None,
speed: float = 0.5,
accel: float = 0.5,
) -> int
Streaming joint position target. Fire-and-forget.
The stream stops about 0.25 s after the last target arrives: the arm brakes to rest and holds there.
| Parameter | Meaning |
|---|---|
angles |
6 joint angles in degrees (ignored if pose= is set) |
pose |
If set, Cartesian target — dispatches to SERVOJ_POSE |
speed |
Speed fraction 0-1 |
accel |
Acceleration fraction 0-1 |
servo_l¶
Streaming linear Cartesian position target. Fire-and-forget.
The stream stops about 0.25 s after the last target arrives: the tool brakes along its line to rest and holds there.
| Parameter | Meaning |
|---|---|
pose |
Target [x,y,z,rx,ry,rz] in mm and degrees |
speed |
Speed fraction 0-1 |
accel |
Acceleration fraction 0-1 |
stream_status (async client only)¶
Async generator that yields status updates from multicast broadcasts.
This generator terminates automatically when close is called on the client, so callers do not need to manually cancel their consumer tasks.
Each yielded StatusBuffer is a copy - safe to store or process async. For zero-copy hot paths, use stream_status_shared instead.
Slow consumers automatically skip to the latest state (desired for real-time).
stream_status_shared (async client only)¶
Zero-copy async generator that yields the shared status buffer.
async for status in client.stream_status_shared():
# Process immediately - don't store references
print(f"Angles: {status.angles}")
WARNING: The same buffer instance is yielded on every iteration. Do not store references to the yielded object - data will be overwritten on the next iteration. For safe storage, use stream_status or call status.copy().
This generator terminates automatically when close is called on the client.
Slow consumers automatically skip to the latest state (desired for real-time).
Comments
Found a mistake on this page? Edit it on GitHub · Report it · Get help · This page as Markdown · llms.txt · The whole manual as PDF