frere-quacques

Eight ducks sing Frère Jacques as a round. Each pair stands up when its voice comes in, from left to right, and they all end on one big chord and bow. All but one, who misses the ending, keeps singing, notices, quacks and bows last.

A perpetual policy for the microduck (61-D observation, 14 actions, 50 Hz). Runs until told otherwise — a gait, loaded into a policy slot.

Run it on a robot

sudo robotctl policy load <slot> GinDuck/microduck-frere-quacques

The observation normalizer is baked into policy.onnx; feed raw observations. manifest.json follows schema 2 of the microduck policy manifest (docs/policy-manifest.md in the daemon repo).

Training

  • task_id: Mjlab-GotATalent-MicroDuck
  • repo: https://github.com/pollen-robotics/microduck-challenges
  • branch: main
  • commit: dc73b9237
  • checkpoint: 2750
  • seed: 1
  • base: mjlab-microduck 0.1.0 @ 1efd853be
  • started: 2026-10-31T13:18:19Z

Reproduce

Same code, same uv.lock, same command, same seed. Training it again yields a comparable policy, not the same weights: GPU reinforcement learning is not bit-reproducible across machines.

git clone https://github.com/pollen-robotics/microduck-challenges
cd microduck-challenges
git checkout dc73b9237
uv sync
uv run train Mjlab-GotATalent-MicroDuck --env.scene.num-envs 4096 --agent.max-iterations 3000 --agent.seed 1 --agent.logger tensorboard --agent.run-name run-1031-1415
Downloads last month
14
Video Preview
loading