Skip to main content
Dropbear exposes MolmoAct2-DROID inference through dropbear.franka.observe(). You provide camera frames and robot state; Dropbear returns a 15-step absolute action chunk. This guide stops before actuation because the SDK does not ship a Franka safety controller.
Do not send the result below to a robot. A Franka controller must validate joint, velocity, acceleration, workspace, collision, gripper, watchdog, hold, and physical e-stop behavior locally.

1. Install and diagnose

Use the base SDK alongside your existing Franka controller:
The status command must show available DROID capacity for the region you intend to use. It does not open a session.

2. Preserve the model ordering

All images must be H×W×3 uint8 RGB arrays. Joint state is seven values in your controller’s Franka order, expressed in radians. The gripper state is normalized from 0 (open) to 1 (closed). If you omit second_exterior_frame, the worker uses the first exterior view for the checkpoint’s second exterior input.

3. Request one chunk

Save this as franka_prediction.py and map the four controller reads to your stack:
Run it:
Expected result:
Each row is:
The joint targets are absolute radians; the gripper target is in [0, 1].

4. Build the missing safety layer

Before any motion experiment, your local controller needs:
  1. an explicit mapping between model and controller joint order;
  2. hard position, velocity, acceleration, and jerk limits;
  3. workspace and self/environment collision constraints;
  4. per-action finite-value and timestamp checks;
  5. a disconnect watchdog that commands a tested hold or stop;
  6. a physical e-stop independent of the Dropbear process;
  7. a low-speed, reduced-workspace validation plan with an operator present.
Only after those controls are reviewed and tested should you connect the RobotIO.apply_action() boundary from the Python quickstart. Dropbear’s supported public surface ends at the returned action chunk. Need help validating the contract? Email team@dreamscalelabs.com.