robotics system design

practice designs. requirements → architecture → failure modes → data loop.

01. humanoid kitting on a car line

based on gemini robotics 2.5 × apptronik × mercedes-benz. the real numbers are theirs, the design is my take.

the prompt

design a humanoid that picks parts from bulk bins into trays, in the exact order each car on the line needs them. live factory, people nearby.

requirements

functional
  • read the build order for the next car
  • find and pick the right part from a messy bin
  • place it in the right tray slot
  • check the tray, fix gaps and mistakes
non-functional
  • keep up with the line. a late tray stops production
  • reliable. 96% per pick isn't enough on its own, recovery has to close the gap
  • safe around people. not optional, not learned
  • no cloud in the loop. wifi drops can't stop the arm

back of the envelope

~10parts per tray (assume)
~60/hrtrays, about one car a minute (assume)
~6 sper pick, all in
~24/hrmisses at 96%. one every ~2.5 min

the takeaway: at line speed, 96% means something goes wrong every couple of minutes. the design is mostly about the 4%. detection and recovery matter as much as the grasp.

architecture

four loops, split by speed
order systemfactory software (mes)
which car is next and what parts it needs, in order
per car~1/min
plannerembodied reasoning vlm
tracks the tray, picks the next part, checks the result, decides to retry. the thinker
~1 hzon robot
policyvla, action chunks
"pick bracket a, place slot 3" → arm and hand motion. the last 10 cm
10–50 hzon robot gpu
controllerclassical
joint torques, compliance so a bump doesn't break anything
500–1000 hzmotor drivers
safety layercertified, independent
sees people, slows or stops the robot. can override everything above it. no ml in the critical path
hard real-timeown hardware
offline, not in the loop: frontier llm as data engine. turns failures into simulated practice, diagnoses from video.

one pick, end to end

ordercar #482
→
planner"bracket a → slot 3"
→
policygrasp + place
→
controllertorques
→
verifycamera on tray
→
next part, or retry

where each piece runs

piecesizerateruns onwhy there
planner~1 to 10b~1 hzrobot gpuslow is fine, but it can't depend on the network
policy~1 to 3b10–50 hzrobot gpucontact needs fast feedback
controllerno ml500+ hzmotor driversphysics, has to be deterministic
safetyno mlhard rtseparate safety plchas to be certifiable
data enginefrontierofflinedata centertoo big and slow for the loop, perfect for training
sizes and rates are my rough guesses for this kind of system, not published numbers.

failure modes

what goes wronghow you knowwhat happens
missed grasphand sensors, nothing in the gripperpolicy retries, new angle
wrong partplanner checks the tray imagepull it, put it back, re-pick
parts tangled in the binrepeated failed graspsshake or re-sort the bin, then retry
person walks insafety layer, not the modelslow or stop. resume when clear
falling behind the lineplanner tracks time vs taktflag a human early, before the tray is late
network dropsheartbeatnothing. the loop is all on the robot
stuck, 3+ retriesplanner retry countcall a human, log everything

the data loop

fleet runs
→
record & replayevery failure logged
→
data enginesim variants, diagnosis
→
retrain policy
→
eval in sim + on a test cell
→
roll out to fleet

this is the flywheel. every miss becomes training data. apptronik said the models improved "dramatically in just a few weeks of post-training" and carried over to production with little drop-off.

follow-ups an interviewer would ask

← back