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:
initialize(station, task): return the joint pose the arms walk to before the episode starts. Load weights and read the task instruction here.infer(observation), repeated on every observation tick until the episode ends. Return a new chunk, orNoneto keep executing the current one. A new chunk replaces the remainder of the current one.reset()after the episode ends. Clear observation history and any unexecuted chunk so the nextinitializestarts 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.