Instructions to use djduecaster/dfreq-rollers with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Microduck
How to use djduecaster/dfreq-rollers 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 djduecaster/dfreq-rollers
- Notebooks
- Google Colab
- Kaggle
Upload 3 files
Browse files- README.md +72 -0
- manifest.json +129 -0
- policy.onnx +3 -0
README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
tags:
|
| 3 |
+
- microduck
|
| 4 |
+
- robotics
|
| 5 |
+
- onnx
|
| 6 |
+
- microduck-slot:walk
|
| 7 |
+
library_name: microduck
|
| 8 |
+
pipeline_tag: robotics
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
# dfreq-rollers
|
| 12 |
+
|
| 13 |
+
**Published on Hugging Face.** Repository: `djduecaster/dfreq-rollers`; proposed Arena entry: `dfreq-rollers`. Not submitted to Arena.
|
| 14 |
+
|
| 15 |
+
A small, event-specific command calibration of Pollen Robotics’ Roller Sprint reference feedback policy. The local full official sweep scored **3.112 seconds, 5/5 finishes**, versus **3.136 seconds** for the unchanged reference: **0.024 seconds (about 0.77%) faster**. The selected five-start result was repeated exactly. This is not a server-verified score or leaderboard-record claim.
|
| 16 |
+
|
| 17 |
+
## Credit and actual contribution
|
| 18 |
+
|
| 19 |
+
The base is [Pollen’s Roller Sprint reference](https://huggingface.co/pollen-robotics/microduck-roller-sprint-2m-reference/tree/c72fb92594e8b415487e87dfeed509141afc5e25), revision `c72fb92594e8b415487e87dfeed509141afc5e25`.
|
| 20 |
+
|
| 21 |
+
- Base SHA-256: `01edf63a529a8396d46dac62bb427fda1ce67685611e72ddf790bf46f610c82a`.
|
| 22 |
+
- Candidate `policy.onnx`: **794,263 bytes**, SHA-256 `2092a1d8e5b30f2778f227ddf6f26f8eda6487236279f8663bdff71e12805590`.
|
| 23 |
+
- **All original neural weights and normalizer bytes are unchanged. No new training or fine-tuning occurred.** The manifest’s `training` field describes Pollen’s upstream training, not work performed for this calibration.
|
| 24 |
+
|
| 25 |
+
Exactly one predeclared offset was tested. Before the original normalizer, only raw forward-command observation component 48 (zero-based) is mapped:
|
| 26 |
+
|
| 27 |
+
```text
|
| 28 |
+
inside = (vx_external >= float32(0.3)) AND (vx_external <= float32(2.0))
|
| 29 |
+
vx_internal = Where(inside,
|
| 30 |
+
Clip(float32(vx_external + float32(-0.05)), float32(0.3), float32(2.0)),
|
| 31 |
+
vx_external)
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
The prefix contains only standard ONNX Split/comparison/And/Add/Clip/Where/Concat operations. Removing it and reversing its single input rewire restores the original model bytes exactly. The other 60 observations—including genuine actual previous-action feedback, lateral command and heading error—are unchanged. There is no clock, step counter, seed classifier/table, runtime metadata conditioning or prerecorded action sequence. This remains neural state feedback with a static command calibration, not a newly trained network.
|
| 35 |
+
|
| 36 |
+
## Interface and command semantics
|
| 37 |
+
|
| 38 |
+
Model API 1: **61 raw float32 observations → 14 float32 actions at 50 Hz**, **rollers** rig, embedded normalizer, perpetual `walk` slot and standing entry pose. The upstream twist convention is `[push: 0 coast, >0 push m/s, <0 brake; lateral 0; heading error rad]`; the Arena commands `[vx,0,0]`. Head/body commands remain unused zeros.
|
| 39 |
+
|
| 40 |
+
**Zero/coast, signed zero, negative/brake and positive commands outside the inclusive calibrated interval are returned bit-exactly unchanged.** Positive non-grid values *inside* the interval are calibrated too. This preserves the upstream input modes, not a new stopping/braking or real-robot safety guarantee.
|
| 41 |
+
|
| 42 |
+
The fixed mask creates a discontinuity just above the upper bound: float32(2.0) maps to approximately 1.95, while the next representable larger input is unchanged. No smoothness claim is made. At the selected external 1.1 command, the exact internal float32 value is **1.0500000715255737**, not decimal1.05.
|
| 43 |
+
|
| 44 |
+
**Simulation-only and event-specific.** No physical-robot deployment, all-speed stability or general-purpose controller safety has been established. No robot-loading recommendation is provided.
|
| 45 |
+
|
| 46 |
+
## Local verification
|
| 47 |
+
|
| 48 |
+
The unchanged Arena runner v4 performed the complete official 18-command scan on seed 1, then the three selected commands across the remaining four starts—**30 official races**. It selected external **1.1 m/s**:
|
| 49 |
+
|
| 50 |
+
| Start seed | Finish time (s) |
|
| 51 |
+
| --- | ---: |
|
| 52 |
+
| 1 | 3.10 |
|
| 53 |
+
| 2 | 3.08 |
|
| 54 |
+
| 3 | 3.16 |
|
| 55 |
+
| 4 | 3.08 |
|
| 56 |
+
| 5 | 3.14 |
|
| 57 |
+
|
| 58 |
+
The separate five-race confirmation reproduced all 20 observation/action/timed-trace/untimed-settle arrays exactly. Before the candidate screen, the unchanged reference also matched its 20 cached baseline arrays. Relative to the reference, three starts improved, one tied and one became slower; the aggregate improved from 784 to 778 timed control ticks.
|
| 59 |
+
|
| 60 |
+
The bounded investigation used **one candidate export, 1818 saved-input preflight evaluations, 45 native races and 19,514 controls**, including settling. The preflight compared 909 candidate outputs byte-for-byte against the unchanged base on independently mapped observations. Source/math review and an independent saved-output audit passed. No physics or neural weights were changed.
|
| 61 |
+
|
| 62 |
+
These original five starts were used for screening and selection: **they are optimization data, not held-out robustness evidence**. Other commands included falls and timeouts. Exact local repetition does not guarantee identical server results or future eligibility.
|
| 63 |
+
|
| 64 |
+
## Upstream training provenance
|
| 65 |
+
|
| 66 |
+
Pollen’s manifest identifies task `Mjlab-RollerSprint2m-MicroDuck`, repository `pollen-robotics/microduck-challenges`, commit `611b6453c`, checkpoint 2999, seed 1, 4096 environments and 3000 iterations, using `mjlab-microduck 0.1.0 @ 981a279c6`. Those are **upstream training facts**; no training was performed for `dfreq-rollers`.
|
| 67 |
+
|
| 68 |
+
## Rights and publication status
|
| 69 |
+
|
| 70 |
+
Pollen Robotics’ upstream weights are credited. No standalone open-source model license is asserted or invented. This publication is an attributed Hugging Face service-scoped remix under applicable platform terms, not a blanket off-platform redistribution grant. Publication was authorized separately by the user.
|
| 71 |
+
|
| 72 |
+
This repository has been published with user authorization. No Arena entry has been submitted.
|
manifest.json
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 2,
|
| 3 |
+
"model_api": 1,
|
| 4 |
+
"obs_len": 61,
|
| 5 |
+
"action_len": 14,
|
| 6 |
+
"robot": {
|
| 7 |
+
"model": "microduck",
|
| 8 |
+
"hw_rev": 1,
|
| 9 |
+
"servos": "xl330",
|
| 10 |
+
"control_hz": 50,
|
| 11 |
+
"accessories": [
|
| 12 |
+
"rollers"
|
| 13 |
+
]
|
| 14 |
+
},
|
| 15 |
+
"name": "dfreq-rollers",
|
| 16 |
+
"kind": "perpetual",
|
| 17 |
+
"entry_pose": "standing",
|
| 18 |
+
"description": "Simulation-only Roller Sprint command calibration of unchanged Pollen reference neural weights. A fixed -0.05 m/s offset/clamp applies only inside positive F32 [0.3, 2.0]; zero/coast, negative/brake and commands outside the interval pass through unchanged. Local full official sweep and exact repeat: 3.112 s, 5/5. No new neural training or public score claim.",
|
| 19 |
+
"command": {
|
| 20 |
+
"encoding": "constant",
|
| 21 |
+
"idle": [
|
| 22 |
+
0.0,
|
| 23 |
+
0.0,
|
| 24 |
+
0.0
|
| 25 |
+
],
|
| 26 |
+
"twist": "[push: 0 coast, >0 push m/s, <0 brake; lateral 0; heading error rad]; the Arena commands [vx, 0, 0]",
|
| 27 |
+
"head": "unused (zeros)",
|
| 28 |
+
"body": "unused (zeros)"
|
| 29 |
+
},
|
| 30 |
+
"duration_s": null,
|
| 31 |
+
"slot": "walk",
|
| 32 |
+
"training": {
|
| 33 |
+
"repo": "https://github.com/pollen-robotics/microduck-challenges.git",
|
| 34 |
+
"commit": "611b6453c",
|
| 35 |
+
"branch": "main",
|
| 36 |
+
"dirty": false,
|
| 37 |
+
"command": [
|
| 38 |
+
"train",
|
| 39 |
+
"Mjlab-RollerSprint2m-MicroDuck",
|
| 40 |
+
"--env.scene.num-envs",
|
| 41 |
+
"4096",
|
| 42 |
+
"--agent.max-iterations",
|
| 43 |
+
"3000",
|
| 44 |
+
"--agent.seed",
|
| 45 |
+
"1",
|
| 46 |
+
"--agent.logger",
|
| 47 |
+
"tensorboard",
|
| 48 |
+
"--agent.run-name",
|
| 49 |
+
"reference"
|
| 50 |
+
],
|
| 51 |
+
"seed": 1,
|
| 52 |
+
"base": "mjlab-microduck 0.1.0 @ 981a279c6",
|
| 53 |
+
"started": "2026-09-26T04:21:50Z",
|
| 54 |
+
"task_id": "Mjlab-RollerSprint2m-MicroDuck",
|
| 55 |
+
"checkpoint": 2999,
|
| 56 |
+
"source_file": "model_2999.pt"
|
| 57 |
+
},
|
| 58 |
+
"arena": {
|
| 59 |
+
"event": "roller-sprint-2m"
|
| 60 |
+
},
|
| 61 |
+
"artifact": {
|
| 62 |
+
"file": "policy.onnx",
|
| 63 |
+
"bytes": 794263,
|
| 64 |
+
"sha256": "2092a1d8e5b30f2778f227ddf6f26f8eda6487236279f8663bdff71e12805590"
|
| 65 |
+
},
|
| 66 |
+
"provenance": {
|
| 67 |
+
"base_model": "pollen-robotics/microduck-roller-sprint-2m-reference",
|
| 68 |
+
"base_revision": "c72fb92594e8b415487e87dfeed509141afc5e25",
|
| 69 |
+
"base_sha256": "01edf63a529a8396d46dac62bb427fda1ce67685611e72ddf790bf46f610c82a",
|
| 70 |
+
"original_neural_parameters_byte_exact": true,
|
| 71 |
+
"training_field_describes_upstream_Pollen_model": true,
|
| 72 |
+
"new_neural_training": false,
|
| 73 |
+
"original_contribution": "One predeclared static, memoryless positive-domain velocity-command calibration; no learned-weight update. Source/math reviewed, locally evaluated by unchanged official sweep and exact repeat."
|
| 74 |
+
},
|
| 75 |
+
"command_calibration": {
|
| 76 |
+
"input_index_zero_based": 48,
|
| 77 |
+
"guard": "float32(0.3)<=vx_external<=float32(2.0)",
|
| 78 |
+
"inside_arithmetic": "Clip(float32(vx_external+float32(-0.05)),float32(0.3),float32(2.0))",
|
| 79 |
+
"outside_arithmetic": "Return original float32 vx_external bits unchanged.",
|
| 80 |
+
"offset_float32": -0.05000000074505806,
|
| 81 |
+
"lower_bound_float32": 0.30000001192092896,
|
| 82 |
+
"upper_bound_float32": 2.0,
|
| 83 |
+
"other_60_observation_values_unchanged": true,
|
| 84 |
+
"lateral_and_heading_error_unchanged": true,
|
| 85 |
+
"normalizer_follows_calibration": true,
|
| 86 |
+
"actual_previous_action_history": true,
|
| 87 |
+
"clock_or_seed_conditioning": false,
|
| 88 |
+
"coast_and_brake_mode_note": "Zero/coast including signed zero and negative/brake values retain original input bits. This preserves the upstream command mode, not a new stopping or hardware-safety guarantee.",
|
| 89 |
+
"boundary_note": "Discontinuous just above 2: float32(2) maps to about 1.95; its next representable larger input is outside the interval and is unchanged. Positive off-grid values inside the interval are calibrated too."
|
| 90 |
+
},
|
| 91 |
+
"local_evaluation": {
|
| 92 |
+
"date": "2026-10-25",
|
| 93 |
+
"event": "roller-sprint-2m",
|
| 94 |
+
"runner_version": 4,
|
| 95 |
+
"full_official_sweep_races": 30,
|
| 96 |
+
"mean_finish_s": 3.112,
|
| 97 |
+
"external_command_m_s": 1.1,
|
| 98 |
+
"internal_float32_command_m_s": 1.0500000715255737,
|
| 99 |
+
"seeds_finished": 5,
|
| 100 |
+
"per_seed_s": [
|
| 101 |
+
3.1,
|
| 102 |
+
3.08,
|
| 103 |
+
3.16,
|
| 104 |
+
3.08,
|
| 105 |
+
3.14
|
| 106 |
+
],
|
| 107 |
+
"reference_mean_s": 3.136,
|
| 108 |
+
"gain_s": 0.024,
|
| 109 |
+
"sum_timed_ticks_reference": 784,
|
| 110 |
+
"sum_timed_ticks_candidate": 778,
|
| 111 |
+
"exact_baseline_arrays": 20,
|
| 112 |
+
"exact_repeat_arrays": 20,
|
| 113 |
+
"all_preparation_and_confirmation_races": 45,
|
| 114 |
+
"all_control_steps_including_settle": 19514,
|
| 115 |
+
"saved_preflight_ORT_rows": 1818,
|
| 116 |
+
"candidate_exports": 1,
|
| 117 |
+
"fresh_seed_robustness_claim": false,
|
| 118 |
+
"server_submission_verified": false,
|
| 119 |
+
"independent_saved_audit_sha256": "a82a205e9fd2a9834332df650bb425df48f909ee92fd0873243687269788ce61",
|
| 120 |
+
"terminal_no_weights_archive_sha256": "bc511c2fa451d23a887e79d13130900983b95ea5f5813325dca9711ea7b42999"
|
| 121 |
+
},
|
| 122 |
+
"publication_status": {
|
| 123 |
+
"state": "published_public_huggingface_not_submitted",
|
| 124 |
+
"proposed_repo": "djduecaster/dfreq-rollers",
|
| 125 |
+
"proposed_entry": "dfreq-rollers",
|
| 126 |
+
"publication_authorized": true
|
| 127 |
+
},
|
| 128 |
+
"rights_notice": "Pollen Robotics upstream neural weights are credited; no standalone OSS model license is asserted or invented. This publication is an attributed Hugging Face service-scoped remix under applicable platform terms, not a blanket off-platform redistribution grant. Publication was authorized separately by the user."
|
| 129 |
+
}
|
policy.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2092a1d8e5b30f2778f227ddf6f26f8eda6487236279f8663bdff71e12805590
|
| 3 |
+
size 794263
|