For the approach, general remarks, aims and papers see http://robot.informatik.uni-leipzig.de
The common interface is provided in class AbstractController , which inherits methods for configuration and disposal of internal parameter as well as serialization from the classes Configurable, Inspectable and Storeable. Each controller realizes this interface to ensure collaboration.
For easy use in the beginning use InvertNChannelController (which requires the same number of sensors and motors) and look at the examples in the selforg/examples directory. You can also start with a copy of one of the templates in the lpzrobots/ode_robots/simulations directory and you can see how things work.