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¶
Wait until the robot has driven at least the given distance. |
Module Contents¶
- class step.motion.at_distance.WaitUntilDistance(cm: float)¶
Bases:
step.StepWait 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)]), ])