Downloads · 30 days
88
98% of all-time downloads
juicenv/duckwing-v80-roller-skating
duckwing-v80-roller-skating is a robotics model from juicenv. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for microduck. The card lists the license as apache-2.0.
Historical V80 release. DuckWing V89 is the recommended general-purpose skating release, with improved high-speed braking and the published 180°, 360° and 720° controller bundle. This V80 repository preserves its trai…
Downloads · 30 days
88
98% of all-time downloads
All-time downloads
90
Public
Repo size
16.8 MB
Likes
1
Public
Click a slice to open those files.
.onnx8.4 MB · 99%
From the Hugging Face model README
Historical V80 release. DuckWing V89 is the recommended general-purpose skating release, with improved high-speed braking and the published 180°, 360° and 720° controller bundle. This V80 repository preserves its trained graph and weights, numeric evidence and interface, with a documented metadata-only privacy cleanup. V89 requires a 256-frame
[1,15616]observation-history input; check the version-specific model contract and adapter before switching. V90 Laguna is a separate racing research bundle with failed combined-transition qualification. The GitHub workbench is the canonical source for these published releases.
DuckWing V80 is a 50 Hz ONNX control policy for the Pollen Robotics MicroDuck
with passive roller skates. It is the historical V80 simulation-qualified DuckLab
release under the official evaluation physics: CPU MuJoCo, a 1.75 A XL330
current limit, and 0.003 passive-wheel bearing friction.
V80 preserves the qualified DuckWing V67 policy exactly at commands up to and
including 0.5 m/s. Above 0.5 m/s, it adds a small state-feedback residual
to the left/right hip-pitch, knee, and ankle actions. The result is a modest
speed gain with materially better heading, drift, tilt, and grounded contact.
Status: simulation-qualified hardware candidate. It has not been validated on a physical robot. Do not treat the simulation limits as a hardware safety certification.
All values below use wheel friction 0.003, current limit 1.75 A, 50 Hz
control, and 200 Hz physics.
The public comparison below uses the official Pollen roller policy as the baseline under the same Race5 evaluator and physics—not DuckWing V67.
| Metric | DuckWing V80 | Pollen roller baseline | V80 improvement |
|---|---|---|---|
| Race sustained speed | 2.267 mph | 1.066 mph | 2.13× |
| Verified top speed (0.5 s) | 3.084 mph | 1.283 mph | 2.40× |
| 100 ft elapsed time | 25.729 s | 57.589 s | 55.3% sooner |
| First-second acceleration | 0.466 m/s² | 0.323 m/s² | 44.3% higher |
| Maximum lateral drift | 0.403 ft | 1.250 ft | 67.8% less |
| Maximum heading error | 9.54° | 11.06° | 13.7% less |
V80 wins all six direct comparisons against the Pollen baseline and passes all 15 DuckLab Race5 qualification gates. In additional V80-only tests, its clean 20-second screen measured 2.574 mph mean world speed, and five randomized 20-second starts averaged 2.497 mph sustained speed with 100% survival.
The often-mentioned 5.405 mph donor result is not V80's official-friction speed. It was an instantaneous peak from an older policy at zero wheel friction and is included only as research context.
obs, float32, shape [1, 61]actions, float32, shape [1, 14]scene_rollers.xmlThe observation layout is:
| Slice | Signal |
|---|---|
0:3 | base angular velocity |
3:6 | projected gravity |
6:20 | 14 relative joint positions |
20:34 | 14 joint velocities |
34:48 | previous action |
48:51 | twist command [vx, vy, wz] |
51:55 | head command |
55:61 | body command |
The speed residual activates only when twist[0] > 0.5. Official evaluations
use twist = [0.8, 0, line_correction]; low-speed steering, braking, idle, and
other V67 behavior remain unchanged by the V80 residual.
git clone --recurse-submodules https://github.com/jvpflum/microduck-lab.git
cd microduck-lab
hf download juicenv/duckwing-v80-roller-skating policy.onnx --local-dir policies/duckwing-v80
upstream/microduck_rl/.venv/bin/python tools/evaluate_speed_discovery.py \
policies/duckwing-v80/policy.onnx \
--episodes 5 --duration 20 --command-mps 0.8 \
--current-limit 1.75 --wheel-friction 0.003 --race-line-control \
--yaw-kp 0.70 --lateral-kp 0.22 --yaw-kd 0.07 --max-correction 0.15
For an interactive simulation after installing the upstream environment:
cd upstream/microduck_rl
uv run scripts/infer_policy.py --roller \
--walking ../../policies/duckwing-v80/policy.onnx \
--new-cmd-obs --current-limit 1.75
jvpflum/microduck-lab at
a1f1f580994574860f33659fe257917442cb028cjvpflum/microduck_rl at
0f1a54b328090a59346e46c0ee72278433cf62bfjoint_position=-0.075, joint_velocity=-0.010,
previous_action=-0.07018da0d664cc0de8e8bbcab6bea6811cd384413cfeda15094aaa5322a53c891e4policy.onnx — inference-complete policy with embedded normalizermanifest.json — machine-readable contract, provenance, and evaluationmetrics.json — concise V80 leader metricsevaluation-summary.json — complete deterministic Race5 evidencenoisy-start-evaluation.json — five randomized 20-second trialsclean-screen-evaluation.json — isolated clean-start screenverification.json — ONNX/interface verificationSHA256SUMS — checksums for every published fileLICENSE — Apache License 2.0Full research history and rebuilding tools are in microduck-lab.
Private training paths were removed from descriptive ONNX metadata and evaluation JSON. The trained graph, numeric results and single-frame [1,61] interface are preserved. privacy-normalization.json records graph equality, inference parity and the original/current download hashes. Historical model hashes in evaluator provenance still identify the originally evaluated bytes.