BABEL test kit v3.0

(c) Juan Antonio Fernandez Madrigal, 2006-2009
(c) Jose Luis Blanco Claraco, 2007-2009
-------------------------------------------------

To test BABEL, you can generate and execute the following modules (they are in spanish 
  but are self-contained):

A) "ICE_InterfazCORBA_(Simulator).ice" - simulator of a mobile robot
B) "ICE_PLS_v2.0(Simulador).ice" - laser sensor simulator, located at the front of the 
    robot and with a scanning range of 180 degrees. 
C) "ICE_ReactiveNavigator_v2.1.ice" - obstacle avoidance method.
D) "ICE_pruebaSims.ice" [The one in the directory of the application] - test module to call the others that allows the user to send 
    simple movement commands to the robot and produce a log file of the navigation. 

You will need one of these compilers installed in your system (note the corresponding 
BABEL platform you should select for each compiler):
- Visual C++ 6.0 (BABEL code generator: Hyperion)
- Visual Studio 2008 (VS9) (BABEL code generator: Endymion)

1.- For each .ice file (in this order: A, B, C, D), open the file with the 
 ModuleDesigner and generate its source code with the Hyperion/Endymion configuration. 
 Use a different and clean directory for each module. Just when the ModuleDesigner ask 
 you about compiling automatically for Hyperion (or after full generation for Endymion), 
 copy into the generation directory the .idl files that were generated from the previous 
 modules (that is: in module A you do not have to copy any .idl file; in module B you 
 have to copy the .idl from the module A; etc). This is due to the dependencies between
 the modules. Finally, accept automatic compilation for Hyperion, or open the solution project
 for Endymion and compile in *Release*.

2.- For these modules, copy the listed files from the generation directory to their corresponding 
 'Release' subdirectory:
    - PLS: map_example.bmp, CONFIG_PLS_SimulatorFromBitmap.ini
	- ReactiveNavigator: CONFIG_ReactiveNavigator.ini, CONFIG_RobotDescription.ini

3.- Execute the "ExecutionManager". Register the four executables (one for each module) from their respective 
  Release directories in the central panel and define an execution sequence in the right panel 
  with this ordering: InterfazCORBA, PLS, ReactiveNavigator, pruebaSims. Add a ~FOUR second pause by pressing 
  the button "Pauses" and accepting the dialog.

4.- Launch from the ExecutionManager the name and event CORBA services. If you have any firewall, let them 
  to access the network.

5.- Execute the sequence of modules. 

6.- You might now see an (initially minimized) GUI window named "PLS simulator state", which shows the robot 
  location and the simulated environment. The reactive navigator module may need a few minutes to build a 
  pre-computed tables needed during normal execution. By looking at the console output, wait until the module 
  notifies it is ready to continue. This delay only happens the first time the module is executed.

7.- You can interact with the robot through the console menu of the pruebaSims module: change the robot speed 
 and orientation, logging the navigation, etc. The log, if closed and saved, will be located in the same directory 
 as the executable file of the pruebaSims module. You can also start a reactive navigation by selecting the 
 corresponding option in the menu and entering any feasible target point in the map. The robot will start to move
 avoiding the obstacles in the map.

8.- End the application when you wish.

9.- You can view graphically the log file using the MatLab function DisplayLog included in the 
  kit for loading the log.txt file generated by the PruebaSims module and the files OUT_LASER_SIM_GRIDMAP.BMP 
  and OUT_LASER_SIM_GRIDMAP_LIMITS.TXT generated by the PLS module.  
  
