act-pick-v3-6000

Best pick policy of the third round (v3), chosen from a sweep of five training runs. ACT policy for the SO-101 "pick a piece from the crate and hold it up to the camera" task. Inputs: front camera, wrist camera and the six joint positions; output: a chunk of 90 future joint targets at 30 fps. This is the checkpoint at 6,000 steps of a 30,000-step run (constant learning rate, so it is the same as a 6,000-step run).

Training data ("super" mix)

Every recording in MikelRubi/so101-pick-cube_* (66 sessions, including the two evening sessions of 24 Oct) that passes a quality filter:

  • 5 to 15 s long, start gap between leader and follower of at most 20 degrees, at most 3 s idle at either end, gripper opens at least once;
  • the known bad takes (wrong camera, people in view) removed;
  • both the 30 fps recordings and the 10 fps ones (up-sampled to 30 fps), with any number of pieces in the crate.

398 training episodes. Held out: 16 episodes, 12 from so101-pick-cube_20261024_181939 (one piece, varied positions) and 4 from so101-pick-cube_20261024_144537 (two pieces).

Recipe: LeRobot train(), batch 8, chunk 90, 30 action steps per replan, learning rate 1e-5, LeRobot's default image augmentation (colour, sharpness, small affine), seed 1000.

Offline check on the held-out episodes

Mean absolute joint error over the predicted chunk (lower is better) against a "stay at the current joint positions" baseline of 20.71:

model error below baseline
this model (super, 6,000 steps) 15.16 27%
super, 12,000 / 18,000 / 24,000 / 30,000 steps 16.08 / 16.04 / 16.36 / 16.27 22% / 23% / 21% / 21%
strict-quality run, 2,400 steps 15.14 27%
v3 recipe on 1-2 piece episodes, 18,000 steps 15.35 26%
v2 (act-pick-v2-6000) 15.36 26%

Per joint, policy / baseline: shoulder_pan 7.4 / 9.7, shoulder_lift 13.8 / 30.2, elbow_flex 16.6 / 21.0, wrist_flex 15.3 / 20.4, wrist_roll 30.8 / 28.5, gripper 7.1 / 14.9. wrist_roll is not better than staying still.

This is a choice among ties. The best checkpoints of four runs are within 0.2 points of each other, which is inside seed noise, and every run got worse after about one pass over the data. This one was picked because it has the lowest pooled error among the models trained on the new data, the most training episodes, and more training than the 2,400-step run. The offline error cannot say which model grasps best; it has not been tested on the robot.

Downloads last month
10
Safetensors
Model size
51.7M params
Tensor type
F32
ยท
Video Preview
loading