step.motion.at_distance

Wait until the robot has driven a certain distance from origin.

Designed to run inside a parallel() branch alongside a drive step:

parallel(

drive_forward(50), seq([wait_until_distance(30), servo_open()]),

)

Multiple distance-triggered actions:

parallel(

drive_forward(50), seq([wait_until_distance(20), arm_lower()]), seq([wait_until_distance(30), servo_open()]), seq([wait_until_distance(45), servo_close()]),

)

Polls odometry at 100Hz. Because LinearMotion.start() resets odometry, the distance is measured from the start of the concurrent drive step.

Classes

WaitUntilDistance

Wait until the robot has driven at least the given distance.

Module Contents

class step.motion.at_distance.WaitUntilDistance(cm: float)

Bases: step.Step

Wait until the robot has driven at least the given distance.

Polls odometry straight-line distance from the origin at 100 Hz. Designed to run inside a parallel() branch alongside a drive step, enabling actions to trigger at specific distances during a drive.

Parameters:

cm – Distance threshold in centimeters.

Example:

from raccoon.step import parallel, seq
from raccoon.step.motion import drive_forward, wait_until_distance
from raccoon.step.servo import servo

# Open a servo after driving 30 cm into a 50 cm drive
parallel([
    drive_forward(50),
    seq([wait_until_distance(30), servo(claw, 90)]),
])