The attacking left forward fakes his body to the left as he gracefully slides to the right around his opponent. Dribbling carefully into position, he sizes up the Australian goalie, who, he recalls, tends to play a little aggressively to one side, especially in that last match against Italy. An opposing fullback closes in and the forward ducks the move, falling back slightly and eyeing the goalie’s stance. Finally he sees his chance as the goalie shifts his weight – the forward takes the shot – he scores! The world championship is won by the challengers! The crowd goes wild…the photographers’ bulbs flash…and the forward returns to the locker room, to find an electrical outlet into which he can plug himself to recharge his power cells.
Are you intrigued and thinking: "What?!? A team of robots playing soccer…and beating a team of humans no less?"
This scenario might very well be a reality in the future if RoboCup has its say. RoboCup, an international joint project to promote artificial intelligence (AI), robotics and related fields, has set a goal for fully autonomous, humanoid robots to win the world soccer championship by 2050. With the use of Fedora, one RoboCup team, the AllemaniACs, is already winning international acclaim with world champion titles in 2006 and 2007 in the RoboCup@Home service robotics league. The team is fresh off its victory at the RoboCup German Open 2008 competition and will be heading to Suzhou, China in July to defend its title in RoboCup 2008.
RoboCup attempts to foster AI and intelligent robotics research by providing a standard problem where engineers and scientists can integrate and examine a wide range of technologies. Arguably the world’s most popular sport, soccer serves as an excellent topic for RoboCup to center its research around. However, the innovations developed by the participating teams expand well beyond just a game, as they can be applied for socially significant problems and industries. For instance, in the RoboCup@Home league, the aim is to foster the development of useful robotic applications that can assist humans in everyday life. Robots compete in various scenarios set in the kitchen and living room with plans for the competition to expand to include settings such as a garden or park, shop, street and other public places.
In all RoboCup leagues the robots are fully autonomous. Once given a task robots perceive the environment, make decisions and then act accordingly on their own. All the data processing, decision making and planning is done solely by and only on the robot. In the soccer leagues this means that the only input from humans are the referee commands you’d hear at any soccer game like "kick off," "play on" or "throw in," currently translated by a human into digital commands. In the RoboCup@Home league, robots are assigned missions like "follow the human next to you" and must then complete the task without further instructions.
The AllemaniACs use Fedora on every machine they have including desktops, laptops and the systems on the robots. More importantly, much of the software they need to program and communicate with their machines is pre-packaged in Fedora. The AllemaniACs are not only using Fedora, the team has also used its need for specific capabilities to contribute to open source through Fedora. When the team has found a need for open source software not found in Fedora already, they work on packaging it, and then feed that work back into the Fedora community.
Fedora is powering all robots for the AllemaniACs including the previous soccer robot platform that is currently used for service robotics. This platform uses a differential drive for locomotion. An arm with six degrees of freedom is mounted on the robot to enable it to grasp objects and manipulate them in the RoboCup@Home league. A 360-degree laser distance sensor provides the robot with information on obstacles in its environment and allows the robot to localize itself to its surroundings. A directed camera on the front with a pan-tilt unit is used to detect small obstacles on the ground and a stereo camera is used for object tracking for the arm. The newest soccer robots are equipped with Core 2 Duo machines running Fedora 8. This new platform has omni-directional motion, meaning the robots can drive in any direction instantly without turning. To grasp the quick-paced soccer environment, an omni vision camera on the top of the robot provides a 360-degree image. A directed stereo camera on the front is used for more precise data for obstacle avoidance and ball detection.
The AllemaniACs robots depend on an assortment of software such as vision libraries, hardware driver libraries, and development tools – mostly available in Fedora (and in part maintained by the team itself or prepared by vendors to run on Fedora). They use the open source Trac source code management system that combines source control, wiki, and issue tracking, combined with Bitten for continuous integration. These tools allow for fast interaction of the developers, proper documenting while developing and easy bug spotting. For the past couple of months they have run a pre-Fedora 9 Rawhide instance in a virtual machine. This allowed the team to prepare for easy migration to Fedora 9 once it was available – especially the included GCC 4.3. The very same Fedora 8 server that runs the Rawhide virtual machine runs another Fedora instance in KVM for the web server, and a FreeBSD 7 machine for compiling and testing software on FreeBSD. Thanks to libvirt, these virtual machines are easy to create and manage.
With the commitment of the AllemaniACs and others from the Fedora community the Fedora Robotics SIG was recently founded. It aims to make Fedora fit to run on a variety of robots that run (possibly constrained) compatible machines and to use Fedora as a development platform for robots. As always in Fedora, this is a community effort and all help is greatly appreciated and welcomed.
RoboCup is not just a competition, it serves as a benchmark for scientists to compare methods and implementations. Its applications extend far beyond the soccer field, with RoboCup technologies being utilized for entertainment, search and rescue in large-scale disasters, and service robotics. It will probably take at least another ten years to develop highly effective and autonomous robots. However, the research completed by RoboCup teams and applicable technologies will continue to gradually be applied to real situations.
Follow the results as team AllemaniACs competes this July in RoboCup 2008 in China.