| Prev: Mac - Installing from Sources | Up: Home | Next: Compiling an Experiment Plugin |
|---|---|---|
Table of contents
To use FARSA you should run the Total99 application from the application menu (or from the installation directory if compiled the tool from the source package).
Total99 is the main graphic interface of the tool and enables you to configure and run an experiment, and to open additional graphic widgets.
In this page you will learn how to load and run the exemplificative experiments (i.e. a series of pre-prepared experiments that exemplify the capabilities of FARSA), to observe the parameters of the experiments, and vary them so to run new experiments.
Let's assume that we might want to start with the GraspExperiment example
Once you run the Total99 application, you will see a window like the following:

To load an exemplificative experiment you should use the "Load Project" command from the File Menu
(or the corresponding tool bar button). For example you can load the configuration.ini file of the GraspExperiment contained in the directory where you unpacked the examples (i.e.: "myhome/exp/GraspExperiment/conf/"). In case you previously loaded the configuration file of one experiment you can re-loaded it simply by selecting it from the list of previously runned experiments.
Once you loaded the .ini file of the experiment, the Total99 interface will assume the aspect indicated in the following screenshot.

At this point you need to configure and run the experiment by pressing the "Create and Configure" button of the tool bar. Before that, however, you need to compile the experimental plugin (i.e. the source code of the experiment that you want to run (see [Compiling an Experiment Plugin]) and you should verify that the plugin directory parameter (shown in the "Login Path" section of the Total99 graphic Widget) is set to the directory that contains the compiled plugin file (i.e. a file ending with .dll or dylib, depending on your operating system). You can modify the directory by clicking on the current Login Path directory. Alternatively, you can load the plugin file manually with the "Load Plugin" command of the menu bar before pressing the "Create and Configure" button.
Once the experiment has been created and configured the Total99 interface will contains the following parts (from top to bottom):
Then you can open the additional graphic widget tools from the menu bar. In particular the graphic windows that show the world and the robot (RenderWord), the robot’s neural controller (Evonet->Nervous_System), the state of the neurons over time (Evonet->Neurons_Monitor), the viewer that show how performance varied during the adaptive process (Statistics_Viewer), the widget that show you how performance vary while an adaptive process is ongoing (Fitness_Monitor), the dialog box that allow you to select the individual robot that you want to analyze or test (Individual_To_Test), the dialog box that enable you to speed/up or slowdown the simulation and to skip test trial (Evoga_Control).
Some of the exemplificative experiments come with data generated during previously runned adaptation experiments. In particular, in the case of evolutionary experiments like the GraspExperiment, they come with the .fit and .gen files that contains the genotype of best individual of each generation, and the fitness data throughout generations for a series of replications of the experiments performed with different seeds (i.e. random generator seeds). You can watch the maximum, average, and minimum fitness across generations of a specific seed by loading the corresponding file from the Statistc Viewer graphic widget. You can watch the performance of all available replications (seeds) with the "Load All Stat" button of the same widget.
You can observe the behavior exhibited by a robot with a neural controller initialized with random value by using the Test->Random_Individual command. Or you can analyze the behavior of an evolved robot by first selecting the seed and the individual from the “Individual to Test” dialog box (the progressive numbers indicate the number of the corresponding generation) and by then executing the "Test->Selected Individual" command from the menu bar. The behavior of the robot will be displayed in the RenderWorld windows and the state of the neurons of the robot’s neural controller over time will be displayed in the Neurons Monitor window, providing that you previously opened the corresponding graphic widget.
Notice that the colora of the connection weights displayed in the "Nervous System" widget, that indicate the sign and the strength of the corresponding connection weighta, vary when you test a selected individual.
You can run the evolutionary process with the command Action->Evolve. Farsa will carry on the process automatically, will display the statistics in the "Fitness Monitor" window as soon as they become available, and will save the genome of the best individuals and the statistics in the .gen and .fit file. However, since the evolutionary process typically takes a long time, you might want to run it in batch mode (i.e. without graphic) from the command line with the command "total99 --batch --file=configuration.ini --action=evolve".
Below we briefly indroduce how the parameters of an experiment can be inspected and modified from the parameter editor of the Total99 interface. More detailed information is provided in the following sections of the documentation.
Parameters and associated objects are organized hierarchically in FARSA and can be freely modified before the experiment has been configured. To access to a parameter or to a group of parameters you should then first navigate in the parameter tree by clicking over a component to access or to compress the visualization of the corresponding sub-components. You can expand/compress the visualization of a component by clicking on the small triangle on the left of the component name.
Once you found the component that you want to observe and/or modify you can select by clicking over it to access the corresponding parameters on the parameter editor located on the right side of the window. Once you made modification to the parameters you might want to save them by pressing the "Save Project" or the "Save Project As" button of the tool bar.
In the case of the GraspExperiment, the higher-level of the three is constituted by the EvoRobotComponent (i.e. the component that is used to run evolutionary experiments). This high-level object does not include parameters to be configured.
The second level of the tree, that can be accessed by clicking on the EvoRobotComponent entry of the parameter tree, contains the GA (i.a. Genetic Algorithm) component. This component contains several associated parameters that can be modified or removed from the configuration.ini file (unspecified parameters will be set to their default value). Each parameter come with an help description that can be visualized by clicking on the help ("i") icon locate on the right of the parameter.
The "New Parameter" and "New Subgroup" sections located at the bottom of the parameter editor can be used to add a new parameter to be configured or a new sub-components.
The third level of the parameter tree is constituted by the Experiment, the GraspExperiment object in this case, with its associated parameters. Here we found the parameters that are defined in the source code of the experimental plugin
The fourth level (and last level in this case) include ten components: (i) The neural network controller of the robot (NET) with the associated parameters, (ii) The iCub Robot platform with its associated parameters, (iii) five sensor components with associated parameters, and (iv) three motor components with their associated parameters.
After having varied one or more parameters you can save the project and run your own variation of the experiment.
In the following documents of this section we will review the available components and parameters currently included in FARSA and the available graphic widgets. In the following section of the documentation we will explain how to configure and extend FARSA, i.e. how to vary characteristics that are not parametric.
Manual: CompilingPlugin
Manual: Home
Manual: MacSources
Anonymous