We have been building autonomous mobile robots since 1998. Our team, composed of students and researchers from the Mathematics and Computer Science Department, Freie Universität Berlin, has participated in the annual RoboCup World Championship since 1999. The FU-Fighters have been world champions twice.
What is RoboCup?
RoboCup is the world championship in robotic soccer – it has been held every year since 1997. Robots play in several leagues, according to their size and structure: in the small-size league five robots compete against another five in a field 4 meters wide and 5.5 meters long. In the middle-size league four or six robots play against another team in a 12 by 8 meters large field. There is also a league for legged robots (Sony AIBOs), and a league for humanoid robots, that is, robots whose structure and mechanics resemble human beings.
The RoboCup rules are very similar to human soccer: the winning team has to score more often than the other team, there are yellow, and red cards, free kicks and penalties.
Robotic soccer, that is, mobile autonomous robots playing this popular game, has become a new benchmark problem in the field of Artificial Intelligence (AI). Research in this area deals with all those tasks which humans handle subconsciously, but which are extremely difficult for computers, for example: speech and face recognition, bipedal walking, path planning in cluttered environments, strategic decision making, etc.
RoboCup is a laboratory for the development of the service robots of the future. In order to play soccer, the robots have to see, move, coordinate, communicate, plan, and act. Each one of these issues is difficult in itself – all of them in combination, and against and adversary, are much more challenging.
Learning is essential in robotics: Robots playing soccer cannot be completely programmed by hand. They must learn from their experience on the field, trying to repeat successful actions, and avoiding detrimental behaviour. Service robots of the future will also need a learning component, which will make them more robust and useful.
The Small-Size League
In this league the robots have a maximum diameter of 18 cm and a maximum height of 15 cm. There is otherwise no restriction on the kind of hardware and sensors transported by the robot, or on its weight.
The small robots do not carry their own robotic eyes: they play using the information provided by one or two video cameras placed 4 meters above the field. The middle-size robots, on the other hand, carry their own cameras, laptop, and any other kind of useful sensors.
Both the small and middle-size FU-Fighters robots have omnidirectional drive. This means that the main wheels have additional smaller wheels mounted on their periphery. Three or four motors, under such omnidirectional arrangement, allow the robots to move along a straight line, in any direction, without having to turn first. This makes the robots faster and more elegant than traditional two-wheeled robots. When omnidirectional robots drive, they seem to float on the floor.
Kicking devices are additional actuators used in the small-size robots. In this league the robots play with a golf ball. Most kicking devices consist of solenoids for accelerating a hub which, once in contact with the ball, can bring it to speeds above 10 m/s. Chip kickers, capable of lifting the ball, are also used. The small-size robots themselves are very fast. Top teams move at a speed of up to 2 or 3 m/s.
In the middle-size league the robots have a maximum diameter of 50 cm, and a maximum height of 80 cm. The robots are completely autonomous from external computers, but they are in communication with each other through a WLAN link. The team of robots is actually a rolling local area network.
New robots are first designed with the help of computer aided design tools (CAD). All the parts are drawn, and we test if they fit together. Once the design has been validated, the parts are machined by us using a small milling machine. Larger parts are built by the Physics department.
Our middle-size robots look as the larger version of our small-size robots, also with four wheels, but each robot carries a conical mirror whose purpose is to reflect the space around the robot when a camera looks into the mirror from below.
The view of the field obtained with an omnidirectional camera is warped, but the white field lines are clearly visible on the green background. Using the white lines as reference, the laptop on the robot computes the best possible match for the position of the robot on the field.
For this computation, the points recognized as white-green boundaries on the image are matched to a model of the field. The model “attracts” the cloud of points detected by the computer vision. The “attraction” (computed in the robot’s laptop) displaces and rotates the cloud of points until it matches the field model. Once this happens, the robot has been localized on the field.
An important aspect of behaviour control is to compute the optimal path for all robots in a team. Once a middle-size robot has found its position on the field, this is communicated to all other robots in the same team through an external computer. In the small-size league the computer vision has always a full model of the robots’ positions.
The optimal path for each robot is computed using a grid superimposed on the field. The nodes of the grid are the positions on the field. The edges weights are the costs for moving from one node to the next. Nodes occupied by obstacles induce extremely high costs in neighbouring edges. The path-planner finds the path of minimal cost, from start to finish, using the A* backtracking algorithm.
The FU-Fighters control system is mainly reactive. This means that sensor values trigger specific behaviors, which, in turn, drive the actuators in the robot.
The main real sensor is the video camera (for both the small-size and middle-size robots). Pieces of code extract meaningful information from the video images, such as the position of all robots and the position of the ball. Such computed values are stored in “virtual sensors”. There are fast and slow sensors, in the sense, that their values are updated more or less often. Fast sensors are updated once for each video frame.
Sensor values are checked periodically – if they reach a critical value they trigger a specific behavior. A trapped robot, for example, can be detected with a sensor “S” which is continually checking command compliance. When compliance drops below a threshold, the robot rotates fast, so as to free itself from its trapped position. This behavior (rapid rotation) has then been triggered by sensor “S”.
Behaviors can themselves trigger or inhibit other behaviors. There are behaviors which are activated faster than others. The goalie, for example, checks 60 times a second if the ball is rolling towards the goal. If this is the case, its stopping behavior is activated and it tries to intercept the ball. If the ball is not rolling towards the goal, the goalie tries to position itself so as to minimize the shooting angle for attackers from the other team.
Since behaviors are triggered automatically by sensor values, more than one behavior can be active at the same time.
A robot, for example, can be advancing towards the ball, but if a virtual sensor detects an imminent collision, obstacle avoidance is also triggered. The result can be a new driving direction which is proportional to the weighted sum of the two active behavior trajectories.
Behaviors can also inhibit other behaviors. The player that goes to retrieve the ball inhibits the ball-seeking behavior of the teammates. If the assigned player cannot reach the ball (because it is obstructed), the inhibition dies out and the next nearest player tries to acquire the ball.
Ideally, we would like to teach the robots by example, by drawing diagrams illustrating typical game situations and how the robots should react. Our system has an automatic “neural coach” which is able to learn from examples. A person can enter a typical game situation by hand, positioning two teams on the field in order to illustrate a play. The computer computes several parameters, such as, for example, the surface around the player with the ball which is free of enemies (freedom to move), how visible another team player is (visibility), how much terrain can be gained by giving a pass under such conditions (field advantage), and so on. We assign a zero or a one to the game situation (zero for not passing, one for a pass). The computer stores this and many other examples. Later on, it can generalize to game situations never seen before, and can decide if a pass is better than dribbling with the ball.
Our system has a simulator of the robot’s behavior. This allows us to test new code or learned passing skills without having to switch the robots on. Many virtual experiments have to be conducted before the actual robots are used.