5 agents · 1 shared cell · 1 ground truth. Before the gripper moves, each agent calls a spatial tool instead of guessing — exact answers in milliseconds.
Pickerrelational_graph (on/under)
"Which part is clear to pick (nothing resting on it)?"
↳ gear, shaft, bolt, spacer, plate are clear — nothing resting on them; flange, bracket each carry a part, skip them
0.143 ms7,005 ops/sdet ✓
Grasp-safetycheck_stability
"Will lifting the top part topple the stack?"
↳ NO — lifting frees nothing safely: shaft already tips +x (CoM 0.10 m past flange's edge); grasping the stack topples it — reseat shaft first
0.092 ms10,875 ops/sdet ✓
Visioncheck_visibility
"Is part `plate` visible or occluded in the clutter?"
↳ NO — plate is in the camera's FOV but occluded by spacer; clear the clutter or re-pose the camera
0.022 ms46,086 ops/sdet ✓
Motionnavigation_plan
"Collision-free approach path for the arm base?"
↳ reachable — 13.9 m collision-free path for the arm base to the bin (56 waypoints), routing around the floor clutter
3.647 ms274 ops/sdet ✓
Structurerelational_graph (on)
"What is resting on what?"
↳ 2 support pairs — shaft rests on flange; bolt rests on bracket (everything else sits on the bin floor)
0.655 ms1,528 ops/sdet ✓