Restore pre-incident release content
Browse filesRestore file content from af0e6b50b5840b892a09b0937a330cb7946b3e0c after unintended stale-instruction replay. Preserve repository visibility and history.
- .gitattributes +0 -1
- README.md +22 -25
- SHA256SUMS +9 -5
- config.json +1 -1
- legacy/iteration-8749/checkpoint.pt +3 -0
- legacy/iteration-8749/manifest.json +103 -0
- legacy/iteration-8749/media/preview.mp4 +3 -0
- legacy/iteration-8749/policy.onnx +3 -0
- manifest.json +20 -77
- media/preview.mp4 +1 -1
- media/run-into-mat.mp4 +2 -2
.gitattributes
CHANGED
|
@@ -4,4 +4,3 @@
|
|
| 4 |
checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
| 5 |
legacy/iteration-8749/checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
lineage/iteration-11748/checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
media/run-into-mat-preview.gif filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 4 |
checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
| 5 |
legacy/iteration-8749/checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
lineage/iteration-11748/checkpoint.pt filter=lfs diff=lfs merge=lfs -text
|
|
|
README.md
CHANGED
|
@@ -22,30 +22,17 @@ lateral drift remain substantial.
|
|
| 22 |
|
| 23 |
[Open the full silent MP4](media/preview.mp4).
|
| 24 |
|
| 25 |
-
##
|
| 26 |
|
| 27 |
-
<
|
| 28 |
-
<img
|
| 29 |
-
src="https://hfviewer.com/api/card.svg?source=HannesVonEssen%2Fmicroduck-running&granularity=auto&v=20260911-visible-card"
|
| 30 |
-
alt="Architecture graph for HannesVonEssen/microduck-running. Open in hfviewer"
|
| 31 |
-
width="100%"
|
| 32 |
-
/>
|
| 33 |
-
</a>
|
| 34 |
-
|
| 35 |
-
## Run-into-mat demonstration — iteration 8,749
|
| 36 |
-
|
| 37 |
-
<video src="https://huggingface.co/HannesVonEssen/microduck-running/resolve/main/media/run-into-mat.mp4" width="720" controls autoplay loop muted playsinline preload="metadata"></video>
|
| 38 |
|
| 39 |
-
[
|
| 40 |
-
|
| 41 |
-
This is a scripted simulation demonstration using the earlier iteration-8,749
|
| 42 |
-
controller. The policy has no obstacle perception and did not learn to react to
|
| 43 |
-
the mat. The mat, collision setup, camera, and post-impact motor cutoff are
|
| 44 |
-
scripted; the video has no added impact effects. Matching training and task
|
| 45 |
-
source is in
|
| 46 |
-
[`Vottivott/microduck-playground`](https://github.com/Vottivott/microduck-playground).
|
| 47 |
-
The default downloadable policy remains iteration 12,195.
|
| 48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
## Versions
|
| 51 |
|
|
@@ -53,6 +40,7 @@ The default downloadable policy remains iteration 12,195.
|
|
| 53 |
|---|---:|---|---|
|
| 54 |
| Default robust candidate | 12,195 | [`policy.onnx`](policy.onnx), [`checkpoint.pt`](checkpoint.pt) | Recommended starting point for further simulation and cautious hardware research |
|
| 55 |
| Speed-focused parent | 11,748 | [`lineage/iteration-11748/`](lineage/iteration-11748/) | 1.687 m/s frontier used to start robustification |
|
|
|
|
| 56 |
|
| 57 |
## Command
|
| 58 |
|
|
@@ -74,12 +62,12 @@ limiter.
|
|
| 74 |
## Try it in simulation
|
| 75 |
|
| 76 |
The matching source is
|
| 77 |
-
[`Vottivott/microduck-playground@
|
| 78 |
|
| 79 |
```bash
|
| 80 |
git clone https://github.com/Vottivott/microduck-playground.git
|
| 81 |
cd microduck-playground
|
| 82 |
-
git checkout
|
| 83 |
uv sync
|
| 84 |
|
| 85 |
hf download HannesVonEssen/microduck-running policy.onnx config.json --local-dir policies/running
|
|
@@ -186,7 +174,7 @@ systematic forward pitching.
|
|
| 186 |
|
| 187 |
Training task `Mjlab-Running-Flat-MicroDuck`; PPO with `rsl_rl`; checkpoint
|
| 188 |
iteration 12,195. Source:
|
| 189 |
-
[`Vottivott/microduck-playground@
|
| 190 |
based on
|
| 191 |
[`pollen-robotics/microduck_rl@d424a0c`](https://github.com/pollen-robotics/microduck_rl/commit/d424a0c899f6b33cbd3daeb279913134349c0b63).
|
| 192 |
Exported with `scripts/export.py`, which bakes the observation normalizer into
|
|
@@ -197,9 +185,18 @@ the ONNX graph.
|
|
| 197 |
- `manifest.json` — machine-readable contract, evaluation, and provenance
|
| 198 |
- `eval/` — raw evaluation records and checkpoint/ONNX parity record
|
| 199 |
- `media/preview.mp4` — robust policy's 10-second close rollout
|
| 200 |
-
- `media/run-into-mat.mp4` — scripted
|
| 201 |
- `lineage/iteration-11748/` — speed-parent model, checkpoint, video, and evals
|
|
|
|
| 202 |
- `SHA256SUMS` — artifact integrity hashes
|
| 203 |
|
| 204 |
Format inspired by
|
| 205 |
[`RemiFabre/microduck-flamingo-cycle`](https://huggingface.co/RemiFabre/microduck-flamingo-cycle).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
[Open the full silent MP4](media/preview.mp4).
|
| 24 |
|
| 25 |
+
## Run-into-mat edit — legacy iteration 8,749
|
| 26 |
|
| 27 |
+
<video src="https://huggingface.co/HannesVonEssen/microduck-running/resolve/main/media/run-into-mat.mp4" controls loop muted playsinline></video>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
+
[Open the full silent run-into-mat MP4](media/run-into-mat.mp4).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
+
The mat video uses the preserved iteration-8,749 controller, not the new root
|
| 32 |
+
policy. Its obstacle, collision augmentation, camera treatment, post-impact
|
| 33 |
+
motor cutoff, and sparks are scripted demonstration elements. The policy has
|
| 34 |
+
no obstacle perception and did not learn to react to a mat. Both videos are
|
| 35 |
+
silent.
|
| 36 |
|
| 37 |
## Versions
|
| 38 |
|
|
|
|
| 40 |
|---|---:|---|---|
|
| 41 |
| Default robust candidate | 12,195 | [`policy.onnx`](policy.onnx), [`checkpoint.pt`](checkpoint.pt) | Recommended starting point for further simulation and cautious hardware research |
|
| 42 |
| Speed-focused parent | 11,748 | [`lineage/iteration-11748/`](lineage/iteration-11748/) | 1.687 m/s frontier used to start robustification |
|
| 43 |
+
| Legacy mat-video policy | 8,749 | [`legacy/iteration-8749/`](legacy/iteration-8749/) | Exact controller used in the run-into-mat edit |
|
| 44 |
|
| 45 |
## Command
|
| 46 |
|
|
|
|
| 62 |
## Try it in simulation
|
| 63 |
|
| 64 |
The matching source is
|
| 65 |
+
[`Vottivott/microduck-playground@828d950`](https://github.com/Vottivott/microduck-playground/commit/828d950134e29a8d04cbb51720a22c8729047fb7):
|
| 66 |
|
| 67 |
```bash
|
| 68 |
git clone https://github.com/Vottivott/microduck-playground.git
|
| 69 |
cd microduck-playground
|
| 70 |
+
git checkout 828d950134e29a8d04cbb51720a22c8729047fb7
|
| 71 |
uv sync
|
| 72 |
|
| 73 |
hf download HannesVonEssen/microduck-running policy.onnx config.json --local-dir policies/running
|
|
|
|
| 174 |
|
| 175 |
Training task `Mjlab-Running-Flat-MicroDuck`; PPO with `rsl_rl`; checkpoint
|
| 176 |
iteration 12,195. Source:
|
| 177 |
+
[`Vottivott/microduck-playground@828d950`](https://github.com/Vottivott/microduck-playground/commit/828d950134e29a8d04cbb51720a22c8729047fb7),
|
| 178 |
based on
|
| 179 |
[`pollen-robotics/microduck_rl@d424a0c`](https://github.com/pollen-robotics/microduck_rl/commit/d424a0c899f6b33cbd3daeb279913134349c0b63).
|
| 180 |
Exported with `scripts/export.py`, which bakes the observation normalizer into
|
|
|
|
| 185 |
- `manifest.json` — machine-readable contract, evaluation, and provenance
|
| 186 |
- `eval/` — raw evaluation records and checkpoint/ONNX parity record
|
| 187 |
- `media/preview.mp4` — robust policy's 10-second close rollout
|
| 188 |
+
- `media/run-into-mat.mp4` — scripted legacy iteration-8,749 demonstration
|
| 189 |
- `lineage/iteration-11748/` — speed-parent model, checkpoint, video, and evals
|
| 190 |
+
- `legacy/iteration-8749/` — exact mat-video policy, checkpoint, and clean video
|
| 191 |
- `SHA256SUMS` — artifact integrity hashes
|
| 192 |
|
| 193 |
Format inspired by
|
| 194 |
[`RemiFabre/microduck-flamingo-cycle`](https://huggingface.co/RemiFabre/microduck-flamingo-cycle).
|
| 195 |
+
|
| 196 |
+
<a href="https://hfviewer.com/HannesVonEssen/microduck-running?utm_source=huggingface&utm_medium=embedded_model_card&utm_campaign=HannesVonEssen__microduck-running_card&utm_content=embedded_card_open_viewer&from=embedded-model-card" target="_blank" rel="noopener">
|
| 197 |
+
<img
|
| 198 |
+
src="https://hfviewer.com/api/card.svg?source=HannesVonEssen%2Fmicroduck-running&granularity=auto&v=20260903-robust12195"
|
| 199 |
+
alt="Architecture graph for HannesVonEssen/microduck-running. Open in hfviewer"
|
| 200 |
+
width="100%"
|
| 201 |
+
/>
|
| 202 |
+
</a>
|
SHA256SUMS
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
-
|
| 2 |
052f6df6683fdae83deb369b7f2c7d13e45f87ed2907adee6e23b1ebf9dfe973 checkpoint.pt
|
| 3 |
-
|
| 4 |
d7a92e6ed3b48e72a07973ada6b74f3611bba38aaa8af9747ba0dabaa6ef12e0 eval/checkpoint-onnx-parity.json
|
| 5 |
f65329ffd1cfe990c244390ae076532537daee530832cf993f84d95b53e30c78 eval/high-grip-plain.json
|
| 6 |
eafe79f0f32f0430efb13bc95bb5896d8aaf1bff575a5dc973ba30aaa2f9d162 eval/nominal-backlash.json
|
|
@@ -8,12 +8,16 @@ ef08a1b9c1d4ac51e50d119197d2406d3352b31d7e986190449f7be058ac7236 eval/nominal-p
|
|
| 8 |
16918366d4208f433eabd3c24a1e57ae8923ab9fb064e70328347e64b5fd65b7 eval/released_12195.json
|
| 9 |
a9934320b9f4bf29ff4304ec48be01c519540188cfb679b945a13721de83cb24 eval/stress-backlash.json
|
| 10 |
abdb838ea7c4795451e97ddb27870404189f53fb1032084fa517a24e674df098 eval/stress-plain.json
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
1e79df200d8bb19b139ee1e74e6910c62434d57e792f632b66b10a73266894eb lineage/iteration-11748/checkpoint.pt
|
| 12 |
a81a468c789b890f935e14f478f992c632b01eeb25179da7d3ba252d663625be lineage/iteration-11748/evaluations.tar.gz
|
| 13 |
04eccc1fe13a8d00c813cac78e7ada8df65ab3b317757a0b2d0a4ac35574ca8f lineage/iteration-11748/manifest.json
|
| 14 |
ccd6757b53b591081fdf75dd3effe9a5743f5fac0c2a513fa48dfd5a32231b65 lineage/iteration-11748/policy.onnx
|
| 15 |
256ad675984d544204076986a7e09ea3a66c6070ec15ffb52921212e685e898c lineage/iteration-11748/preview.mp4
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
007707dd7779b2756ded67c58b2e9f94fe5071794a48c2b5a20d5f8d841efbeb policy.onnx
|
|
|
|
| 1 |
+
69c602a90098db9642a213367371153a8451e0b66e21eb48d682853f411e5d97 README.md
|
| 2 |
052f6df6683fdae83deb369b7f2c7d13e45f87ed2907adee6e23b1ebf9dfe973 checkpoint.pt
|
| 3 |
+
a9a1e9058642980c5f33b6c9d1ad54f513292429dc3dc57dcea8d3f6f2dc5950 config.json
|
| 4 |
d7a92e6ed3b48e72a07973ada6b74f3611bba38aaa8af9747ba0dabaa6ef12e0 eval/checkpoint-onnx-parity.json
|
| 5 |
f65329ffd1cfe990c244390ae076532537daee530832cf993f84d95b53e30c78 eval/high-grip-plain.json
|
| 6 |
eafe79f0f32f0430efb13bc95bb5896d8aaf1bff575a5dc973ba30aaa2f9d162 eval/nominal-backlash.json
|
|
|
|
| 8 |
16918366d4208f433eabd3c24a1e57ae8923ab9fb064e70328347e64b5fd65b7 eval/released_12195.json
|
| 9 |
a9934320b9f4bf29ff4304ec48be01c519540188cfb679b945a13721de83cb24 eval/stress-backlash.json
|
| 10 |
abdb838ea7c4795451e97ddb27870404189f53fb1032084fa517a24e674df098 eval/stress-plain.json
|
| 11 |
+
ce7707c985d84affda1befec172a8c0a72fafaa4d3476a26bec11dde9199907f legacy/iteration-8749/checkpoint.pt
|
| 12 |
+
1907518687eaccf35ef242da3326873b4c7849e31dd0dc0a677f747fc5b6a8f3 legacy/iteration-8749/manifest.json
|
| 13 |
+
69ce8b5f8855ac76d2413d90b176e770d22d22a72766dcc2dacf34ccbded58d6 legacy/iteration-8749/media/preview.mp4
|
| 14 |
+
b4e285fb3671f52c28f671bd4733a4e11fa17c21f40d25f52eaf2614f9e2e02a legacy/iteration-8749/policy.onnx
|
| 15 |
1e79df200d8bb19b139ee1e74e6910c62434d57e792f632b66b10a73266894eb lineage/iteration-11748/checkpoint.pt
|
| 16 |
a81a468c789b890f935e14f478f992c632b01eeb25179da7d3ba252d663625be lineage/iteration-11748/evaluations.tar.gz
|
| 17 |
04eccc1fe13a8d00c813cac78e7ada8df65ab3b317757a0b2d0a4ac35574ca8f lineage/iteration-11748/manifest.json
|
| 18 |
ccd6757b53b591081fdf75dd3effe9a5743f5fac0c2a513fa48dfd5a32231b65 lineage/iteration-11748/policy.onnx
|
| 19 |
256ad675984d544204076986a7e09ea3a66c6070ec15ffb52921212e685e898c lineage/iteration-11748/preview.mp4
|
| 20 |
+
0ef9f79b9105ed28c8b4d718dd669541de6dc906493732c5357e87a8cc92a0a3 manifest.json
|
| 21 |
+
942f0802cc0c6795769bd99a9991f866fee682890ea9ea6d71077f7d4eb5492b media/preview.mp4
|
| 22 |
+
13f3eaf36601928125a001c1e5f444285a7294b70dc53a186da195d8cb50bc9a media/run-into-mat.mp4
|
| 23 |
007707dd7779b2756ded67c58b2e9f94fe5071794a48c2b5a20d5f8d841efbeb policy.onnx
|
config.json
CHANGED
|
@@ -10,5 +10,5 @@
|
|
| 10 |
"control_frequency_hz": 50,
|
| 11 |
"checkpoint_iteration": 12195,
|
| 12 |
"source_repository": "Vottivott/microduck-playground",
|
| 13 |
-
"source_revision": "
|
| 14 |
}
|
|
|
|
| 10 |
"control_frequency_hz": 50,
|
| 11 |
"checkpoint_iteration": 12195,
|
| 12 |
"source_repository": "Vottivott/microduck-playground",
|
| 13 |
+
"source_revision": "828d950134e29a8d04cbb51720a22c8729047fb7"
|
| 14 |
}
|
legacy/iteration-8749/checkpoint.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ce7707c985d84affda1befec172a8c0a72fafaa4d3476a26bec11dde9199907f
|
| 3 |
+
size 4843445
|
legacy/iteration-8749/manifest.json
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 4,
|
| 3 |
+
"model_api": 1,
|
| 4 |
+
"name": "microduck-running",
|
| 5 |
+
"kind": "perpetual",
|
| 6 |
+
"obs_len": 61,
|
| 7 |
+
"action_len": 14,
|
| 8 |
+
"action_scale": 1.0,
|
| 9 |
+
"entry_pose": "standing",
|
| 10 |
+
"duration_s": null,
|
| 11 |
+
"status": "sim-only",
|
| 12 |
+
"description": "Forward-running policy for the stock MicroDuck on flat ground. This is checkpoint 8749 used in the run-into-mat video, not the later faster continuation.",
|
| 13 |
+
"command": {
|
| 14 |
+
"layout": "twist(3), head_pose(4), body_pose(6)",
|
| 15 |
+
"twist": [
|
| 16 |
+
"forward velocity command in m/s; trained through 1.65, recommended simulation evaluation point 1.80; not a hard speed limit",
|
| 17 |
+
"lateral velocity; use 0 (training range was only -0.02 to 0.02 m/s)",
|
| 18 |
+
"yaw rate; use 0 (training range was only -0.05 to 0.05 rad/s)"
|
| 19 |
+
],
|
| 20 |
+
"head": "unused; zeros",
|
| 21 |
+
"body": "unused; zeros",
|
| 22 |
+
"idle": [
|
| 23 |
+
0,
|
| 24 |
+
0,
|
| 25 |
+
0
|
| 26 |
+
],
|
| 27 |
+
"exact_zero_training_fraction": 0.03
|
| 28 |
+
},
|
| 29 |
+
"robot": {
|
| 30 |
+
"model": "microduck",
|
| 31 |
+
"hw_rev": 1,
|
| 32 |
+
"servos": "14x Dynamixel XL330",
|
| 33 |
+
"control_hz": 50,
|
| 34 |
+
"hardware_modifications_required": false
|
| 35 |
+
},
|
| 36 |
+
"training": {
|
| 37 |
+
"task_id": "Mjlab-Running-Flat-MicroDuck",
|
| 38 |
+
"algorithm": "PPO (rsl_rl)",
|
| 39 |
+
"repo": "Vottivott/microduck-playground",
|
| 40 |
+
"commit": "c5fcc50219fef01ac9931d0079c583ccbb29b689",
|
| 41 |
+
"upstream_base": "pollen-robotics/microduck_rl@d424a0c899f6b33cbd3daeb279913134349c0b63",
|
| 42 |
+
"run": "sweep-speed-r1",
|
| 43 |
+
"checkpoint_iteration": 8749,
|
| 44 |
+
"resumed_from": "highspeed-r6 iteration 6750",
|
| 45 |
+
"continuation_iterations": 2000,
|
| 46 |
+
"environment": {
|
| 47 |
+
"MICRODUCK_RUNNING_TARGET_MAX_SPEED": 1.65,
|
| 48 |
+
"MICRODUCK_RUNNING_SPEED_CAP": 1.8,
|
| 49 |
+
"MICRODUCK_RUNNING_ACTION_RATE_WEIGHT": -0.1,
|
| 50 |
+
"MICRODUCK_RUNNING_ENABLE_SYMMETRY": false,
|
| 51 |
+
"MICRODUCK_RUNNING_ENABLE_HEADING_FEEDBACK": false
|
| 52 |
+
},
|
| 53 |
+
"export": "scripts/export.py; observation normalizer baked into policy.onnx",
|
| 54 |
+
"source_commit": "c5fcc50219fef01ac9931d0079c583ccbb29b689",
|
| 55 |
+
"continuation_checkpoint": {
|
| 56 |
+
"path": "checkpoint.pt",
|
| 57 |
+
"sha256": "ce7707c985d84affda1befec172a8c0a72fafaa4d3476a26bec11dde9199907f",
|
| 58 |
+
"actor_exact_to_released_onnx": true,
|
| 59 |
+
"original_full_ppo_state": true
|
| 60 |
+
}
|
| 61 |
+
},
|
| 62 |
+
"eval": {
|
| 63 |
+
"sim_proxy": "mjlab / MuJoCo Warp with BAM XL330 M6 actuator model",
|
| 64 |
+
"command_speed_m_s": 1.8,
|
| 65 |
+
"num_envs": 256,
|
| 66 |
+
"duration_s": 8.0,
|
| 67 |
+
"survival_fraction": 0.9921875,
|
| 68 |
+
"mean_body_forward_speed_m_s": 1.6072514057159424,
|
| 69 |
+
"mean_initial_heading_displacement_speed_m_s": 1.3276939392089844,
|
| 70 |
+
"mean_absolute_heading_error_deg": 25.215665057096395,
|
| 71 |
+
"mean_absolute_lateral_displacement_m": 3.8727223873138428,
|
| 72 |
+
"flight_fraction": 0.6572428941726685,
|
| 73 |
+
"known_limits": "Heading drift is substantial. At a 2.00 m/s extrapolated command, mean body-forward speed was 1.6452 m/s and survival fell to 0.9336. Never tested on hardware."
|
| 74 |
+
},
|
| 75 |
+
"sim2real": {
|
| 76 |
+
"retained": [
|
| 77 |
+
"BAM XL330 M6 voltage control, back-EMF, current limiting, battery 6.5-8.2 V, and load-dependent sag",
|
| 78 |
+
"3-6 physics-step actuator delay, 0-1-step IMU delay, and one-control-step joint-velocity lag",
|
| 79 |
+
"foot friction 0.7-1.3",
|
| 80 |
+
"trunk mass/inertia +/-5%, trunk/head CoM +/-3 mm, armature +/-10%, BAM joint friction +/-10%",
|
| 81 |
+
"encoder bias +/-0.015 rad, IMU misalignment up to 6 degrees, and actor observation noise"
|
| 82 |
+
],
|
| 83 |
+
"relaxed": [
|
| 84 |
+
"flat terrain only",
|
| 85 |
+
"random push disturbances removed",
|
| 86 |
+
"non-backlash robot model",
|
| 87 |
+
"CoM/head-CoM and head/body pose-command widening curricula removed",
|
| 88 |
+
"weaker posture, angular-motion, foot-slip, and action-rate regularization; head/body pose tracking disabled",
|
| 89 |
+
"motor-gain randomization and randomized initial base tilt disabled in inherited base recipe"
|
| 90 |
+
],
|
| 91 |
+
"hardware_validated": false
|
| 92 |
+
},
|
| 93 |
+
"media": {
|
| 94 |
+
"preview": "media/preview.mp4",
|
| 95 |
+
"run_into_mat": "media/run-into-mat.mp4",
|
| 96 |
+
"run_into_mat_note": "Same policy checkpoint; obstacle, collision augmentation, camera treatment, motor cutoff, and sparks are scripted demo elements. The policy has no obstacle perception.",
|
| 97 |
+
"audio": false
|
| 98 |
+
},
|
| 99 |
+
"source_artifact_sha256": "b4e285fb3671f52c28f671bd4733a4e11fa17c21f40d25f52eaf2614f9e2e02a",
|
| 100 |
+
"artifacts": {
|
| 101 |
+
"policy_onnx_sha256": "b4e285fb3671f52c28f671bd4733a4e11fa17c21f40d25f52eaf2614f9e2e02a"
|
| 102 |
+
}
|
| 103 |
+
}
|
legacy/iteration-8749/media/preview.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:69ce8b5f8855ac76d2413d90b176e770d22d22a72766dcc2dacf34ccbded58d6
|
| 3 |
+
size 3133555
|
legacy/iteration-8749/policy.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b4e285fb3671f52c28f671bd4733a4e11fa17c21f40d25f52eaf2614f9e2e02a
|
| 3 |
+
size 793819
|
manifest.json
CHANGED
|
@@ -19,11 +19,7 @@
|
|
| 19 |
],
|
| 20 |
"head": "unused; zeros",
|
| 21 |
"body": "unused; zeros",
|
| 22 |
-
"idle": [
|
| 23 |
-
0,
|
| 24 |
-
0,
|
| 25 |
-
0
|
| 26 |
-
],
|
| 27 |
"exact_zero_training_fraction": 0.03
|
| 28 |
},
|
| 29 |
"robot": {
|
|
@@ -37,7 +33,7 @@
|
|
| 37 |
"task_id": "Mjlab-Running-Flat-MicroDuck",
|
| 38 |
"algorithm": "PPO (rsl_rl)",
|
| 39 |
"repo": "Vottivott/microduck-playground",
|
| 40 |
-
"commit": "
|
| 41 |
"upstream_base": "pollen-robotics/microduck_rl@d424a0c899f6b33cbd3daeb279913134349c0b63",
|
| 42 |
"checkpoint_iteration": 12195,
|
| 43 |
"resumed_from": "iteration 11748",
|
|
@@ -51,37 +47,13 @@
|
|
| 51 |
"MICRODUCK_RUNNING_FORWARD_PROGRESS_WEIGHT": 5.0,
|
| 52 |
"MICRODUCK_RUNNING_ENABLE_SYMMETRY": false,
|
| 53 |
"MICRODUCK_RUNNING_ENABLE_HEADING_FEEDBACK": false,
|
| 54 |
-
"foot_friction_range": [
|
| 55 |
-
|
| 56 |
-
1.3
|
| 57 |
-
],
|
| 58 |
-
"push_interval_s": [
|
| 59 |
-
3.0,
|
| 60 |
-
6.0
|
| 61 |
-
]
|
| 62 |
},
|
| 63 |
"robustification_stages": [
|
| 64 |
-
{
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
"trunk_com_m": 0.003,
|
| 68 |
-
"head_com_m": 0.003,
|
| 69 |
-
"initial_tilt_deg": 1.0
|
| 70 |
-
},
|
| 71 |
-
{
|
| 72 |
-
"updates": 150,
|
| 73 |
-
"push_m_s": 0.06,
|
| 74 |
-
"trunk_com_m": 0.005,
|
| 75 |
-
"head_com_m": 0.005,
|
| 76 |
-
"initial_tilt_deg": 1.5
|
| 77 |
-
},
|
| 78 |
-
{
|
| 79 |
-
"updates": 200,
|
| 80 |
-
"push_m_s": 0.1,
|
| 81 |
-
"trunk_com_m": 0.008,
|
| 82 |
-
"head_com_m": 0.006,
|
| 83 |
-
"initial_tilt_deg": 2.0
|
| 84 |
-
}
|
| 85 |
],
|
| 86 |
"export": "scripts/export.py; observation normalizer baked into policy.onnx",
|
| 87 |
"continuation_checkpoint": {
|
|
@@ -97,45 +69,20 @@
|
|
| 97 |
"duration_s": 10.0,
|
| 98 |
"warmup_s": 1.0,
|
| 99 |
"results": {
|
| 100 |
-
"nominal_plain": {
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
"stress_plain": {
|
| 106 |
-
"num_envs": 512,
|
| 107 |
-
"speed_m_s": 1.6349653005599976,
|
| 108 |
-
"survival": 0.98828125
|
| 109 |
-
},
|
| 110 |
-
"nominal_backlash": {
|
| 111 |
-
"num_envs": 256,
|
| 112 |
-
"speed_m_s": 1.6362495422363281,
|
| 113 |
-
"survival": 0.98828125
|
| 114 |
-
},
|
| 115 |
-
"stress_backlash": {
|
| 116 |
-
"num_envs": 256,
|
| 117 |
-
"speed_m_s": 1.6121970415115356,
|
| 118 |
-
"survival": 0.984375
|
| 119 |
-
},
|
| 120 |
-
"high_grip_stress": {
|
| 121 |
-
"num_envs": 512,
|
| 122 |
-
"speed_m_s": 1.6424154043197632,
|
| 123 |
-
"survival": 0.966796875
|
| 124 |
-
}
|
| 125 |
-
},
|
| 126 |
-
"stress": {
|
| 127 |
-
"push_m_s": 0.1,
|
| 128 |
-
"trunk_com_m": 0.01,
|
| 129 |
-
"head_com_m": 0.006,
|
| 130 |
-
"initial_tilt_deg": 2.0
|
| 131 |
},
|
|
|
|
| 132 |
"known_limits": "Heading and lateral drift remain substantial. Never tested on hardware."
|
| 133 |
},
|
| 134 |
"onnx_contract": {
|
| 135 |
"observation_normalizer_embedded": true,
|
| 136 |
"training_action_clipping": false,
|
| 137 |
"onnx_output_clip": false,
|
| 138 |
-
"checkpoint_parity_max_abs_error":
|
| 139 |
},
|
| 140 |
"sim2real": {
|
| 141 |
"retained": [
|
|
@@ -156,19 +103,15 @@
|
|
| 156 |
"hardware_validated": false
|
| 157 |
},
|
| 158 |
"versions": {
|
| 159 |
-
"default": {
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
"checkpoint": "checkpoint.pt",
|
| 163 |
-
"preview": "media/preview.mp4"
|
| 164 |
-
},
|
| 165 |
-
"speed_parent": {
|
| 166 |
-
"iteration": 11748,
|
| 167 |
-
"directory": "lineage/iteration-11748"
|
| 168 |
-
}
|
| 169 |
},
|
| 170 |
"media": {
|
| 171 |
"preview": "media/preview.mp4",
|
|
|
|
|
|
|
|
|
|
| 172 |
"audio": false
|
| 173 |
},
|
| 174 |
"source_artifact_sha256": "007707dd7779b2756ded67c58b2e9f94fe5071794a48c2b5a20d5f8d841efbeb",
|
|
|
|
| 19 |
],
|
| 20 |
"head": "unused; zeros",
|
| 21 |
"body": "unused; zeros",
|
| 22 |
+
"idle": [0, 0, 0],
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
"exact_zero_training_fraction": 0.03
|
| 24 |
},
|
| 25 |
"robot": {
|
|
|
|
| 33 |
"task_id": "Mjlab-Running-Flat-MicroDuck",
|
| 34 |
"algorithm": "PPO (rsl_rl)",
|
| 35 |
"repo": "Vottivott/microduck-playground",
|
| 36 |
+
"commit": "828d950134e29a8d04cbb51720a22c8729047fb7",
|
| 37 |
"upstream_base": "pollen-robotics/microduck_rl@d424a0c899f6b33cbd3daeb279913134349c0b63",
|
| 38 |
"checkpoint_iteration": 12195,
|
| 39 |
"resumed_from": "iteration 11748",
|
|
|
|
| 47 |
"MICRODUCK_RUNNING_FORWARD_PROGRESS_WEIGHT": 5.0,
|
| 48 |
"MICRODUCK_RUNNING_ENABLE_SYMMETRY": false,
|
| 49 |
"MICRODUCK_RUNNING_ENABLE_HEADING_FEEDBACK": false,
|
| 50 |
+
"foot_friction_range": [0.7, 1.3],
|
| 51 |
+
"push_interval_s": [3.0, 6.0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
},
|
| 53 |
"robustification_stages": [
|
| 54 |
+
{"updates": 100, "push_m_s": 0.03, "trunk_com_m": 0.003, "head_com_m": 0.003, "initial_tilt_deg": 1.0},
|
| 55 |
+
{"updates": 150, "push_m_s": 0.06, "trunk_com_m": 0.005, "head_com_m": 0.005, "initial_tilt_deg": 1.5},
|
| 56 |
+
{"updates": 200, "push_m_s": 0.1, "trunk_com_m": 0.008, "head_com_m": 0.006, "initial_tilt_deg": 2.0}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
],
|
| 58 |
"export": "scripts/export.py; observation normalizer baked into policy.onnx",
|
| 59 |
"continuation_checkpoint": {
|
|
|
|
| 69 |
"duration_s": 10.0,
|
| 70 |
"warmup_s": 1.0,
|
| 71 |
"results": {
|
| 72 |
+
"nominal_plain": {"num_envs": 512, "speed_m_s": 1.6510932445526123, "survival": 0.9921875},
|
| 73 |
+
"stress_plain": {"num_envs": 512, "speed_m_s": 1.6349653005599976, "survival": 0.98828125},
|
| 74 |
+
"nominal_backlash": {"num_envs": 256, "speed_m_s": 1.6362495422363281, "survival": 0.98828125},
|
| 75 |
+
"stress_backlash": {"num_envs": 256, "speed_m_s": 1.6121970415115356, "survival": 0.984375},
|
| 76 |
+
"high_grip_stress": {"num_envs": 512, "speed_m_s": 1.6424154043197632, "survival": 0.966796875}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
},
|
| 78 |
+
"stress": {"push_m_s": 0.1, "trunk_com_m": 0.01, "head_com_m": 0.006, "initial_tilt_deg": 2.0},
|
| 79 |
"known_limits": "Heading and lateral drift remain substantial. Never tested on hardware."
|
| 80 |
},
|
| 81 |
"onnx_contract": {
|
| 82 |
"observation_normalizer_embedded": true,
|
| 83 |
"training_action_clipping": false,
|
| 84 |
"onnx_output_clip": false,
|
| 85 |
+
"checkpoint_parity_max_abs_error": 0.00000762939453125
|
| 86 |
},
|
| 87 |
"sim2real": {
|
| 88 |
"retained": [
|
|
|
|
| 103 |
"hardware_validated": false
|
| 104 |
},
|
| 105 |
"versions": {
|
| 106 |
+
"default": {"iteration": 12195, "policy": "policy.onnx", "checkpoint": "checkpoint.pt", "preview": "media/preview.mp4"},
|
| 107 |
+
"speed_parent": {"iteration": 11748, "directory": "lineage/iteration-11748"},
|
| 108 |
+
"legacy_mat_policy": {"iteration": 8749, "directory": "legacy/iteration-8749"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
},
|
| 110 |
"media": {
|
| 111 |
"preview": "media/preview.mp4",
|
| 112 |
+
"run_into_mat": "media/run-into-mat.mp4",
|
| 113 |
+
"run_into_mat_policy_iteration": 8749,
|
| 114 |
+
"run_into_mat_note": "The mat, collision augmentation, camera treatment, motor cutoff, and sparks are scripted demo elements. The policy has no obstacle perception.",
|
| 115 |
"audio": false
|
| 116 |
},
|
| 117 |
"source_artifact_sha256": "007707dd7779b2756ded67c58b2e9f94fe5071794a48c2b5a20d5f8d841efbeb",
|
media/preview.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 3487586
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:942f0802cc0c6795769bd99a9991f866fee682890ea9ea6d71077f7d4eb5492b
|
| 3 |
size 3487586
|
media/run-into-mat.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:13f3eaf36601928125a001c1e5f444285a7294b70dc53a186da195d8cb50bc9a
|
| 3 |
+
size 4599499
|