static-grasp

A ground pick for the A button that gets low. The duck crouches until its open beak is about 1 cm above the floor, keeps its centre of mass over its feet, bites, and stands up holding a small object. It replaces the stock alpha_ground_pick network in the same slot.

Real-robot demo (50 s): https://www.youtube.com/watch?v=MpWuZ9_dxuk

Simulation, half speed: the stock pick on the left, this one on the right, same Lego.

Try it on a duck (a dev board; run this on the duck):

sudo robotctl update apply --ref static-grasp-default daemon && sudo robotctl policy load ground_pick RemiFabre/microduck-static-grasp

Then stand the duck up (Start twice), put a small object about 9 cm in front of its feet, centred, and press A. To go back:

sudo robotctl policy reset ground_pick && sudo robotctl update apply --ref main daemon

The first command installs the daemon build of microduck#481. This network was trained with a scripted beak, which opens to 22° over phase 0.02–0.10 of its 4 s cycle and closes on the object over 0.34–0.40. The stock daemon keeps the beak shut during a pick.

In simulation (exact training model, the robot's pick sequence)

  • Lego 2×2, 2 cm block, die and chess pawn: 3/3 each. AA battery 1/3, flat coin 0/3.
  • The centre of mass stays at least 0.84 cm inside the feet. Frozen mid-hold on its own servo targets, it stays up with the beak 2–5 mm off the floor.
  • The beak hovers 1–1.7 cm while waiting and taps the floor for 0.02–0.1 s as it closes.
  • Placement: about 9 cm in front of the feet. It still grasps from about 1 mm closer to 8 mm farther, and about ±15 mm sideways.

Limits

  • Tried on one duck so far (the demo), with no counted results.
  • Each degree of leg-joint error moves the beak about 2.5 mm, so a real duck may touch the floor more than the simulation does.
  • Joint targets reach up to 0.25 rad past a joint range.
  • Objects taller than 2.6 cm are untested in simulation.

Contract obs[1,61] f32 → actions[1,14] f32, normalizer baked in, 50 Hz. Kind episodic, phase command [cos 2πφ, sin 2πφ, 0] with a 4.0 s period, handing back at 0.7: the ground_pick slot. Provenance Mjlab-StaticGrasp-Hover-FromPick-MicroDuck: pollen-robotics/microduck_rl @ 666dab6 on branch static-grasp, run pollen-robotics/mjlab_microduck/neoy2a9d, checkpoint 1249. It was warm-started from the stock pick, and exported with scripts/export.py. Files policy.onnx · manifest.json (machine-readable) · media/preview.mp4 (simulation)

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading