Skip to main content

Robot policies

Module: se3labs.interface.eval.policy

The policy contract: what a caller hands to evaluate(station, task, policy).

Lifecycle, driven by the station, once per episode:

  1. initialize(station, task): return the joint pose the arms walk to before the episode starts. Load weights and read the task instruction here.
  2. infer(observation), repeated on every observation tick until the episode ends. Return a new chunk, or None to keep executing the current one. A new chunk replaces the remainder of the current one.
  3. reset() after the episode ends. Clear observation history and any unexecuted chunk so the next initialize starts clean.

Anything about how the policy runs (its rate, chunk length, replanning, image preprocessing) lives inside these methods and is not declared to the SDK.

Policy​

class Policy(ABC)

Policy.initialize​

initialize(station: Station_Spec, task: Task_Spec) -> Station_JointPose

Prepare for one episode of task on station and return the pose the arms start from.

Policy.infer​

infer(observation: Station_Observation) -> Station_ActionChunk | None

A new action chunk for this tick, or None to continue executing the current chunk.

Policy.reset​

reset() -> None

Clear per-episode state. Called once after the episode ends. No-op by default.