--- license: mit tags: [robotics, reinforcement-learning, quadruped, mjx, brax] --- # wojtek-stiff-height-locomotion Height-commandable joystick locomotion policy for the Wojtek quadruped (kp=40 / kd=1.6 / ±9 Nm stiff line). Schema-2 deployment contract: `policy.npz` + `policy_meta.json`; the ROS stack loads it by reference (`policy:=hvsr-robotics/wojtek-stiff-height-locomotion`). ## Capabilities (courses battery, 8 seeds/scenario, evidence in courses.json) - **Live height command**: 4th command dim, trained box [0.11, 0.18] m, tracked to ≤5 mm over the mechanically reachable range (saturates gracefully at the ~0.154 m knee-guard ceiling). The runtime re-anchors per command using the `height_table` field (calibrated kinematic mapping — REQUIRES the 2026-07-27 `wojtek_policy` with height_table support; older runtimes would anchor ~0.38 rad off). - Pivots in place BOTH directions at 0.8 and 1.2 rad/s (spin scores 2.07–2.15; the previous keeper could not complete any spin). - Slalom, slow (0.2 m/s) and fast (1.0 m/s) walking, push recovery; every catalogue scenario completes 8/8, zero falls in the battery. ## Lineage From-scratch 1.57B steps (early-stopped, zero-fall training run), MJX/ Brax PPO, `+experiment=stiff_h7_height` at the repo state of 2026-07-27 (uncommitted-era presets archived here: run_h7.resolved.yaml). Stack: mirror-symmetry augmentation, product-gated + relative velocity tracking, per-swing apex shaping, pre-contact landing softness, real-pose (kinematic) references. Sibling `wojtek-stiff-h6-apex` line scores higher on flat-height polish without the height command. ## Deployment kp=40 / kd=1.6 / ±9 Nm (must match `wojtek_real.urdf.xacro` + launch max_torque). Send height as the 4th command dim; omit it and the runtime pins 0.145 m (`command_fill`).