RoboCup is an international competition that aims to advance research in artificial intelligence and robotics by challenging students to build a robot soccer team and compete against other teams in the RoboCup world championship.
The Technische Universiteit Eindhoven (TU/e) team, Tech United, placed second in the most recent RoboCup Middle Size League championship. In only our third year of competition, we beat teams that had been competing for six years or more, including former world champions.
Key to our success has been our ability to develop control software using Model-Based Design with MATLAB®, Simulink®, and Real-Time Workshop®. This approach streamlines every aspect of our work. It enables our team to define component interfaces, partition work among students, quickly train new team members, adjust algorithms during tournaments, and automatically generate real-time control software for our robot players.
The Players and the Field
In the RoboCup Middle Size League, teams of five robots compete on a field 8 meters wide by 12 meters long using a standard FIFA size 5 ball. The robots, which must be no bigger than a 0.5 m x 0.5 m x 0.8 m box, are permitted to communicate wirelessly with each other and with a PC-based “coach.” During the match, the robots act autonomously—the only human intervention allowed is the removal of a disabled robot from the field.
Tech United robots are based on the TURTLE (Tech United RoboCup Team Limited Edition) platform, which consists of an omniwheel motion module, a ball handler and kicker, an omnivision camera, Ethernet-based input/output hardware, and a notebook computer running control software on real-time Linux.
Selecting a Development Platform
Our first RoboCup team was composed almost entirely of graduate and Ph.D. students with a mechanical engineering background. While they were thoroughly versed in mechatronics and knew how to make a robot that could move and kick a ball, they lacked experience in software design.
We chose MATLAB and Simulink because we knew that these tools would help students rapidly develop complex software, including vision and tracking systems, strategy algorithms, and calibration applications. Most team members were already familiar with MATLAB and Simulink because TU/e provides campus-wide access to MathWorks tools for all its students, and the mechanical engineering department integrates MATLAB and Simulink throughout the undergraduate- and graduate-level curricula.
Setting up a Maintainable Infrastructure
The software on each robot is divided into two main applications, both designed entirely in Simulink: the motion application, which controls the motors used to drive the robot and the actuators used for ball handling and kicking, and the vision application, which processes input from the robot’s cameras and other sensors, implements strategy, and determines the tasks needed to execute the strategy.
We used Simulink to define an infrastructure for the entire effort. Both applications are subdivided into modules, each with its own interface. Because the interfaces are clearly defined and enforced in Simulink, we can easily replace an old component design with a more efficient one. For example, we can isolate the ball-tracking algorithm and assign it to a student for implementation using Kalman filters. If that algorithm outperforms the current implementation, we integrate it into the robot for the next competition.
The Simulink model of the control software serves as an executable specification of the design, bringing consistency and efficiency to the entire design process. New team members can see a graphical representation of the overall design and then focus on the specific component that they are working on, without spending time consulting written specifications. Because the model is executable, we can use it to generate C code to run on our robots in real time.
Monitoring and Controlling the Robots
Needing an easy way to interact with the control software, we developed TURTLE Remote Control (TRC), a MATLAB based standalone application that enables us to calibrate, monitor, and control the robots via a graphical user interface (GUI) (Figure 2).
From the TRC control panel, students can monitor numerous system parameters, including laptop battery status, CPU load, and motor status. The TRC includes a real-time representation of each robot’s environment map (Figure 3).
Using this map and real-time video streams from each robot in TRC, team members monitor individual robots’ responses to changes in their environment. The TRC provides access to a shared memory infrastructure that will eventually enable robots to share their individual maps with each other to improve team play.
During development we used Real-Time Workshop External Mode to establish a connection between the model running in Simulink and the real-time code running on a robot, enabling us to monitor individual signals within the control system and control the robot via a wireless connection.
Making Mid-Tournament Adjustments
Updates to the control software are not permitted during a RoboCup match, but they are permitted between matches. While many teams struggle to make anything more than trivial changes during these short intervals, our team can make much more significant improvements. Other teams ask us how we adapt our software so quickly. The answer is that the adaptations are made within the model.
Developing control software directly in C for a system as sophisticated as a RoboCup robot is very difficult; the code quickly becomes hard to maintain, and making changes on the fly is almost impossible because you never know how the change will affect the rest of the system. We simply exchange Simulink blocks or update block parameters, verify the change through simulation, and then use Real-Time Workshop to re-generate the code. The robot is ready to go in seconds, and we’re confident that the code will behave in the same way as our model. This is a very important capability, because it enables us to adapt our robots once we see how other teams’ robots are playing.
Aiming for a World Championship
Although placing second in the RoboCup in just our third year of competition was a significant achievement for our team, we are already taking steps to improve upon that result. Our robots’ main weakness in the final was an inability to handle balls kicked high into the air. To meet this challenge, our next generation of robots will be equipped with a high-speed camera capable of tracking high-bouncing balls.
We are the only team that builds new robots each year. After each tournament, the team is always inspired to add improvements to the control strategy and modules to handle new input devices. By reusing existing Simulink designs, we accelerate both of these tasks.
Tech United’s success at RoboCup has won our team recognition both within the university and outside. We have begun to attract new team members from other departments, including physics and electrical engineering, and where once the Tech United team met only one night a week, the program is now a core research activity in our department.
Several competitors have already visited TU/e to learn more about our approach. The competition continues to become more open, with teams sharing their discoveries and expertise. This not only raises the level of competition; it also advances the field of robotics.