Skip to main content
Reactor supplies the action endpoint and SDK transport. Your application supplies camera capture, state measurement, joint control, execution timing, and local safety behavior. The reference simulator is not a validated hardware driver.

Check embodiment compatibility

Check the DROID robot definition and Cosmos3 simulator client for the reference mapping. Do not add the returned joint targets to the current joint positions. Do not infer compatibility with another Franka configuration, gripper, or embodiment from tensor shape alone.

Implement the control loop

  1. Register the reply handler before connecting, await connect() until READY, then publish all three tracks.
  2. Send a task and fresh measured state. Accept the first valid (32, 8) chunk with step: 0.
  3. Validate targets against your robot’s position, velocity, acceleration, and workspace limits. Execute through your local controller; the reference cadence is 15 Hz.
  4. Capture fresh observations after execution, update state, then acknowledge the received step with the rows actually executed. Accept only the expected next counter.
  5. On a timeout or disconnect, stop advancing the remote loop and apply your local hold/stop policy. Reconnect with current observations before resuming.
This serialized loop incurs inference and transport delay between chunks. The 2.13 seconds of motion in a chunk is not automatically a latency budget that hides that delay. If you introduce pipelining or change the executed horizon, evaluate the resulting observation delay and policy behavior explicitly.

Validate on your rig

Begin with observation capture and action inspection without actuation. Confirm camera identity, joint units/order, gripper polarity, frame age, and reply ordering. Then evaluate controlled tasks with your controller’s limits and emergency stop in place. Measure observation-to-execution latency and tracking error, as well as task success. A step acknowledgement reports client progress; Reactor cannot verify that the robot moved. The SDK does not provide a hard real-time servo loop or collision avoidance.

Observation timing

Camera tracks and state commands 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.