libstp.step.timing.do_until_checkpoint

Classes

DoUntilCheckpoint

Run one child step until the robot synchronizer reaches a checkpoint.

Functions

do_until_checkpoint(→ DoUntilCheckpoint)

Run a step until a mission-relative time checkpoint, then cancel it.

Module Contents

class libstp.step.timing.do_until_checkpoint.DoUntilCheckpoint(checkpoint: float, step)

Bases: libstp.step.Step

Run one child step until the robot synchronizer reaches a checkpoint.

checkpoint
step
async run_step(robot: GenericRobot) None

Record the wrapper step, then execute the child until the checkpoint.

libstp.step.timing.do_until_checkpoint.do_until_checkpoint(checkpoint: float, step) DoUntilCheckpoint

Run a step until a mission-relative time checkpoint, then cancel it.

Starts executing step immediately and cancels it when the robot’s global synchronizer clock reaches checkpoint seconds since mission start. If the step finishes before the checkpoint, execution continues without waiting. This is useful for time-boxing actions within a timed Botball run (e.g. “search for objects, but stop at T=45s no matter what”).

Prerequisites:

The robot must have a synchronizer configured. The synchronizer clock starts when the mission begins.

Parameters:
  • checkpoint – The mission-relative deadline (in seconds) at which step will be cancelled.

  • step – The step to run. Will be cancelled if still active when the checkpoint time is reached.

Returns:

A step that manages the time-boxed execution.

Return type:

DoUntilCheckpoint

Example:

from libstp.step.timing import do_until_checkpoint
from libstp.step.logic import loop_forever

# Search for objects until T=45s, then move on
search = loop_forever(seq([
    scan_for_object(),
    drive_forward(10),
]))
seq([
    do_until_checkpoint(45.0, search),
    drive_to_start(),
])