Reproduction 002 · E2F · NVIDIA A10

Thirty Seconds of π0

The closed loop runs: scene → observation → π0 → action → MuJoCo → next observation, thirty times over, on the unmodified AutoBio pipette bench. Every joint moves. Nothing on the bench does.

Untuned checkpoint. This is pi0_base, which has never seen this task. The run asks whether the loop produces stable, interpretable motion — not whether the robot performs the protocol. Task success: NOT EVALUATED.

What the run measured

Cycles completed
30 / 30
30 s simulated at 50 Hz
End-effector path
1923 mm
distance actually travelled
Joints that moved
14 / 14
including plunger and gripper
Tube displacement
0.912 mm
the only free body
Closest tip–tube
74.8 cm
never approached
Pathological events
0
no NaN, no warnings

The run, frame by frame

Rendered simulation state

Reset pose. Pipette already in the hand. table_cam_front — the same MJCF camera pi0 receives as base_0_rgb

The measurement that settles it

If the policy were reaching for the tube, this line would fall. It climbs for twelve cycles, peaks 35 cm further away than it started, wanders back, and ends 2.7 cm below its starting value — against 1923 mm of path travelled. That 1.4% is incidental, not directed.

700800900100011001200051015202530 mm control cycle (1 s each) 855.6 start1204.3 peak747.6 closest828.9 end

A render that looks like progress. In the final bench view the pipette appears poised over the tube rack. Measured, the tip sits at (0.334, 0.054, 1.571) and the tube at (-0.036, 0.018, 0.830)74 cm above and 37 cm across. The front camera collapses depth and height. This is why the verdict rests on distances rather than on the picture.

Every joint moved

#JointInitialFinal Δ radmax |v| rad/s
01/ur:shoulder_pan+0.004+0.839+0.8340.464
11/ur:shoulder_lift-1.511-1.533-0.0220.638
21/ur:elbow+1.525+1.826+0.3010.513
31/ur:wrist_1-0.003-1.895-1.8910.708
41/ur:wrist_2+1.635+1.821+0.1850.567
51/ur:wrist_3+1.558+1.597+0.0390.065
61/ur:dh:rh_thj3+0.000+0.494+0.4941.024
72/ur:shoulder_pan+0.008-1.224-1.2320.019
82/ur:shoulder_lift-1.474-1.476-0.0020.086
92/ur:elbow+1.509+1.977+0.4680.031
102/ur:wrist_1-1.559-2.252-0.6930.362
112/ur:wrist_2-1.518-1.693-0.1750.013
122/ur:wrist_3-1.557-1.505+0.0520.044
132/ur:2f85:right_driver_joint+0.000+0.571+0.5710.623

Indices 6 and 13 are the absolute-encoded actuators — the pipette plunger and the gripper. Both responded, which is what confirms the delta/absolute action contract drives real hardware. Peak velocity 1.02 rad/s against a 50 rad/s instability threshold: slow, smooth, nowhere near divergence.

Every contact, and what each one is

CountBody ABody BWhat it is
1505/centrifuge_50ml_screw_body3/centrifuge_10slottube resting in its own rack — already present at t = 0
601/ur:dh:rh_lfmiddletl/pipettehand against the welded pipette
511/ur:dh:rh_thdistaltl/pipette_knobthumb on the plunger knob
461/ur:dh:rh_ffdistaltl/pipettehand against the welded pipette
411/ur:dh:rh_rfdistaltl/pipettehand against the welded pipette
391/ur:dh:rh_lfdistaltl/pipettehand against the welded pipette
301/ur:dh:rh_mfdistaltl/pipettehand against the welded pipette

Zero robot–to–free–object contacts. The pipette is welded to the hand (dofnum = 0), so hand–pipette contact exists regardless of what the policy does, and is not called a grasp. The 150 tube contacts are the tube sitting in its rack at reset.

Two defects in the classifier, both flattering

The harness first reported OBJECT_INTERACTION. The raw numbers above are what disproved it.

  1. Pre-existing contact counted as interaction. The branch fired on any contact whose body name contained centrifuge_50ml. All 150 matches were the tube in its rack, present before the policy ran. Tube displacement (0.912 mm) was below the 5 mm threshold, so it was purely the name test that fired — the test needed a robot-body predicate on the other side of the pair and had none.
  2. Endpoint test blind to the trajectory. With the first defect removed the ladder falls through to REACHING_MOTION, because 828.9 < 855.6 − 20. The chart above shows why that is an artefact of where the run happened to stop.

Corrected classification: SUSTAINED_MOTION

Exactly what π0 received

Three 224×224 uint8 frames per step, unretouched.

At reset (t = 0)

base_0_rgb at t000_initial
base_0_rgbtable_cam_front
left_wrist_0_rgb at t000_initial
left_wrist_0_rgb1/ur:wrist_cam
right_wrist_0_rgb at t000_initial
right_wrist_0_rgb2/ur:wrist_cam

At the end (t = 30 s)

base_0_rgb at final
base_0_rgbtable_cam_front
left_wrist_0_rgb at final
left_wrist_0_rgb1/ur:wrist_cam
right_wrist_0_rgb at final
right_wrist_0_rgb2/ur:wrist_cam