| Prev: Home | Up: Home | Next: Design Principles |
|---|---|---|
Table of contents
FARSA is a collection of integrated open-source object-oriented C++ libraries that allow to experiment with autonomous robots. It allow to simulate different robotic platforms (the iCub humanoid and the khepera, e-puck, and marxbot wheeled robots), design the sensory-motor system of the robot/s, design the environment in which the robot/s operate, design the robot neural controller, and adapt the free parameters of the robot. It is a cross-platform framework that works on Linux, Windows and Mac on both 32bit and 64bit systems.
FARSA is well documented, easy to use and comes with a series of exemplificative experiments that allow users to quickly gain a comprehension of the tool and a base for running a large spectrum of new experiments that can be ran simply by changing the tool parameters. The modification of aspects that are not parametric (e.g. the initial position or posture of the robot/s, the definition of a new evaluation function, or the definition of a new sensor or motor not included in the library) is also relative easy since it confined to a single and compact portion of the source code (the experiment class) and well explained in the documentation.
FARSA combines in a single framework the following features:
The tool is constituted by a series of integrated software libraries providing the following features:
It is a library that allows to simulate the robot/s and the environment in which it/they operate. The library supports both individual robot simulation and collective experiments in which several robots are placed in the same environment. The physical and dynamical aspects of the robots and of the robots/environment interactions can be simulated accurately by using a 3D dynamics physics simulator or by using a faster but simplified kinematic engine. Currently, FARSA supports the following robotic platforms: the Khepera, the e-Puck, the marXbot and the iCub. These robots have been designed by assembling a series of building blocks (physical elements, sensors, and motorized joints) that users can re-use to implement alternative, not yet supported, robots.
It includes a library of ready-to-use sensors and motors. In some cases, sensors and motors include software routines that pre-elaborate sensory or motor information (e.g. to reduce its dimensionality) and/or integrate different kinds of sensory-motor information. The state of the robot’s sensors and motors, as well as the state of selected variables of the robot’s control system, can be graphically visualized while the robot interacts with the environment.
It enables the user to design, modify and visualize the robot's control system. Currently FARSA includes two libraries that support the design of neuro-controllers. Evonet is an easy-to-use library that enables users to graphically design, modify and visualize the neural network. NNFW is an alternative object-oriented library that provides a larger variety of topologies and neuron types.
It enable the user to subject a robot or a population of robots to an adapting process (i.e. to a evolutionary and/or learning process). The adaptation libraries that are currently available support the use of evolutionary algorithms (including steady state, truncation selection, and Pareto-front algorithms), supervised learning algorithms (i.e. back-propagation), and unsupervised learning algorithm (i.e. Hebbian learning).
As stated before, FARSA is a collection of software libraries. As such, there are some tools and concepts whose knowledge is required (or at least strongly suggested) to use it effectively:
Manual: DesignPrinciples
Manual: Home
Anonymous