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:
- an explicit mapping between model and controller joint order;
- hard position, velocity, acceleration, and jerk limits;
- workspace and self/environment collision constraints;
- per-action finite-value and timestamp checks;
- a disconnect watchdog that commands a tested hold or stop;
- a physical e-stop independent of the Dropbear process;
- 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.