Fachbereich Informatik - Computer Science Department - Homepage/Startseite TU Darmstadt - Homepage/Startseite Homepage/Startseite
Diese Seite gibt es nur in Englisch

Darmstadt Dribblers    


Software and control architectures tailored for heterogeneous teams of autonomous robots

Besides algorithms for the different subtasks of a robotic system, their embedding in the complete system is crucial. An appropriate architecture has to take care of many tasks transparently. Also, the development of new algorithms can be supported actively.

As a response to the requirements, the framework RoboFrame has been developed using C++ and modern object oriented design techniques. On top of RoboFrame, various modules for the different tasks (image processing, localization, motion and behavior control) were implemented. The framework provides transparent communication mechanisms for data exchange and interaction for modules running in one thread of execution, different threads on the same CPU or even running on different CPUs.

It has been spend much effort in developing an easily adjustable abstraction layer to provide platform independent access to thread synchronization mechanisms and file- and network access. Currently, the operating systems Linux (x86 and MIPS architecture), BSD Unix, Windows 2000, Windows XP and the realtime OS Windows CE are supported.

To exchange data between the modules, two mechanisms are implemented: Large data structured can be shared on one machine using a blackboard architecture and mutual exclusion mechanisms. For smaller data structures, the preferred way of data exchange is using a message based system. The messages are transmitted by the framework transparently between the modules. If the modules exchanging messages reside within the same thread, the framework allocates the data exchange buffers in a way which avoids the cost for copying messages thus improving performance. This mechanism enables to exchange even very large messages without any overhead, as long as the modules run in the same thread. Messages and shared-memory data are identified by unique keys and are timestamped.

For communication between multiple robots both network protocols TCP (reliable, connection oriented) and UDP (unreliable, connectionless) can be used.

For debugging, monitoring and testing of an application, RoboFrame contains classes to assemble a graphical user interface (GUI). A GUI can be connected to multiple robots using a special debugging interface over a reliable TCP connection. Any message available in the application can be requested by the GUI and visualized by user defined dialogs.

All graphical user interfaces contain a tool for recording messages to log files. This allows to record special situations and investigate them offline or in a simulation. Also the direct comparison of different modules is possible since both modules can be supported with the same data.

To ensure the correctness of the core features of RoboFrame, a set of test cases has been implemented. This has been done using the common tool for regression tests CppUnit. For each of the main components, multiple tests provide nearly complete coverage.