/ #roboteam #soccer 

Scoring for the Future

“By the middle of the 21st century, a team of fully autonomous humanoid robot soccer players shall win a soccer game, complying with the official rules of FIFA, against the winner of the most recent World Cup”, that is the ultimate goal of the RoboCup soccer competition. However, to achieve this a lot still needs to happen. To get there, the RoboCup is divided into three main leagues: humanoid, middle-size and small-size, with each their own challenge. The humanoid league focuses on the operation of humanoid robots, the middle size league focuses on the image processing on the robot itself, and the small-size league is focused on quick decision making and communication between the robots.

The RoboTeam Twente will participate in the small-size league for the third time in July 2019, in Sydney. With a team of 15 students, both part-time and full-time, we work towards this big competition. To achieve this we have students from Technical Medicine, Applied Physics, ATLAS, Creative Technology, Advanced Technology, Computer Science, European Public Administration and of course, Electrical Engineering! These students are divided into artificial intelligence, control, electronics, mechanics and public relations.

The mechanics team is responsible for the mechanical design of the robot. Are all parts in the right place? Are all parts strong enough? Is the center of mass low enough so that the robot does not fall over? These are all questions that the mechanics team is busy with from day to day. Currently, the mechanics team is busy improving three main parts of the robot: the dribbler, chipper and ball sensor. This first part is a little rod that spins forward, giving the ball a backward spin when it’s touched. This lets the ball come toward the robot, thus allowing the robot to move around with the ball. The second part, the chipper, currently prevents this from happening perfectly, because it touches the ball while dribbling, so that needs to be changed. Thirdly, the ball sensor allows the robot to “see” the ball, but it is currently a bit too far removed from the ball. In the new design, the ball sensor will be placed directly behind the ball.

As for the electronics team the main focus this year is extending the current possibilities of the robot. The electronics domain encompasses the driving of the wheels, circuitry for kicking/chipping, communication and the processing and driving of all these elements: the microcontroller.

One of these improvements is the motor controller, which will allow the control team to guide the robot more accurately and improve its reliability. This is done by allowing the robot to execute finer motions by means of additional sensory components as well as improved power circuitry to make the motors behave more linearly.

A second improvement is making the robot more aware of its state by monitoring subparts of its circuitry as well as the code that is running on the robot. This allows the robot to compensate for itself and/or send this information back to the AI. The sending to and from the robot is also being changed as it was clear from the last competition that it was not good enough for our specifications. The main change will be in the possibility to reliably send data to and from all the robots in a set time. This means that there has to be a scheduling and communication protocol setup. The challenge here is to make a lightweight, low/constant latency pipeline capable of sustaining 11 robots in a varying noisy environment.

The biggest bottleneck in the small-size competition is the software. With eight cameras above the field, we can see everything, and our robots do not need their own camera. However, vision is still a big challenge as we have to merge data from eight different sources, each with their own delay. With a small robot with wheels, operating the robot is easier than it is in for example the humanoid league, but still very challenging. As our robots are able to move at high velocities, controlling the robot is a big challenge. Camera data has a delay, but we still want to know and control whether the robots go where we want them to do. Making quick decisions, fully autonomous, in a dynamic field with 16 robots moving at high velocities is hence a big challenge. This challenge we put with two teams, control and artificial intelligence.

Control is all about, pretty much what the word already says, controlling the robot. We need to send the right signals to the motor drivers when we want to drive, send signals to the kicker and chipper to kick and chip, and of course, avoid obstacles when we want to drive. While doing this, we continuously want to receive feedback on where the robot is, and whether this matches where we want the robot to be.

alt text

This year, we decided to do the obstacle avoidance together with path planning using so-called Bézier curves. We first create a Voronoi diagram, essentially a set of lines between the obstacles that are safe to travel for the robot and then we find the shortest path from point A to point B across these lines. Now that we have a short path to the desired location, we want to make it smooth such that the robot can follow the path without having to make sudden changes in direction. This is where the Bézier curves jump in. It is a parametrized curve based on control points that we put on the lines from the shortest path we found. Since these Bézier curves have the property that it always lays in the polygon spanned by its control points, it is guaranteed that the robot will never hit an object as long as it stays on the curve!

When the robot is properly controlled, the only challenge left is decision making. We get updates from the cameras 60 times per second, so we can also make decisions 60 times per second. In each of these ticks, we need to decide for all the robots what the best strategy is. How many defenders do we need? Where should the keeper position itself? The system needs to be able to do everything itself, without human interference, which is a big challenge. When the opponent passes the ball, we need to decide in a split second whether one of our robots can intercept the ball, and how. This decision making is largely structured in behavior trees. Basically a graphical method to structure behavior. The code behind this is similar to a lot of if-else statements. We, for example, let a robot in sequence check 1) whether it has the ball, 2) whether it can see the goal and 3) kick. These behavior trees can be used for various tasks. Added to this we want to start experimenting with machine learning this year. Soccer is an intuitive game and a lot can be programmed by humans, but we believe that we can let parts be trained by the computer itself to make decisions even better. The main technique we want to use for this is machine learning, which basically comes down to letting the robots “train” the same action over and over again, giving it a reward when it succeeds. This way it learns which actions to take when, to for example learn how to score a goal.

With all these innovations put together, we will travel to the RoboCup in Sydney, which takes place from 2 July to 8 July. If you are interested in our progress you can visit us at https://roboteamtwente.nl/.

Author

RoboTeam Twente

The Artificial Intelligence student team of the University of Twente