Fawkes is a software system that provides the infrastructure and building blocks to create and run robotic applications. It provides a robust and small run-time system which can load and unload plugins at run-time, therefore allowing for a flexible development cycle. Fawkes is written in C++ with an emphasis on clean structure and complete documentation. It is developed for Linux and Unix platforms. Fawkes has been tested during numerous RoboCup events, where it was used to drive multiple robots, like the service robot Caesar, the humanoid robot Nao, or soccer playing middle size league robots.
The development is driven in large parts by members of the AllemaniACs RoboCup Team at the Knowledge-Based Systems Group at RWTH Aachen University, Germany.
Component-based Approach
To combine the different parts, Fawkes implements a component-based approach. Logical components are defined as a contract between developers. A component consists of a defined input and output and accomplishes a specified tasks. Components are then implemented as plugins. By this, a plugin can implement one or more components (usually it implements one). Components can then be combined depending on the task to solve and allow to reuse existing code in new applications.