Skip to main content
Reactor supplies inference and SDK transport. Your application owns camera capture, command execution, timing, robot state, and safety behavior. This LIBERO variant is trained for a simulator embodiment; the examples do not provide a physical driver, IK solver, or calibrated hardware mapping.

Define the adapter

The reference specifies the simulator’s scale and frames. A seven-value output does not imply compatibility with any seven-joint arm. If your hardware API takes joint targets, you must supply the Cartesian-to-joint control or IK layer and validate it. Matching tensor dimensions alone does not establish transfer from LIBERO.

Implement the episode loop

  1. Start with observation capture and action inspection without actuation. Validate both camera identities, orientation, frame age, and the controller mapping.
  2. Open a fresh session, publish frames, clear the echo, reset, and set the task. Accept only a finite (16, 7) first chunk with step: 0.
  3. Skip its first four rows. Validate the remaining targets against local position, velocity, acceleration, and workspace limits, then execute through your controller.
  4. Publish camera frames during execution and echo the 12 executed rows. For later chunks, execute and echo 16 rows and require the next counter. Maintain a single outstanding chunk.
  5. On timeout, disconnect, unexpected counter, or interrupted execution, apply the local hold/stop policy and end the remote episode. Resume with fresh observations in a new session.
The first commit conditions on the original seed prediction even if the client altered those commands. Later commits use the echoed actions. Do not assume the endpoint supports arbitrary partial chunks or controller modifications without evaluating their effect on policy history. At 20 Hz, a regular chunk covers 0.8 seconds of commanded motion. Transport and inference add a pause between chunks in the reference loop; the chunk duration is not a guaranteed latency budget. Measure observation-to-execution delay and tracking error along with task success. The SDK supplies neither a hard real-time servo loop nor collision avoidance. Local controller limits, stop behavior, and emergency-stop handling remain application responsibilities.

Observation timing

Camera tracks and execution echoes arrive independently. Timestamp observations at capture and set limits for their age and cross-camera skew; a reply counter does not establish capture alignment. Publish actual observations rather than treating repeated images as new measurements. Measure capture-to-execution age and controller queue depth. Validate the complete loop in a simulator or replay harness before adapting it to hardware.