Microduck walkers fine-tuned inside Kimi-K3 worlds

Six walking policies for Pollen Robotics' Microduck biped, each fine-tuned with PPO inside one world that Kimi-K3 wrote as a Blender script. They start from Pollen's deployed walk, velstand.onnx in pollen-robotics/microduck-policies, and keep its exact input and output contract, so they are drop-in replacements for it. Simulation only: none of them has been run on a physical robot.

Code, worlds and full results: the GitHub repository (Duck Worlds). The built worlds are in the dataset suvadityamuk/microduck-duck-worlds.

Files

One ONNX file per world, named after the world's folder. Each is the checkpoint chosen by the run's selection step (it must turn correctly both ways in a turning probe, then the best task success on separate seeds wins).

File World Selected checkpoint Stock walker World-trained
a_chocolate_factory_with_molten_chocolat.onnx Chocolate factory iteration 100 0.14 0.23
a_hospital_corridor_with_wet_floor_zones.onnx Hospital corridor iteration 100 0.19 0.26
a_low_gravity_orbital_hab_module_with_ma.onnx Low-gravity orbital hab (1.62 m/s²) iteration 100 0.49 0.54
a_circus_ring_with_a_sawdust_floor_a_tig.onnx Circus ring iteration 300 0.55 0.59
an_abandoned_mine_with_rubble_rail_track.onnx Abandoned mine iteration 100 0.98 1.00
a_frozen_lake_ice_fishing_village_where.onnx Frozen-lake fishing village iteration 600 0.00 0.01

Rates are mean task success over 20 held-out episodes per task in that world, with a planner giving both walkers the same commands and randomised light, materials, camera, friction and servo voltage. The mine and frozen-lake gains are within noise. A policy is only meant for its own world: some tasks got worse, for example dock the cargo in the hab (0.95 to 0.45) and grand parade in the circus (0.50 to 0.05).

Inputs and outputs

Same as Pollen's velstand.onnx, with the observation normaliser baked in:

  • Input: a 61-D float vector at 50 Hz: gyro (3), projected gravity (3), joint positions minus the default pose (14), joint velocities (14), last action (14), command (13; the first three are forward, lateral and yaw velocity).
  • Output: 14 joint position offsets from the default pose, sent to the servos as position targets.

Training

PPO (rsl_rl) in mjlab with Pollen's microduck_rl recipe (commit b02fdea), with the world's colliders, gravity and surface friction replacing the flat floor. 4096 robots in parallel, 24 steps per iteration, 1500 iterations on one A100: half the robots replay planned routes through the room as open-loop commands, half walk the open floor around it with the recipe's random commands. Warm start from velstand.onnx with the observation normaliser frozen, a 40-iteration critic warm-up with the actor frozen, then learning rate 2e-4. Yaw-rate tracking reward weight 3.0, kernel std 0.32.

Licence

Apache-2.0, like the base policies.

Downloads last month

-

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

Model tree for suvadityamuk/microduck-duck-worlds-policies

Quantized
(2)
this model