Skip to main content
A Dropbear observation is expressed in the selected model’s coordinates, not necessarily your controller’s coordinates. Convert at the RobotIO boundary and validate the returned model action before converting it back.
Matching a vector length is not enough. Joint order, units, camera order, gripper convention, and absolute-versus-delta semantics must all match.
The production catalog currently exposes the three contracts below. Check Models before opening a session because availability is region- and account-dependent.

MolmoAct2 SO-101

Observation

  • side_frame: H×W×3 RGB image.
  • wrist_frame: H×W×3 RGB image from a distinct arm-mounted camera.
  • joint_positions: six finite values in LeRobot SO-101 order and degrees.
  • gripper_position: LeRobot’s 0–100 position convention.
  • actions_remaining: optional nonnegative buffer depth; the policy loop sets this when needed.

Action

Each returned action has this order:
The values are absolute targets in the same degrees and gripper convention as the observation. A normal chunk contains 30 actions for a 30 Hz controller. On an underrun, the managed loop uses the current observation position as its hold target. Your robot controller must still enforce per-tick changes, motor limits, watchdogs, and the physical stop path.

MolmoAct2 LIBERO

Observation

The eight state values are end-effector position, end-effector rotation as an axis-angle vector converted from the environment’s XYZW quaternion, then the two simulator gripper joint positions.

Action

A normal chunk contains ten 7D robosuite/LIBERO delta actions at 10 Hz:
Use the action directly only with the matching LIBERO/robosuite environment configuration. A physical robot controller has a different contract.

MolmoAct2 DROID

Observation

  • exterior_frame: required H×W×3 uint8 RGB view.
  • wrist_frame: required H×W×3 uint8 RGB view.
  • second_exterior_frame: optional second exterior RGB view. When omitted, Dropbear maps the first exterior view to both exterior inputs.
  • joint_positions: seven finite Franka joint positions in radians.
  • gripper: one finite value from 0 (open) to 1 (closed).

Action

Each returned action has this order:
The values are absolute joint targets in radians followed by the unit-interval gripper target. A normal chunk contains 15 actions for a 15 Hz controller.
Dropbear provides DROID inference, not a Franka safety controller. Stop at predict() until your local stack validates joint, velocity, acceleration, workspace, collision, gripper, watchdog, and e-stop behavior.

Validate at the boundary

For every model:
  1. Record the raw controller state and the converted model state.
  2. Assert camera color order, dtype, shape, and source identity.
  3. Assert vector length, order, units, and finite values.
  4. Inspect one non-actuating prediction.
  5. Reject every output outside local limits before any coordinate conversion.
  6. Test hold and e-stop behavior without cloud connectivity.
Continue to the SO-101 or Franka recipe.