songkran-duck_7007

Sock Heist: our own sprint race net retrained to freeze under the giant's eye, then taught to brake in the giant's turn (hr2b-brake, checkpoint 1425). Trained with solar energy.

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> DenRakEiw/microduck-songkran-duck_7007

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-SockHeist6m-MicroDuck
  • repo: https://github.com/pollen-robotics/microduck-challenges
  • branch: denrakeiw-070
  • commit: 97e2b1fe2
  • checkpoint: 1425
  • seed: 1
  • base: mjlab-microduck 0.1.0 @ 1efd853be
  • started: 2026-11-06T10:05:47Z

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 97e2b1fe2
uv sync
uv run train Mjlab-SockHeist6m-MicroDuck --env.scene.num-envs 4096 --agent.save-interval 25 --agent.seed 1 --agent.logger tensorboard --agent.actor.class-name microduck_challenges.sock_heist_6m.sprinter:SprinterActor --agent.algorithm.schedule fixed --agent.algorithm.learning-rate 3e-4 --agent.algorithm.entropy-coef 0.0 --agent.resume True --agent.load-run 2026-11-06_07-29-02_hr2-ns1 --agent.load-checkpoint model_1200.pt --agent.max-iterations 400 --agent.run-name hr2b-brake
Downloads last month
14
Video Preview
loading