kick-right

Right-foot ball kick from a standing start (Mjlab-BallKick-Flat-MicroDuck), trained in simulation only: 10,000 iterations, 4096 envs, 161 min on one RTX 5090. Blind to the ball by design, so the ball must sit at the right toe (trained with +-1.5 cm placement noise). In 3 of 3 sim takes the ball travelled 1.03 to 1.13 m in the first second and the duck stayed standing. Not yet tested on a real Microduck.

A episodic policy for the microduck (61-D observation, 14 actions, 50 Hz). Runs 1.0 s and returns itself to a standing pose.

Run it on a robot

sudo robotctl policy add kick-right witcheer/microduck-kick-right
robotctl robot do kick-right

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

  • repo: pollen-robotics/microduck_rl
  • branch: develop
  • commit: 53b8971b6

Results in simulation

Simulation only. This policy has not run on a real Microduck yet; a kick in MuJoCo says nothing yet about what a real foot does to a real ball on a real floor.

  • Task Mjlab-BallKick-Flat-MicroDuck from pollen-robotics/microduck_rl at 53b8971, the maker's budget of 10,000 iterations, 4096 parallel envs, 161 min (0.97 s/iteration) on one RTX 5090.
  • The policy is blind to the ball, as the task file intends: the actor gets no ball position or velocity (the real robot has no ball sensor), only the critic sees it. The ball is spawned 9 cm in front of the right toe with +-1.5 cm of noise, and an always-on reward for keeping the left foot grounded makes it a right-foot kick. Aim the robot so the ball sits at the right toe before running it.
  • Proof takes with mjlab play (1 env, standing spawn, 12 s episode with the first 4.1 s logged, camera tracking the ball), read from the ball position, trunk height and body-frame gravity every 0.1 s, not from the video: 3 of 3 takes kick and stay standing. The ball is moving by 0.2 s and has travelled 1.03 to 1.13 m by 1.0 s and 2.11 to 2.24 m by 2.0 s. The trunk stays between 100 and 123 mm with gravity pointing straight down in the body frame, and there is no environment reset inside any take. The iteration-0 control does not move the ball at all in the first 2 s.
  • duration_s is 1.0: foot contact is over by 0.3 s and the trunk is back at a steady 114 mm by 0.5 s in the takes.
  • The mean reward reached 92.9 by iteration 1,000 and ended at 90.1 at 10,000 (1.3 at iteration 1, 70.3 at 500). A 1,000-iteration run would very likely have given the same kick.
  • Not tested: any ball placement other than the toe, beyond the +-1.5 cm the training saw, and the left foot (Pollen ships a separate left-kick policy).
  • Clip, reward curve and proof-take logs: https://huggingface.co/datasets/witcheer/microduck-skill-tree/tree/main/level-07-kick-right

Built as level 7 of a sim-first skill tree for a Microduck that is still on order. Levels 1 to 6 (walk, stand up, sit and stand, rough-ground walk, walk plus recover, roulade) came before it; more policies from the same tree appear under witcheer/microduck-*.

Downloads last month

-

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

Collection including witcheer/microduck-kick-right