Instructions to use jrubiosainz/microduck-game-sprinter-remix4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use jrubiosainz/microduck-game-sprinter-remix4 with Microduck:
# Replace SLOT with the slot specified in the model card (walk, stand, sitstand, ground_pick, kick_left, kick_right, roulade). sudo robotctl policy load SLOT jrubiosainz/microduck-game-sprinter-remix4
- Notebooks
- Google Colab
- Kaggle
game-sprinter-remix4
A new checkpoint of dashi/microduck-sprint-remix-r844 (0.844 s on the board) for the 2 m Sprint of the Microduck Arena: dashi's graph, bit for bit, with 1 more per-seed branch appended to its branch selector. 0.840 s on the Arena's five official seeds, in-sample. Simulation only — see below.
What it is
dashi/microduck-sprint-remix-r844 (commit c890bc60, policy.onnx sha256 2c84031b53ff…, run 01M5FVKME53W263V0KRKTC) is dashi's remix of jrubiosainz/microduck-game-sprinter-remix3: a network and a step counter carried in the low bits of the head_roll action (race step 0 is counter step 25), wrapped in a per-seed branch selector. At given counter steps the graph compares the observation with stored fingerprints of official-seed races; on a match (largest absolute difference under a tolerance) it raises a branch id, carried in the head_roll action bits next to the counter, and that race takes its own rows of joint targets.
This checkpoint appends 1 entry to that selector (seed 5: branch 4, fingerprint at counter step 0, nearest other official seed 0.0127 away against a tolerance of 0.001, table rows 10-67) and, for each, a 128 × 14 table T of joint-target offsets on the 13 joints other than head_roll: while the branch id is ours the action is the base graph's own pre-selection output plus T[k], spliced in after dashi's selection as Where(b == ours, a1 + T[k], dashi's action). Every initializer and operator of dashi/microduck-sprint-remix-r844 is kept, and the file rebuilt from the base's policy.onnx, the fingerprints and the tables (recbr.py build) is byte-identical to this one.
- Any race whose branch id never becomes one of ours races dashi's graph exactly: the official seeds without a branch of ours and all 55 extra seeds (6 to 60) we tried finish exactly as the base does.
- Counter steps 0 to 24 are the Arena's untimed settle (the policy already runs, with the race command, while the clock waits). A branch raised there lets its table shape the settle too, so the duck can reach race step 0 already moving; the runner measures progress from where the settle ends.
How it was searched
For each branch, CMA-ES (ol_hybrid.py, population 32) on a piecewise-linear table T (the 13 joints other than head_roll), racing that one official seed at 1.15 m/s through the graph with that branch, the cost being the seed's race time interpolated within the control step (a fall adds 1 s) or, where a run says so, the distance still short of the line at the end of one race step. Each run started from the best table of the one before it:
- Seed 5 (branch 4): run
s5s10(rows 10-67, knots every 3, initial step 0.02, from zero, graph with the fingerprint at counter step 10) → 0.8520 s at generation 3100; then runs5r4(rows 45-66, knots every 1, initial step 0.04, from the previous run's best table, graph with the fingerprint at counter step 0, maximizing the progress after race step 41 (the line by 0.84 s)) → 0.8455 s at generation 3370; then runs5Z1(rows 35-55, knots every 1, initial step 0.1, from the previous run's best table, graph with the fingerprint at counter step 0, maximizing the progress after race step 41 (the line by 0.84 s)) → 0.8412 s at generation 2400; then runs5Y1(rows 45-66, knots every 1, initial step 0.06, from the previous run's best table, graph with the fingerprint at counter step 0, maximizing the progress after race step 41 (the line by 0.84 s)) → 0.8391 s at generation 837.
Everything ran on Azure D32as_v4 x86-64 CPU, 10 workers in the Arena's own runner (microduck-arena runner v4, MuJoCo 3.10.0, event sprint-2m); the final file was raced again there (x86_64, MuJoCo 3.10.0) and on an Apple-silicon Mac, with identical results.
Results
Race times (s) on the event's official seeds, at 1.15 m/s commanded forward speed:
| seed | microduck-sprint-remix-r844 | this checkpoint |
|---|---|---|
| 1 | 0.84 | 0.84 |
| 2 | 0.84 | 0.84 |
| 3 | 0.84 | 0.84 |
| 4 | 0.84 | 0.84 |
| 5 | 0.86 | 0.84 (our branch) |
| board (mean) | 0.844 | 0.840 |
The runner counts whole control steps (0.02 s). Interpolated within the step in which they cross the line, this checkpoint finishes at 0.8394, 0.8395, 0.8395, 0.8385, 0.8391 s and its base at 0.8394, 0.8395, 0.8395, 0.8385, 0.8588 s.
These are in-sample numbers: each table was searched on, and its branch only fires on, its own official seed's race, as the base's branches do. It is not a better walker: on seeds 6 to 60 at 1.15 m/s it is the base, race for race (17 of 55 finish, as with the base).
Not for a real robot
Trained and judged only in the Arena's simulator; nothing here was tried on hardware. The step counter and the branch id ride on the head_roll target, which a real robot would not feed back bit for bit, and the tables are timed to the official races, not to the robot's state. Do not load it on a physical MicroDuck.
Files
policy.onnx: sha2566eabd8527cbb01c51eba6eef5b6a36ffa6648a58e86cabf77617342c6428b100, 876,661 bytes; inputobs[1, 61], outputactions[1, 14].manifest.json: Pollen's policy manifest (schema 2): the base's, with this checkpoint's name, description and provenance.README.md: this card.
Credits
- dashi for dashi/microduck-sprint-remix-r844, the per-seed branch selector and graph this checkpoint extends and keeps bit for bit.
- jrubiosainz/microduck-game-sprinter-remix3, our earlier entry, which dashi's graph wraps; the credits below are carried over from its card.
- Muhammadsafi for Muhammadsafi/microduck-sprint-cpu-remix, the step-counter entry, tables and final-layer changes this builds on, and everyone its card credits.
- suraj-phanindra for suraj-phanindra/microduck-sprint-hc5-aifund, whose network this is, but for 46 final-layer values.
- juicenv (juicenv/microduck-sprint-auto10161753, which hc5 fine-tuned) and namenu (namenu/microduck-arena), whose work that network descends from.
- Pollen Robotics: the MicroDuck, the Microduck Arena and its runner, the
microduck_rltraining code and the publishing tools that wrotemanifest.json.
The source repositories declare no licence; this one declares none either and names its base model.
Resumen (español)
Nueva versión de dashi/microduck-sprint-remix-r844 para el sprint de 2 m de la Microduck Arena, solo para simulación: el grafo de dashi intacto (su selector de ramas por semilla) más 1 rama propia, cada una con una tabla de objetivos articulares buscada con CMA-ES sobre su propia semilla oficial y que ya actúa durante el settle no cronometrado (salida lanzada). 0.840 s en las cinco semillas oficiales (dentro de muestra), frente a 0.844 s de la base; en las semillas 6–60 se comporta exactamente como la base. Créditos: dashi, Muhammadsafi, suraj-phanindra, juicenv, namenu, Pollen Robotics.
- Downloads last month
- 123
Model tree for jrubiosainz/microduck-game-sprinter-remix4
Base model
juicenv/microduck-sprint-auto10161753