Skip to main content
Complete examples that combine navigation, manipulation, and sensor data into full-body robot behaviors. Read them for the shape as much as the content: no __init__, no None guards, no _cancelled flags, no result tuples, no cancel() methods. Everything the skill consumes is one annotation, and cancellation is the framework’s job.

ScanAndWave

Rotate to find a person, then wave.
mobility.rotate() and the arm motions are all blocking, so they double as cancel points — a Stop raises out of whichever one is running and the framework brakes the base, halts the arm, and reports CANCELLED.

PickupRoutine

Position the robot and the arm for a pickup.
The send_cmd_vel + self.sleep pair is deliberate: the command carries a deadman duration, so the base halts on its own if the skill dies, and the sleep is what makes the wait interruptible.

PatrolAndMonitor

Rotate between headings, sweeping the head and capturing frames at each one.

FetchFromRoom

Drive somewhere, run a trained policy, and come back — a routine assembled entirely from sub-skills.
pose is the map-frame position, which is the right frame to remember and drive back to. Use odom for relative moves instead — see Robot state.

GoHome

Return the arm and head to a safe configuration.