Blind Precise Assembly: Proprioceptive Sim-to-Real Peg-in-Hole for Diverse Parts
Organizations: Massachusetts Institute of Technology
Abstract
Every robot already carries high-resolution contact sensors: its own joints. Legged robots and humanoids exploit them to walk, run, and track whole-body motions without vision, but there the contacts are large and forceful. Is joint sensing also enough for precise, contact-rich assembly, where the robot must find a millimeter-scale opening, mesh gear teeth, or catch a thread through light contact? We study this question by training blind assembly policies that observe only a short history of joint positions, velocities, and their own actions, without visual, force, torque, or tactile sensing. The poses of both the fixture and the part are unknown to the policy, and the grasp is randomized substantially. The policy must therefore assemble the parts through contact, sensed exclusively through its own proprioception. Trained with reinforcement learning entirely in simulation over randomized parts, grasps, and contacts, such policies learn peg insertion, gear meshing, and nut threading. The peg insertion policy transfers zero-shot to the real world and inserts pegs of different shapes and sizes in 73% of trials. Controlled comparisons with matched visual policies in simulation show that blind policies generalize far better to unseen part shapes and sizes, though they can be slower. Training such policies needs thousands of different assemblies, each simulated with its clearance intact, so we also release an open-source generator that builds them procedurally from exact convex pieces for MuJoCo; it is more accurate and faster than convex decomposition or MuJoCo's signed-distance collision. Videos and interactive simulations are at https://younghyopark.me/blind-proprioceptive-assembly/.
Figures & tables
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Peg insertion | Gear meshing | Nut threading | |
| Part and fixture | |||
| Part | stadium prism | involute spur gear, held by an 18 mm boss; 1–2 anchor gears | ISO metric nut and bolt, coarse and fine pitch |
| Size | scale 1.35–2.45; opening 38–91 20–54 mm; length 50–60 mm scale | module 2.375–3.125 mm; 16–24 teeth | M36 and M42 |
| Shape | aspect ratio 1.25–2.5 (log), area-preserving | pressure angle 21.25–23.75 ∘ ; tooth width 0.45–0.47 pitch; face width 9.75–13.25 mm | across flats and height 0.95–1.05 ISO 4032 |
| Clearance | 1.0–1.5 mm per side | backlash 0.4–0.6 mm per anchor; bore 0.75–1.0 mm | flank 0.1–0.2 mm (log) |
| Fixture | hole 10 mm scale deep in an 80 mm scale square plate | shaft radius 4.5–5.5 mm, 4.75–8.25 mm above the gear | bolt stick-out 7.5–22.5 mm above its minimum |
| Parameter | Deployed peg policy |
|---|---|
| Part and fixture | |
| Cross-section | random convex † |
| Opening, long short side | 39–91 30–52 mm |
| Peg length | 25–35 mm, below the handle |
| Hole depth | 20 mm |
| Plate | convex, 5–70 mm margin |
| Probe | Setup | Exact answer |
|---|---|---|
| Wall offset | Rays from the hole axis at 720 angles and 11 heights; no solver | Wall on the analytic outline |
| S0 contact onset | Aligned peg placed at known gaps; collision only | Contact appears at gap 0 |
| S1 drop | centered free peg dropped from 1 mm; from mm to µm | Passes with zero wall contact iff |
| S2 lateral play | Planar slides; 0.1 N push in 24 directions | Support of the feasible translation set |
| S3 tilt play | Slides and one hinge; 1.5 mN m torque | Maximum tilt at which both faces fit |
| S4 yaw play | Slides and a vertical hinge (square hole) |
| Representation | CPU, 1 thread | GPU, 512 worlds | Error at µm |
|---|---|---|---|
| mjfit , square hole | 93 | 970 | 0.2 µm |
| mjfit , circle, 7–32 sides | 82–29 | 1120–1070 | 2.6 µm |
| mjfit , circle, 63–281 sides | 16–4.9 | 875–442 | 0.4 µm |
| Mesh SDF, octree depth 5–8 | 2.9–2.2 | 590–840 | fills, or 23–79 µm |
| CoACD, threshold 0.01 (839 hulls) | 1.8 | 254 | fills |
| Other CoACD and V-HACD settings | 3.3–70 | 680–1900 | fills |
| Blind proprioceptive (ours) | Visual | |
| Success (%) | 99.4 | 97.2 |
| Time to seat (s) | 0.80 | 0.44 |
| Insertions per minute | 65 | 82 |
| Lateral travel before seating (mm) | 37 | 20 |
| Time partly engaged (s) | 0.38 | 0.22 |
| Tilt when partly engaged / seated ( ∘ ) | 6.7 / 1.1 | 5.2 / 1.1 |
| Peg insertion | Gear meshing | Nut threading | |
| Clearance | |||
| Training | 1.0–1.5 mm per side | backlash 0.4–0.6 mm per anchor | flank 0.1–0.2 mm |
| Tighter | 0.5–0.625 mm | 0.2–0.25 mm | 0.05–0.0625 mm |
| Aspect / depth | |||
| Training | aspect ratio 1.25–2.5 | tooth height 1.0 module above the pitch circle | ISO thread depth |
| Mild | Slender: 3.54–4.20 | Taller teeth: 1.1–1.2 modules | Deeper thread: 1.1–1.2 , same flank angle |
| Clearance | Aspect / depth | Size | Shape | ||||
| Senses | In dist. | Tighter | Mild | Strong | Mild | Extreme | Random |
| Peg insertion | |||||||
| Proprioception (blind) | 99.4 | 93.8 | 97.1 | 93.3 | 97.1 | 91.9 | 36.2 |
| RGB (visual) | 97.2 | 54.1 | 62.7 | 40.1 | 57.7 | 16.4 | 3.9 |
| Gear meshing | |||||||
| Proprioception (blind) | 99.9 | 99.9 | 99.9 | 99.9 | 99.9 | 99.9 | 99.9 |
Robotic Assembly
Robotic assembly studies how robots perceive, plan, and join parts reliably, from precision insertion to collaborative construction.
See all 85 papers