H7 height-commandable stiff locomotion: schema-2 contract + battery evidence
Browse files- README.md +40 -0
- courses.json +0 -0
- policy.npz +3 -0
- policy_meta.json +165 -0
- run.json +413 -0
- run_h7.resolved.yaml +158 -0
README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
tags: [robotics, reinforcement-learning, quadruped, mjx, brax]
|
| 4 |
+
---
|
| 5 |
+
|
| 6 |
+
# wojtek-stiff-height-locomotion
|
| 7 |
+
|
| 8 |
+
Height-commandable joystick locomotion policy for the Wojtek quadruped
|
| 9 |
+
(kp=40 / kd=1.6 / ±9 Nm stiff line). Schema-2 deployment contract:
|
| 10 |
+
`policy.npz` + `policy_meta.json`; the ROS stack loads it by reference
|
| 11 |
+
(`policy:=hvsr-robotics/wojtek-stiff-height-locomotion`).
|
| 12 |
+
|
| 13 |
+
## Capabilities (courses battery, 8 seeds/scenario, evidence in courses.json)
|
| 14 |
+
|
| 15 |
+
- **Live height command**: 4th command dim, trained box [0.11, 0.18] m,
|
| 16 |
+
tracked to ≤5 mm over the mechanically reachable range (saturates
|
| 17 |
+
gracefully at the ~0.154 m knee-guard ceiling). The runtime re-anchors
|
| 18 |
+
per command using the `height_table` field (calibrated kinematic
|
| 19 |
+
mapping — REQUIRES the 2026-07-27 `wojtek_policy` with height_table
|
| 20 |
+
support; older runtimes would anchor ~0.38 rad off).
|
| 21 |
+
- Pivots in place BOTH directions at 0.8 and 1.2 rad/s (spin scores
|
| 22 |
+
2.07–2.15; the previous keeper could not complete any spin).
|
| 23 |
+
- Slalom, slow (0.2 m/s) and fast (1.0 m/s) walking, push recovery;
|
| 24 |
+
every catalogue scenario completes 8/8, zero falls in the battery.
|
| 25 |
+
|
| 26 |
+
## Lineage
|
| 27 |
+
|
| 28 |
+
From-scratch 1.57B steps (early-stopped, zero-fall training run), MJX/
|
| 29 |
+
Brax PPO, `+experiment=stiff_h7_height` at the repo state of 2026-07-27
|
| 30 |
+
(uncommitted-era presets archived here: run_h7.resolved.yaml). Stack:
|
| 31 |
+
mirror-symmetry augmentation, product-gated + relative velocity
|
| 32 |
+
tracking, per-swing apex shaping, pre-contact landing softness,
|
| 33 |
+
real-pose (kinematic) references. Sibling `wojtek-stiff-h6-apex` line
|
| 34 |
+
scores higher on flat-height polish without the height command.
|
| 35 |
+
|
| 36 |
+
## Deployment
|
| 37 |
+
|
| 38 |
+
kp=40 / kd=1.6 / ±9 Nm (must match `wojtek_real.urdf.xacro` + launch
|
| 39 |
+
max_torque). Send height as the 4th command dim; omit it and the runtime
|
| 40 |
+
pins 0.145 m (`command_fill`).
|
courses.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
policy.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:952f47e260d917f3a89adb11bd2ab500e774d68410e6507b52db083f80e95ba5
|
| 3 |
+
size 756168
|
policy_meta.json
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 2,
|
| 3 |
+
"run_name": "wojtek_stiff_h7_height_20260727_seed1",
|
| 4 |
+
"checkpoint": "/Users/michalpogoda/projects/github.com/machinekind/wojtek/training/runs/wojtek_stiff_h7_height_20260727_seed1/checkpoints/001572864000",
|
| 5 |
+
"task": "joystick",
|
| 6 |
+
"obs_size": 40,
|
| 7 |
+
"action_size": 12,
|
| 8 |
+
"obs_layout": [
|
| 9 |
+
"joint_pos:12",
|
| 10 |
+
"joint_vel:12",
|
| 11 |
+
"last_act:12",
|
| 12 |
+
"command:4"
|
| 13 |
+
],
|
| 14 |
+
"actuator_names": [
|
| 15 |
+
"rear_left_first_joint",
|
| 16 |
+
"rear_left_second_joint",
|
| 17 |
+
"rear_left_third_joint",
|
| 18 |
+
"rear_right_first_joint",
|
| 19 |
+
"rear_right_second_joint",
|
| 20 |
+
"rear_right_third_joint",
|
| 21 |
+
"front_right_first_joint",
|
| 22 |
+
"front_right_second_joint",
|
| 23 |
+
"front_right_third_joint",
|
| 24 |
+
"front_left_first_joint",
|
| 25 |
+
"front_left_second_joint",
|
| 26 |
+
"front_left_third_joint"
|
| 27 |
+
],
|
| 28 |
+
"home_ctrl": [
|
| 29 |
+
0.0,
|
| 30 |
+
-0.20000000298023224,
|
| 31 |
+
3.0999999046325684,
|
| 32 |
+
0.0,
|
| 33 |
+
-0.20000000298023224,
|
| 34 |
+
3.0999999046325684,
|
| 35 |
+
0.0,
|
| 36 |
+
-0.20000000298023224,
|
| 37 |
+
3.0999999046325684,
|
| 38 |
+
0.0,
|
| 39 |
+
-0.20000000298023224,
|
| 40 |
+
3.0999999046325684
|
| 41 |
+
],
|
| 42 |
+
"anchor_ctrl": [
|
| 43 |
+
0.0,
|
| 44 |
+
-0.23132231831550598,
|
| 45 |
+
3.0373551845550537,
|
| 46 |
+
0.0,
|
| 47 |
+
-0.23132231831550598,
|
| 48 |
+
3.0373551845550537,
|
| 49 |
+
0.0,
|
| 50 |
+
-0.23132231831550598,
|
| 51 |
+
3.0373551845550537,
|
| 52 |
+
0.0,
|
| 53 |
+
-0.23132231831550598,
|
| 54 |
+
3.0373551845550537
|
| 55 |
+
],
|
| 56 |
+
"action_scale": [
|
| 57 |
+
0.25,
|
| 58 |
+
0.5,
|
| 59 |
+
0.5,
|
| 60 |
+
0.25,
|
| 61 |
+
0.5,
|
| 62 |
+
0.5,
|
| 63 |
+
0.25,
|
| 64 |
+
0.5,
|
| 65 |
+
0.5,
|
| 66 |
+
0.25,
|
| 67 |
+
0.5,
|
| 68 |
+
0.5
|
| 69 |
+
],
|
| 70 |
+
"target_low": [
|
| 71 |
+
-0.4399999976158142,
|
| 72 |
+
-3.140000104904175,
|
| 73 |
+
0.42500001192092896,
|
| 74 |
+
-0.4399999976158142,
|
| 75 |
+
-3.140000104904175,
|
| 76 |
+
0.42500001192092896,
|
| 77 |
+
-0.4399999976158142,
|
| 78 |
+
-3.140000104904175,
|
| 79 |
+
0.42500001192092896,
|
| 80 |
+
-0.4399999976158142,
|
| 81 |
+
-3.140000104904175,
|
| 82 |
+
0.42500001192092896
|
| 83 |
+
],
|
| 84 |
+
"target_high": [
|
| 85 |
+
0.4399999976158142,
|
| 86 |
+
3.140000104904175,
|
| 87 |
+
3.1500000953674316,
|
| 88 |
+
0.4399999976158142,
|
| 89 |
+
3.140000104904175,
|
| 90 |
+
3.1500000953674316,
|
| 91 |
+
0.4399999976158142,
|
| 92 |
+
3.140000104904175,
|
| 93 |
+
3.1500000953674316,
|
| 94 |
+
0.4399999976158142,
|
| 95 |
+
3.140000104904175,
|
| 96 |
+
3.1500000953674316
|
| 97 |
+
],
|
| 98 |
+
"ctrl_low": [
|
| 99 |
+
-0.4399999976158142,
|
| 100 |
+
-3.140000104904175,
|
| 101 |
+
0.42500001192092896,
|
| 102 |
+
-0.4399999976158142,
|
| 103 |
+
-3.140000104904175,
|
| 104 |
+
0.42500001192092896,
|
| 105 |
+
-0.4399999976158142,
|
| 106 |
+
-3.140000104904175,
|
| 107 |
+
0.42500001192092896,
|
| 108 |
+
-0.4399999976158142,
|
| 109 |
+
-3.140000104904175,
|
| 110 |
+
0.42500001192092896
|
| 111 |
+
],
|
| 112 |
+
"ctrl_high": [
|
| 113 |
+
0.4399999976158142,
|
| 114 |
+
3.140000104904175,
|
| 115 |
+
5.800000190734863,
|
| 116 |
+
0.4399999976158142,
|
| 117 |
+
3.140000104904175,
|
| 118 |
+
5.800000190734863,
|
| 119 |
+
0.4399999976158142,
|
| 120 |
+
3.140000104904175,
|
| 121 |
+
5.800000190734863,
|
| 122 |
+
0.4399999976158142,
|
| 123 |
+
3.140000104904175,
|
| 124 |
+
5.800000190734863
|
| 125 |
+
],
|
| 126 |
+
"command_low": [
|
| 127 |
+
-0.8,
|
| 128 |
+
-0.5,
|
| 129 |
+
-1.5,
|
| 130 |
+
0.11
|
| 131 |
+
],
|
| 132 |
+
"command_high": [
|
| 133 |
+
1.2,
|
| 134 |
+
0.5,
|
| 135 |
+
1.5,
|
| 136 |
+
0.18
|
| 137 |
+
],
|
| 138 |
+
"command_fill": [
|
| 139 |
+
0.145
|
| 140 |
+
],
|
| 141 |
+
"height_table": {
|
| 142 |
+
"heights": [
|
| 143 |
+
0.10459308326244354,
|
| 144 |
+
0.11690062284469604,
|
| 145 |
+
0.13156059384346008,
|
| 146 |
+
0.14854702353477478,
|
| 147 |
+
0.15401752293109894
|
| 148 |
+
],
|
| 149 |
+
"dsecond": [
|
| 150 |
+
-0.44999998807907104,
|
| 151 |
+
-0.30000001192092896,
|
| 152 |
+
-0.15000000596046448,
|
| 153 |
+
0.0,
|
| 154 |
+
0.15000000596046448
|
| 155 |
+
]
|
| 156 |
+
},
|
| 157 |
+
"action_filter": 0.0,
|
| 158 |
+
"ctrl_dt": 0.02,
|
| 159 |
+
"knee_singularity": 3.2,
|
| 160 |
+
"pd": {
|
| 161 |
+
"kp": 40.0,
|
| 162 |
+
"kd": 1.6,
|
| 163 |
+
"max_torque": 9.0
|
| 164 |
+
}
|
| 165 |
+
}
|
run.json
ADDED
|
@@ -0,0 +1,413 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"run_name": "wojtek_stiff_h7_height_20260727_seed1",
|
| 3 |
+
"task": "joystick",
|
| 4 |
+
"num_timesteps": 2000000000,
|
| 5 |
+
"early_stopped": true,
|
| 6 |
+
"stopped_at_steps": 1572864000,
|
| 7 |
+
"final_reward": 61.89657211303711,
|
| 8 |
+
"checkpoint_dir": "/workspace/wojtek/training/runs/wojtek_stiff_h7_height_20260727_seed1/checkpoints",
|
| 9 |
+
"env_config": {
|
| 10 |
+
"abduction_ctrl_limit": 0.44,
|
| 11 |
+
"action_delay": 1,
|
| 12 |
+
"action_filter": 0.0,
|
| 13 |
+
"action_scale": [
|
| 14 |
+
0.25,
|
| 15 |
+
0.5,
|
| 16 |
+
0.5
|
| 17 |
+
],
|
| 18 |
+
"command": {
|
| 19 |
+
"arc_prob": 0.2,
|
| 20 |
+
"arc_vx": [
|
| 21 |
+
0.3,
|
| 22 |
+
1.2
|
| 23 |
+
],
|
| 24 |
+
"fast_vx": [
|
| 25 |
+
0.8,
|
| 26 |
+
1.2
|
| 27 |
+
],
|
| 28 |
+
"height": [
|
| 29 |
+
0.11,
|
| 30 |
+
0.18
|
| 31 |
+
],
|
| 32 |
+
"pure_fast_prob": 0.2,
|
| 33 |
+
"pure_slow_prob": 0.15,
|
| 34 |
+
"pure_vy_prob": 0.2,
|
| 35 |
+
"pure_wz_prob": 0.25,
|
| 36 |
+
"resample_steps": 250,
|
| 37 |
+
"slow_vx": [
|
| 38 |
+
0.1,
|
| 39 |
+
0.35
|
| 40 |
+
],
|
| 41 |
+
"vx": [
|
| 42 |
+
-0.8,
|
| 43 |
+
1.2
|
| 44 |
+
],
|
| 45 |
+
"vy": [
|
| 46 |
+
-0.5,
|
| 47 |
+
0.5
|
| 48 |
+
],
|
| 49 |
+
"wz": [
|
| 50 |
+
-1.5,
|
| 51 |
+
1.5
|
| 52 |
+
],
|
| 53 |
+
"zero_prob": 0.25
|
| 54 |
+
},
|
| 55 |
+
"ctrl_dt": 0.02,
|
| 56 |
+
"encoder": {
|
| 57 |
+
"enable": true,
|
| 58 |
+
"range": 0.02
|
| 59 |
+
},
|
| 60 |
+
"episode_length": 1000,
|
| 61 |
+
"fall": {
|
| 62 |
+
"max_tilt_gz": -0.4,
|
| 63 |
+
"min_height": 0.06
|
| 64 |
+
},
|
| 65 |
+
"gait": {
|
| 66 |
+
"air_time_cap": 0.35,
|
| 67 |
+
"duty": [
|
| 68 |
+
0.7,
|
| 69 |
+
0.5
|
| 70 |
+
],
|
| 71 |
+
"freq": [
|
| 72 |
+
1.4,
|
| 73 |
+
3.0
|
| 74 |
+
],
|
| 75 |
+
"swing_height": 0.08,
|
| 76 |
+
"trot_band": [
|
| 77 |
+
0.35,
|
| 78 |
+
0.55
|
| 79 |
+
]
|
| 80 |
+
},
|
| 81 |
+
"knee_target_max": 3.15,
|
| 82 |
+
"latency": {
|
| 83 |
+
"enable": true,
|
| 84 |
+
"max_substeps": 5,
|
| 85 |
+
"min_substeps": 0
|
| 86 |
+
},
|
| 87 |
+
"max_torque": 9.0,
|
| 88 |
+
"obs": {
|
| 89 |
+
"include": [
|
| 90 |
+
"joint_pos",
|
| 91 |
+
"joint_vel",
|
| 92 |
+
"last_act",
|
| 93 |
+
"command"
|
| 94 |
+
],
|
| 95 |
+
"privileged": [
|
| 96 |
+
"gyro",
|
| 97 |
+
"gravity",
|
| 98 |
+
"joint_pos",
|
| 99 |
+
"joint_vel",
|
| 100 |
+
"last_act",
|
| 101 |
+
"command",
|
| 102 |
+
"phase",
|
| 103 |
+
"linvel",
|
| 104 |
+
"foot_contact"
|
| 105 |
+
],
|
| 106 |
+
"state": [
|
| 107 |
+
"gyro",
|
| 108 |
+
"gravity",
|
| 109 |
+
"joint_pos",
|
| 110 |
+
"joint_vel",
|
| 111 |
+
"last_act",
|
| 112 |
+
"command",
|
| 113 |
+
"phase"
|
| 114 |
+
]
|
| 115 |
+
},
|
| 116 |
+
"obs_noise": {
|
| 117 |
+
"gravity": 0.05,
|
| 118 |
+
"gyro": 0.2,
|
| 119 |
+
"joint_pos": 0.01,
|
| 120 |
+
"joint_vel": 1.5
|
| 121 |
+
},
|
| 122 |
+
"pd_kd": 1.6,
|
| 123 |
+
"pd_kp": 40.0,
|
| 124 |
+
"push": {
|
| 125 |
+
"enable": true,
|
| 126 |
+
"interval_steps": 200,
|
| 127 |
+
"vel": 0.8
|
| 128 |
+
},
|
| 129 |
+
"real_pose_ref": true,
|
| 130 |
+
"reward": {
|
| 131 |
+
"apex_target": 0.05,
|
| 132 |
+
"glide_height": 0.03,
|
| 133 |
+
"height_sigma": 0.001,
|
| 134 |
+
"phase_sigma": 0.002,
|
| 135 |
+
"pose_leg_weight": 0.1,
|
| 136 |
+
"scales": {
|
| 137 |
+
"action_accel": 0.0,
|
| 138 |
+
"action_rate": -0.25,
|
| 139 |
+
"ang_vel_xy": 0.0,
|
| 140 |
+
"contact_match": 0.0,
|
| 141 |
+
"energy": 0.0,
|
| 142 |
+
"feet_air_time": 4.0,
|
| 143 |
+
"feet_apex": 5.0,
|
| 144 |
+
"feet_landing": -0.5,
|
| 145 |
+
"feet_phase": 0.0,
|
| 146 |
+
"feet_slip": -0.35,
|
| 147 |
+
"height_tracking": 1.0,
|
| 148 |
+
"high_step": 4.0,
|
| 149 |
+
"lin_vel_z": 0.0,
|
| 150 |
+
"orientation": -5.0,
|
| 151 |
+
"pose": -1.0,
|
| 152 |
+
"stand_feet_down": -30.0,
|
| 153 |
+
"stand_still": -2.5,
|
| 154 |
+
"termination": -1.0,
|
| 155 |
+
"torque_limit": -0.1,
|
| 156 |
+
"torque_rate": -0.02,
|
| 157 |
+
"torques": -0.0006,
|
| 158 |
+
"tracking_ang_vel": 1.6,
|
| 159 |
+
"tracking_lin_vel": 4.0
|
| 160 |
+
},
|
| 161 |
+
"torque_limit_frac": 0.85,
|
| 162 |
+
"tracking_far_sigma": 2.5,
|
| 163 |
+
"tracking_far_weight": 0.0,
|
| 164 |
+
"tracking_product": true,
|
| 165 |
+
"tracking_rel_floor_ang": 0.4,
|
| 166 |
+
"tracking_rel_floor_lin": 0.3,
|
| 167 |
+
"tracking_rel_sigma": 0.25,
|
| 168 |
+
"tracking_relative": true,
|
| 169 |
+
"tracking_sigma": 0.1
|
| 170 |
+
},
|
| 171 |
+
"sim": {
|
| 172 |
+
"backend": "auto",
|
| 173 |
+
"naconmax_per_env": 32,
|
| 174 |
+
"njmax": 320,
|
| 175 |
+
"num_envs": 8192
|
| 176 |
+
},
|
| 177 |
+
"sim_dt": 0.004,
|
| 178 |
+
"symmetry": {
|
| 179 |
+
"enable": true,
|
| 180 |
+
"mirror_prob": 0.5
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"ppo_config": {
|
| 184 |
+
"action_repeat": 1,
|
| 185 |
+
"batch_size": 256,
|
| 186 |
+
"discounting": 0.97,
|
| 187 |
+
"entropy_cost": 0.01,
|
| 188 |
+
"episode_length": 1000,
|
| 189 |
+
"learning_rate": 0.0003,
|
| 190 |
+
"max_grad_norm": 1.0,
|
| 191 |
+
"network_factory": {
|
| 192 |
+
"policy_hidden_layer_sizes": [
|
| 193 |
+
512,
|
| 194 |
+
256,
|
| 195 |
+
128
|
| 196 |
+
],
|
| 197 |
+
"policy_obs_key": "state",
|
| 198 |
+
"value_hidden_layer_sizes": [
|
| 199 |
+
512,
|
| 200 |
+
256,
|
| 201 |
+
128
|
| 202 |
+
],
|
| 203 |
+
"value_obs_key": "privileged_state"
|
| 204 |
+
},
|
| 205 |
+
"normalize_observations": true,
|
| 206 |
+
"num_envs": 8192,
|
| 207 |
+
"num_evals": 40,
|
| 208 |
+
"num_minibatches": 32,
|
| 209 |
+
"num_resets_per_eval": 10,
|
| 210 |
+
"num_timesteps": 2000000000,
|
| 211 |
+
"num_updates_per_batch": 4,
|
| 212 |
+
"reward_scaling": 1.0,
|
| 213 |
+
"unroll_length": 20
|
| 214 |
+
},
|
| 215 |
+
"hydra_config": {
|
| 216 |
+
"task": {
|
| 217 |
+
"name": "joystick",
|
| 218 |
+
"env": {
|
| 219 |
+
"obs": {
|
| 220 |
+
"state": [
|
| 221 |
+
"gyro",
|
| 222 |
+
"gravity",
|
| 223 |
+
"joint_pos",
|
| 224 |
+
"joint_vel",
|
| 225 |
+
"last_act",
|
| 226 |
+
"command",
|
| 227 |
+
"phase"
|
| 228 |
+
],
|
| 229 |
+
"privileged": [
|
| 230 |
+
"gyro",
|
| 231 |
+
"gravity",
|
| 232 |
+
"joint_pos",
|
| 233 |
+
"joint_vel",
|
| 234 |
+
"last_act",
|
| 235 |
+
"command",
|
| 236 |
+
"phase",
|
| 237 |
+
"linvel",
|
| 238 |
+
"foot_contact"
|
| 239 |
+
],
|
| 240 |
+
"include": [
|
| 241 |
+
"joint_pos",
|
| 242 |
+
"joint_vel",
|
| 243 |
+
"last_act",
|
| 244 |
+
"command"
|
| 245 |
+
]
|
| 246 |
+
},
|
| 247 |
+
"latency": {
|
| 248 |
+
"enable": true,
|
| 249 |
+
"min_substeps": 0,
|
| 250 |
+
"max_substeps": 5
|
| 251 |
+
},
|
| 252 |
+
"encoder": {
|
| 253 |
+
"enable": true,
|
| 254 |
+
"range": 0.02
|
| 255 |
+
},
|
| 256 |
+
"action_scale": [
|
| 257 |
+
0.25,
|
| 258 |
+
0.5,
|
| 259 |
+
0.5
|
| 260 |
+
],
|
| 261 |
+
"pd_kp": 40.0,
|
| 262 |
+
"pd_kd": 1.6,
|
| 263 |
+
"max_torque": 9.0,
|
| 264 |
+
"abduction_ctrl_limit": 0.44,
|
| 265 |
+
"knee_target_max": 3.15,
|
| 266 |
+
"command": {
|
| 267 |
+
"vx": [
|
| 268 |
+
-0.8,
|
| 269 |
+
1.2
|
| 270 |
+
],
|
| 271 |
+
"vy": [
|
| 272 |
+
-0.5,
|
| 273 |
+
0.5
|
| 274 |
+
],
|
| 275 |
+
"wz": [
|
| 276 |
+
-1.5,
|
| 277 |
+
1.5
|
| 278 |
+
],
|
| 279 |
+
"height": [
|
| 280 |
+
0.11,
|
| 281 |
+
0.18
|
| 282 |
+
],
|
| 283 |
+
"zero_prob": 0.25,
|
| 284 |
+
"pure_wz_prob": 0.25,
|
| 285 |
+
"pure_vy_prob": 0.2,
|
| 286 |
+
"arc_prob": 0.2,
|
| 287 |
+
"arc_vx": [
|
| 288 |
+
0.3,
|
| 289 |
+
1.2
|
| 290 |
+
],
|
| 291 |
+
"pure_slow_prob": 0.15,
|
| 292 |
+
"slow_vx": [
|
| 293 |
+
0.1,
|
| 294 |
+
0.35
|
| 295 |
+
],
|
| 296 |
+
"pure_fast_prob": 0.2,
|
| 297 |
+
"fast_vx": [
|
| 298 |
+
0.8,
|
| 299 |
+
1.2
|
| 300 |
+
]
|
| 301 |
+
},
|
| 302 |
+
"push": {
|
| 303 |
+
"vel": 0.8
|
| 304 |
+
},
|
| 305 |
+
"gait": {
|
| 306 |
+
"swing_height": 0.08,
|
| 307 |
+
"air_time_cap": 0.35
|
| 308 |
+
},
|
| 309 |
+
"reward": {
|
| 310 |
+
"tracking_sigma": 0.1,
|
| 311 |
+
"pose_leg_weight": 0.1,
|
| 312 |
+
"scales": {
|
| 313 |
+
"tracking_lin_vel": 4.0,
|
| 314 |
+
"tracking_ang_vel": 1.6,
|
| 315 |
+
"height_tracking": 1.0,
|
| 316 |
+
"lin_vel_z": 0.0,
|
| 317 |
+
"ang_vel_xy": 0.0,
|
| 318 |
+
"orientation": -5.0,
|
| 319 |
+
"torques": -0.0006,
|
| 320 |
+
"torque_rate": -0.02,
|
| 321 |
+
"torque_limit": -0.1,
|
| 322 |
+
"action_rate": -0.25,
|
| 323 |
+
"action_accel": 0.0,
|
| 324 |
+
"energy": 0.0,
|
| 325 |
+
"pose": -1.0,
|
| 326 |
+
"feet_air_time": 4.0,
|
| 327 |
+
"feet_slip": -0.35,
|
| 328 |
+
"feet_phase": 0.0,
|
| 329 |
+
"contact_match": 0.0,
|
| 330 |
+
"high_step": 4.0,
|
| 331 |
+
"stand_still": -2.5,
|
| 332 |
+
"stand_feet_down": -30.0,
|
| 333 |
+
"termination": -1.0,
|
| 334 |
+
"feet_landing": -0.5,
|
| 335 |
+
"feet_apex": 5.0
|
| 336 |
+
},
|
| 337 |
+
"tracking_product": true,
|
| 338 |
+
"tracking_relative": true,
|
| 339 |
+
"apex_target": 0.05
|
| 340 |
+
},
|
| 341 |
+
"real_pose_ref": true,
|
| 342 |
+
"symmetry": {
|
| 343 |
+
"enable": true,
|
| 344 |
+
"mirror_prob": 0.5
|
| 345 |
+
}
|
| 346 |
+
},
|
| 347 |
+
"ppo": {}
|
| 348 |
+
},
|
| 349 |
+
"network": {},
|
| 350 |
+
"run_name": "wojtek_stiff_h7_height_20260727_seed1",
|
| 351 |
+
"seed": 1,
|
| 352 |
+
"smoke": false,
|
| 353 |
+
"restore": null,
|
| 354 |
+
"domain_rand": true,
|
| 355 |
+
"dr": {
|
| 356 |
+
"com_offset": {
|
| 357 |
+
"enable": false,
|
| 358 |
+
"xy": 0.02,
|
| 359 |
+
"z": 0.01
|
| 360 |
+
},
|
| 361 |
+
"joint_gains": {
|
| 362 |
+
"enable": true,
|
| 363 |
+
"gain_pct": 0.2,
|
| 364 |
+
"kd_pct": 0.2
|
| 365 |
+
},
|
| 366 |
+
"dof": {
|
| 367 |
+
"enable": false,
|
| 368 |
+
"damping": [
|
| 369 |
+
0.9,
|
| 370 |
+
1.1
|
| 371 |
+
],
|
| 372 |
+
"armature": [
|
| 373 |
+
0.9,
|
| 374 |
+
1.1
|
| 375 |
+
],
|
| 376 |
+
"frictionloss": [
|
| 377 |
+
0.9,
|
| 378 |
+
1.1
|
| 379 |
+
]
|
| 380 |
+
},
|
| 381 |
+
"foot_friction": {
|
| 382 |
+
"enable": false,
|
| 383 |
+
"range": [
|
| 384 |
+
0.8,
|
| 385 |
+
1.2
|
| 386 |
+
]
|
| 387 |
+
},
|
| 388 |
+
"motor_strength": {
|
| 389 |
+
"enable": true,
|
| 390 |
+
"range": [
|
| 391 |
+
0.5,
|
| 392 |
+
1.1
|
| 393 |
+
]
|
| 394 |
+
}
|
| 395 |
+
},
|
| 396 |
+
"wandb": {
|
| 397 |
+
"enable": true,
|
| 398 |
+
"project": "fbb-locomotion"
|
| 399 |
+
},
|
| 400 |
+
"early_stop": {
|
| 401 |
+
"enable": true,
|
| 402 |
+
"min_evals": 10,
|
| 403 |
+
"patience": 8,
|
| 404 |
+
"min_delta": 1.0
|
| 405 |
+
},
|
| 406 |
+
"ppo": {
|
| 407 |
+
"num_timesteps": 2000000000,
|
| 408 |
+
"num_evals": 40
|
| 409 |
+
}
|
| 410 |
+
},
|
| 411 |
+
"kp": 40.0,
|
| 412 |
+
"kd": 1.6
|
| 413 |
+
}
|
run_h7.resolved.yaml
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
task:
|
| 2 |
+
name: joystick
|
| 3 |
+
env:
|
| 4 |
+
obs:
|
| 5 |
+
state:
|
| 6 |
+
- gyro
|
| 7 |
+
- gravity
|
| 8 |
+
- joint_pos
|
| 9 |
+
- joint_vel
|
| 10 |
+
- last_act
|
| 11 |
+
- command
|
| 12 |
+
- phase
|
| 13 |
+
privileged:
|
| 14 |
+
- gyro
|
| 15 |
+
- gravity
|
| 16 |
+
- joint_pos
|
| 17 |
+
- joint_vel
|
| 18 |
+
- last_act
|
| 19 |
+
- command
|
| 20 |
+
- phase
|
| 21 |
+
- linvel
|
| 22 |
+
- foot_contact
|
| 23 |
+
include:
|
| 24 |
+
- joint_pos
|
| 25 |
+
- joint_vel
|
| 26 |
+
- last_act
|
| 27 |
+
- command
|
| 28 |
+
latency:
|
| 29 |
+
enable: true
|
| 30 |
+
min_substeps: 0
|
| 31 |
+
max_substeps: 5
|
| 32 |
+
encoder:
|
| 33 |
+
enable: true
|
| 34 |
+
range: 0.02
|
| 35 |
+
action_scale:
|
| 36 |
+
- 0.25
|
| 37 |
+
- 0.5
|
| 38 |
+
- 0.5
|
| 39 |
+
pd_kp: 40.0
|
| 40 |
+
pd_kd: 1.6
|
| 41 |
+
max_torque: 9.0
|
| 42 |
+
abduction_ctrl_limit: 0.44
|
| 43 |
+
knee_target_max: 3.15
|
| 44 |
+
command:
|
| 45 |
+
vx:
|
| 46 |
+
- -0.8
|
| 47 |
+
- 1.2
|
| 48 |
+
vy:
|
| 49 |
+
- -0.5
|
| 50 |
+
- 0.5
|
| 51 |
+
wz:
|
| 52 |
+
- -1.5
|
| 53 |
+
- 1.5
|
| 54 |
+
height:
|
| 55 |
+
- 0.11
|
| 56 |
+
- 0.18
|
| 57 |
+
zero_prob: 0.25
|
| 58 |
+
pure_wz_prob: 0.25
|
| 59 |
+
pure_vy_prob: 0.2
|
| 60 |
+
arc_prob: 0.2
|
| 61 |
+
arc_vx:
|
| 62 |
+
- 0.3
|
| 63 |
+
- 1.2
|
| 64 |
+
pure_slow_prob: 0.15
|
| 65 |
+
slow_vx:
|
| 66 |
+
- 0.1
|
| 67 |
+
- 0.35
|
| 68 |
+
pure_fast_prob: 0.2
|
| 69 |
+
fast_vx:
|
| 70 |
+
- 0.8
|
| 71 |
+
- 1.2
|
| 72 |
+
push:
|
| 73 |
+
vel: 0.8
|
| 74 |
+
gait:
|
| 75 |
+
swing_height: 0.08
|
| 76 |
+
air_time_cap: 0.35
|
| 77 |
+
reward:
|
| 78 |
+
tracking_sigma: 0.1
|
| 79 |
+
pose_leg_weight: 0.1
|
| 80 |
+
scales:
|
| 81 |
+
tracking_lin_vel: 4.0
|
| 82 |
+
tracking_ang_vel: 1.6
|
| 83 |
+
height_tracking: 1.0
|
| 84 |
+
lin_vel_z: 0.0
|
| 85 |
+
ang_vel_xy: 0.0
|
| 86 |
+
orientation: -5.0
|
| 87 |
+
torques: -0.0006
|
| 88 |
+
torque_rate: -0.02
|
| 89 |
+
torque_limit: -0.1
|
| 90 |
+
action_rate: -0.25
|
| 91 |
+
action_accel: 0.0
|
| 92 |
+
energy: 0.0
|
| 93 |
+
pose: -1.0
|
| 94 |
+
feet_air_time: 4.0
|
| 95 |
+
feet_slip: -0.35
|
| 96 |
+
feet_phase: 0.0
|
| 97 |
+
contact_match: 0.0
|
| 98 |
+
high_step: 4.0
|
| 99 |
+
stand_still: -2.5
|
| 100 |
+
stand_feet_down: -30.0
|
| 101 |
+
termination: -1.0
|
| 102 |
+
feet_landing: -0.5
|
| 103 |
+
feet_apex: 5.0
|
| 104 |
+
tracking_product: true
|
| 105 |
+
tracking_relative: true
|
| 106 |
+
apex_target: 0.05
|
| 107 |
+
real_pose_ref: true
|
| 108 |
+
symmetry:
|
| 109 |
+
enable: true
|
| 110 |
+
mirror_prob: 0.5
|
| 111 |
+
ppo: {}
|
| 112 |
+
network: {}
|
| 113 |
+
run_name: wojtek_stiff_h7_height_20260727_seed1
|
| 114 |
+
seed: 1
|
| 115 |
+
smoke: false
|
| 116 |
+
restore: null
|
| 117 |
+
domain_rand: true
|
| 118 |
+
dr:
|
| 119 |
+
com_offset:
|
| 120 |
+
enable: false
|
| 121 |
+
xy: 0.02
|
| 122 |
+
z: 0.01
|
| 123 |
+
joint_gains:
|
| 124 |
+
enable: true
|
| 125 |
+
gain_pct: 0.2
|
| 126 |
+
kd_pct: 0.2
|
| 127 |
+
dof:
|
| 128 |
+
enable: false
|
| 129 |
+
damping:
|
| 130 |
+
- 0.9
|
| 131 |
+
- 1.1
|
| 132 |
+
armature:
|
| 133 |
+
- 0.9
|
| 134 |
+
- 1.1
|
| 135 |
+
frictionloss:
|
| 136 |
+
- 0.9
|
| 137 |
+
- 1.1
|
| 138 |
+
foot_friction:
|
| 139 |
+
enable: false
|
| 140 |
+
range:
|
| 141 |
+
- 0.8
|
| 142 |
+
- 1.2
|
| 143 |
+
motor_strength:
|
| 144 |
+
enable: true
|
| 145 |
+
range:
|
| 146 |
+
- 0.5
|
| 147 |
+
- 1.1
|
| 148 |
+
wandb:
|
| 149 |
+
enable: true
|
| 150 |
+
project: fbb-locomotion
|
| 151 |
+
early_stop:
|
| 152 |
+
enable: true
|
| 153 |
+
min_evals: 10
|
| 154 |
+
patience: 8
|
| 155 |
+
min_delta: 1.0
|
| 156 |
+
ppo:
|
| 157 |
+
num_timesteps: 2000000000
|
| 158 |
+
num_evals: 40
|