kyry.me/projects/k1-loco-teleop

← projects

P-06 · in progress, simulation

K1 Loco-Teleop

A walking policy for the Booster K1 that drives only the legs, so the arms and head stay free for teleoperation.

CH1k1-loco-teleopArms moving over their full range: a policy trained with the arms still (left) and one trained with random arm motion (right).

Summary

The policy outputs only the 12 leg joints from a velocity command. The head and arms (10 joints) are driven from outside, by the teleoperator. To make the legs keep balance whatever the arms do, the arms are moved during training by a random motion generator over their whole range.

How

  • Every 1–4 s each simulated robot picks a new arm motion: circles, sweeps, or jumps to a random pose. Frequency 0.2–1.5 Hz, amplitude 30–100% of half the joint range, ramped up over the first 1000 iterations. No motion dataset: the parameters are random.
  • AMP keeps the walking style (legs-only discriminator, LAFAN walking clips, style weight 0.5).
  • mjlab, PPO with the Muon optimizer, 4096 environments, 4000 iterations.

Results (simulation)

512 robots walking for 40 s while the arms move in circles over their full range:

trained with robots that fell
arms held still 100%
arms at random poses near the default 25%
the arm-motion generator 0.7–2.5%

In the booster_deploy MuJoCo check with the arms raised, the arm-motion policy keeps the trunk within 1–2° of upright; the random-pose one leans 16–18°.

The same policy in heel shoes: K1 Heel Walking.