YAM Grasp Pickup
Start from fresh live perception. Do not use fixed object XYZ for a physical pickup unless it is explicitly a no-motion calibration run.
Preferred helper layer:
yam_runtime.capture_sceneyam_runtime.generate_side_grasp_candidatesyam_runtime.rank_motion_candidatesyam_runtime.execute_grasp_lift_attemptyam_runtime.staged_close_with_contactyam_runtime.verify_lift
Patterns from current successful scripts:
- Bottle: side body grasp, fixed/biased body Z only after live XY detection, staged close, lift before transport.
- Can: cylinder model, top-down yaw candidates, lift to transfer clearance, verify by post observation.
- Bowl/dish/plate: rim or wall contact, high approach then low pregrasp, gentle staged close, lift only a few centimeters before transport.
- KitKat: top-down endpoint pinch on one short end, then handover the exposed end.
Do not count close command return as pickup success. Require gripper width/contact evidence, lift/post-observation motion, video evidence, or an explicit task artifact.