mipo57 commited on
Commit
2f385eb
·
verified ·
1 Parent(s): e53f8cb

H7 height-commandable stiff locomotion: schema-2 contract + battery evidence

Browse files
Files changed (6) hide show
  1. README.md +40 -0
  2. courses.json +0 -0
  3. policy.npz +3 -0
  4. policy_meta.json +165 -0
  5. run.json +413 -0
  6. 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