/** \file 
 * This file is used for the doxygen documentation. 
 */

/**

\dir selforg

The selforg directory contains the controller and a small framework to use them in different scenarios.
The class \ref WiredController is a controller together with a wiring that can be connected
 to a robot. It provides logging and plotting of parameters.
The class \ref Agent is a subsumption
of a robot, a wired controller. 
The wiring specifies the connections between the sensor values of the robot
and the sensor values of the controller, 
and also the connection between the motor outputs of the controller 
and the motor values given to the robot. 

The following subdirectories are included:
 - \ref selforg/matrix : comfortable matrix library used for calculations e.g. in our controllers
 - \ref selforg/controller : contains controllers, most of them are self-organizing sensorimotor contorl
 - \ref selforg/wirings : implementation of standard wirings, that connect robot and controller
 - \ref selforg/utils : utility code and helper modules
 - selforg/examples : examples for the usage of controller, the framework and the matrix library, see below

\par Examples

You have tree options for the usage of the controllers and the framwork.
It depends on what you want and what you have. 
You can either use a controller just as it is (see example directconnect), 
 or use it in the framework of controller and wiring (see example wiredconnect)
 or all together with an agent (see example integration).
In the first two versions you have direct control of the data flow.
The last two have the advantage to facilitates you with the plotting options and such like.
The integration example is useful for a computer simulation framework.
Here the data flow is controlled by the agent, which then asks the robot about the sensors,
 invokes the controller and sends the motor values the robot again.

Please click on the register tab "Examples" on the top.
*/

/**
\example directconnect/directconnect.cpp 
 A simple example for the usage of the controller without the framework.
 This version means that you have the direct control of the data flow.
 See also \ref selforg
*/

/**
\example wiredconnect/main.cpp 
 An example for the usage of the controller with the framework, but without 
 the robot and agent representation.
 This version means that you have still the direct control of the data flow
 but you can already use the logging and plotting facilities.
 See also \ref selforg.
*/

/**
\example integration/main.cpp 
 A simple example for the integration of a robot into the framework (with agent, controller, wiring). 
 This facilitates you with the plotting options, tracing and such like.
Here the data flow is controlled by the agent, which then asks the robot about the sensors,
 invokes the controller and sends the motor values the robot again.
 See also \ref selforg.
*/

/**
\example matrix/matrixexample.cpp 
An example for the usage of the \ref matrix::Matrix "Matrix" library.
*/
 
