We taught a Unitree G1 humanoid to play golf. The G1 is 1.32 m tall the perfect fit for a 5-8 year old kids’ 7-iron. The swings were fully learned in simulation and deployed onto hardware.
Training the policies
Creating the reference swing We tried a lot of different options for creating target motion, including using mocap data, human video to motion, and even training from Rory Mcilroy swing. Eventually we designed swings from scratch. The embodiement gap from humans to humanoid robot at these high speeds was too difficult for any existing retargetting software.
Learning to follow it. We trained our policy from the reference using RL (PPO) in mjlab. Our reward function specifies following the reference, hitting the ball in the centre of the face with the face square, clubhead speed, and not falling or shuffling the feet.
We first testing the policy without any club.
Our first real swing. Here we show a video from our very first full swing in lab. However we needed to add additional domain randomization in the club interia properties to prevent the robot from tipping over.
Taking the humanoid to the range
Behind the scenes
Not every swing was successful
Acknowledgements
Thanks to Daniel Morton and Pranit Mohnot of the Stanford Autonomous Systems Lab for helping us run the tests.