Humanoid robots at RoboCup 2022, Bangkok.
RoboCup is an initiative to promote research in robotics through standardized competition and cooperation. The RoboCup Humanoid League focuses on legged robots between 0.4–1 metres tall in the KidSize and 1–2 metres tall in AdultSize.
This year the Hamburg Bit-Bots performed a survey of all KidSize teams participating in the RoboCup 2022 in Bangkok, Thailand. We aimed to capture the state of the art in the league. This article gives a summary of the results. A more technical and detailed writeup can be found on our website.
Before we start we would like to thank all teams that participated for their openness and willingness to share their knowledge with us.
The following sections will describe what teams are using for the various soft- and hardware components required for allowing a humanoid robot to play soccer.
To date, almost all teams use convolutional neural networks for detecting the various objects in the image the robot’s camera captures. These objects not only include the ball but also goalposts, other robots, or line markings. Notably, YOLOv4-tiny is very popular as all computations must be done on the robot itself which is limited in processing capabilities.
Most teams now use a particle filter (Monte Carlo) localization to estimate the robot’s pose on the playing field. However, the feature used for updating the particle filter varies. Some teams only use the line measurements while others also incorporate the line intersections, goal posts, or field boundary.
Walking is a challenging problem for humanoids as they are inherently prone to tipping over if no corrective action is applied. The approaches used by teams differ significantly. Several teams use splines to generate walking patterns and stabilize these using sensor measurements such as an inertial measurement unit (IMU) or foot pressure sensors. Other teams use the zero moment point (ZMP) to generate the walk trajectory.
In the RoboCup KidSize, the robots must get up after falling. Almost all teams use keyframe animations to perform this motion. The teams expressed annoyance about the manual tuning required to create and adapt these to hardware changes or wear of the robot. The Hamburg Bit-Bots are a notable exception. They use parameterized splines to define this motion. These are also stabilized using the IMU measurements.
Similarly to the stand up motion, the kick is also solved by almost all teams using a keyframe animation. There are two exceptions. Firstly, the Hamburg Bit-Bots use an approach similar to their stand up motion. It also allows defining the kick direction. Another approach developed by the ITAndroids also uses splines for the kick movement but stabilizes the robot using the zero moment point (ZMP).
As the robots play autonomously, they must decide which actions to take in which situations. Many teams use state machines to solve this problem. Decision or behaviour trees are also utilized by others. Notably, team Rhoban uses a combination of a state machine and reinforcement learning in their decision making.
Most teams’ robots use aluminium for their mechanical parts. Carbon fibre reinforced polymer (CFRP) and fiberglass are preferred by some for their better strength to weight ratio than aluminium. Some teams choose to use 3D printing for specific parts of the robot as it allows for fast, low-cost development and manufacturing.
To allow communication between the main computer and the servo motors and some sensors of the robot a controller board is usually employed. Many teams still use old boards such as the CM730 and CM740 from Robotis as they still own them. Other teams moved to multi-bus structures with custom developed controller boards to allow for faster communication with servos and sensors and therefore faster reaction time.
Most teams are using a Logitech webcam (C920 and similar ones). Some teams prefer using industrial cameras. These have the advantage that they have a global shutter eliminating rolling shutter and are more sensitive, allowing for a shorter shutter speed, thus reducing the motion blur of the images.
Most teams use a combination of C++ and Python for programming the robots. C++ lends itself to time critical applications such as a walking algorithm, while Python is often used, for example, in the decision making.
Seven of the eleven teams use either ROS1 or ROS2 as a framework. This number has increased significantly compared to previous years where many teams built their own framework. This now allows the league to reuse and improve upon software built by other teams more easily.
All teams use Linux as the operating system on the robot. Most use Ubuntu either for its compatibility with ROS or since it is easy to set up.