Humanoid K1

Why Does Swinging the Arms Help a Robot Walk Better? — K1 Walking Training V5

Through V4, the arms only had a penalty for "stay still," and they drifted sideways while walking. V5 adds a reward for swinging the arms back and forth in time with the leg gait, and abrupt motion and torso wobble dropped slightly. We also record the result at 0.7 m/s and what we have not verified.

"Why does swinging the arms help a robot walk better?" — what one score on the arms changed. Humanoid education thumbnail (question and diagram).

Physical AI, Hands On · Part 5 · Previous: We trained a gait in Isaac Lab. Does it walk in MuJoCo too?

This article publishes only the practice process and results. Institutions that adopt the course receive the textbook text and the instructor's guide.

When we gave the arms a score for swinging, abrupt motion and torso wobble dropped slightly. Through V4, the arm joints had only one penalty: "leave the default pose and lose points." While walking, the arms drifted sideways. V5 adds a reward for swinging the arms back and forth in time with the leg gait. Motion abruptness fell from 0.062 to 0.0594, and torso height wobble fell from 5.3mm to 4.4mm. Each version was trained once, so please read the small differences with caution.

Comparison table of Booster K1 walking V5, with the arm swing score added, and V4 (0.5 m/s forward, 10 seconds). Motion abruptness 0.062 to 0.0594, torso height wobble 5.3mm to 4.4mm, foot steps per second the same at 3.6. Each version trained once.
Comparison table of Booster K1 walking V5, with the arm swing score added, and V4 (0.5 m/s forward, 10 seconds). Motion abruptness 0.062 to 0.0594, torso height wobble 5.3mm to 4.4mm, foot steps per second the same at 3.6. Each version trained once.

We compared against V4 under the same condition (0.5 m/s forward, 10 seconds, 0 falls), and we also checked at a raised speed of 0.7 m/s. From the captures we can see the arms actually swing, but with this camera angle we could not confirm in numbers whether they swing purely front to back. What follows is a record of what we changed and trained ourselves.


Why did the arms swing sideways?

Because the reward had no term that asked for swinging. Through V4, the arms received only a penalty for leaving the default pose. With a penalty but no points for doing well, the easiest option for the robot was to move loosely in whichever direction took the least effort. We estimate that direction was mostly sideways.

People swing their arms front to back while walking to balance against the opposite leg. If this motion is not turned into a score, training just finds "the easiest way to avoid the penalty," and there is no reason for the robot to swing the way a person does.


What did we change?

We added a score for doing well on the arms and adjusted the direction of the penalty.

  • Added an arm swing reward — the robot earns points when the left and right arms swing in opposite directions, front to back, in time with the leg gait. It is the same principle as the arms and legs alternating when a person walks.
  • Penalty only on the loose direction — we pressed down harder on sideways spreading and twisting, and left front-to-back motion to the reward above.
  • We left room for the elbows to bend. Contrary to expectation, though, the elbows stayed straight. Ways to teach the elbows separately were tested next.

We kept the improvements through V4 as they were (foot stepping, joint randomization, and the penalty for abrupt motion).


How did the results change?

We compared against V4 under the same condition (0.5 m/s forward, 10 seconds, 0 falls).

MeasureV4V5Note
Foot steps per second3.63.6Same — the gait rhythm was kept
Motion abruptness (smaller is smoother)0.0620.0594Smoother
Distance moved (10 s)5.02m4.89m0.13m shorter
Torso height wobble5.3mm4.4mmReduced

One training run (one seed) · simulation

The gait rhythm was kept, and abrupt motion and torso wobble dropped slightly. Arm swinging may have helped the whole-body motion, but each version was trained once, so for numbers with small differences we would need to change the training start value (seed) and retrain to be sure.

Four scenes of Booster K1 (V5) walking forward at 0.5 m/s in the Isaac Lab simulation.
Four scenes of Booster K1 (V5) walking forward at 0.5 m/s in the Isaac Lab simulation.

In the capture, you can see that one arm reaches forward while the other stays close to the body, and that this pose changes from frame to frame. The front-to-back swing itself does appear. However, with this capture angle (slightly oblique from the side), we could not confirm in numbers whether the swing is truly front to back rather than sideways. We left it as the next task to log the arm joint angles directly and compare the front-to-back and side-to-side amplitudes.


Does it still walk at a higher speed?

It did not fall at 0.7 m/s, and it covered 94% of the target.

MeasureValue
Commanded speed0.7 m/s
Actual movement6.61m in 10 seconds = 0.661 m/s (94% of the target)
Motion abruptness0.063 (similar to the 0.5 m/s run — motion did not become jerky at the higher speed)
Falls0

One training run (one seed) · simulation

Four frames of Booster K1 walking at 0.7 m/s in the Isaac Lab simulation.
Four frames of Booster K1 walking at 0.7 m/s in the Isaac Lab simulation.

We never tested V4 at 0.7 m/s, so there is no direct comparison record with V4. Please read this as newly confirming that it can walk faster than the 0.5 m/s that V4 was checked at.


Frequently asked questions

Does the robot now walk completely like a person?

The front-to-back swing appeared, but with this capture angle we could not confirm in numbers whether the side-to-side drifting has fully disappeared. Logging the joint angles directly to check is the next task.

Can we go faster?

At 0.7 m/s it covered 94% of the target with no falls. We did not test beyond that this time.

We only added one reward. Why did the gait rhythm (3.6 steps per second) stay the same?

We believe it is because the reward that creates the gait rhythm was left as it was in V4, and only the arm reward was newly added. We also made the arm reward use the same beat as the legs, so there was no reason for the rhythm to change.

Does it walk like this on a real robot too?

We have not confirmed this. The result was confirmed only on flat ground, inside simulation.

Next step

We will continue by logging the arm joint angles and comparing the front-to-back and side-to-side amplitudes in numbers. How to design the reward, what was verified, and how far a course covers the parts we could not verify will be scoped with you in a consultation.


Versions used: Isaac Sim 5.1.0 · Isaac Lab 2.3.2 · rsl-rl-lib 3.1.2 · Booster's official repository K1_22dof.urdf

Source: The K1 walking reinforcement learning V5 we ran ourselves (2026-09-23). All results are flat-ground simulation values and have not yet been applied to a real robot.


The copyright of this article and its figures belongs to SV Robotics. Quotations that credit a link to the original are welcome; reproducing or redistributing the full text, or reposting it as teaching material, requires permission.

  • #Booster K1
  • #Isaac Lab
  • #reinforcement learning
  • #humanoid robot education
  • #PPO
  • #reward design
  • #physical AI