assembly-lab

Learned insertion of an ECU-sized part into a locating fixture on a simulated Franka Emika Panda (MuJoCo), with a wrist force-torque sensor. 1 mm clearance per side, 2 mm lead-in chamfer. Code: github.com/pavanyadava007/assembly-lab

Simulation only, no real robot. Policies are trained on 479 scripted demonstrations (104,848 frames), not human teleoperation. Every number below is read from the evaluation files: 200 unseen seeds per cell, Wilson 95% intervals.

Insertion success

PolicyNominal perceptionFixture perceived 2 mm off
Scripted expert (reference)200/200 (98-100%)165/200 (77-87%)
Scripted expert, Cartesian impedance control200/200 (98-100%)194/200 (94-99%)
MLP behavior cloning179/200 (84-93%)84/200 (35-49%)
MLP behavior cloning, no wrist F/T156/200 (72-83%)47/200 (18-30%)
MLP behavior cloning under impedance control51/200 (20-32%)38/200 (14-25%)
ACT (LeRobot)9/200 (2-8%)8/200 (2-8%)
Diffusion Policy (LeRobot)75/200 (31-44%)63/200 (25-38%)
Diffusion Policy, no wrist F/T55/200 (22-34%)52/200 (20-32%)

Does wrist force-torque sensing matter?

Paired on the same seeds, exact McNemar test.

ComparisonConditionOnly with F/T succeededOnly without F/T succeededp
MLP behavior cloning vs without F/Tnominal36131.4e-03
MLP behavior cloning vs without F/T2 mm perception error57202.9e-05
Diffusion Policy (LeRobot) vs without F/Tnominal39191.2e-02
Diffusion Policy (LeRobot) vs without F/T2 mm perception error40292.3e-01

Same scene, three controllers

MLP behavior cloning with wrist F/T, fixture perceived 2 mm off: touches the chamfer, corrects, seats the part.
Same seed, same policy class without F/T: it hovers above the pocket and never commits to the insertion.
Scripted demonstrator on the same seed (force-guided search).