Learned Locomotion with Reinforcement Learning
Today's legged robots often learn to walk in simulation, running thousands of trials in parallel. The danger is that a policy tuned to one exact simulator fails on the real robot, whose mass, friction, and delays are a little different. Domain randomization trains on many slightly different simulators so the policy works across all of them. A tiny balancing policy stands in for a walking policy here.
Reinforcement learning, in brief
The policy here is two numbers, gains on the pole angle and its rate, \(u = -k_1\theta - k_2\dot\theta\). Training uses random search, a simple RL method: try small random changes to the gains, keep the ones that earn more reward. Reward is +1 for each step the pole stays up:
With domain randomization, each trial uses a simulator whose parameters \(\boldsymbol\xi\) are drawn at random, so training maximizes \(\mathbb{E}_{\boldsymbol\xi}[R]\).
What to notice
Without randomization, training reaches full reward in its one simulator, then fails often on real robots that are heavier or slower to respond. With randomization, training is a little harder, but the policy succeeds on most real robots. Real systems train neural network policies with PPO across thousands of randomized simulations on a GPU, but the reason it transfers is the same.