| Both sides previous revision Previous revision | |
| quickstart_instructions_for_buzz_argos [2016/04/09 22:05] – [ARGoS + Buzz] root | quickstart_instructions_for_buzz_argos [2016/04/10 00:13] (current) – removed ilpincy |
|---|
| ===== ARGoS + Buzz quick start ===== | |
| |
| ==== Installing ARGoS ==== | |
| |
| [[http://www.argos-sim.info|ARGoS]] is a fast multi-robot simulator that can interoperate with Buzz. | |
| |
| To install ARGoS, go to http://www.argos-sim.info/core.php and install a binary package. To get started with ARGoS, refer to the [[https://github.com/ilpincy/argos3-examples|examples]]. | |
| |
| ==== Installing Buzz ==== | |
| |
| Compile and install Buzz following the instructions reported in the [[https://github.com/MISTLab/Buzz|GitHub page]]. Make sure to compile Buzz **after** having installed ARGoS, so the compilation scripts will also compile the ARGoS integration code. | |
| |
| ==== ARGoS + Buzz ==== | |
| |
| === Integration: Basic information === | |
| |
| The Buzz integration library for ARGoS is composed of two elements: | |
| |
| - A set of ARGoS controllers. At the moment, available controllers include one for the [[http://www.swarmanoid.org/swarmanoid_hardware.php.html|foot-bot]] (a wheeled robot) and one for the [[http://pleiades.ca|Spiri]] (a commercial quad-rotor). More can be added easily by subclassing ''CBuzzController'', defined in ''$PREFIX/include/buzz/argos/buzz_controller.h''. ''$PREFIX'' depends on your system and is usually ''/usr'' or ''/usr/local''. | |
| - A special definition of ARGoS' QtOpenGL user functions, which allow Buzz scripts to draw in the OpenGL visualization of ARGoS. With these, a developer can write debugging information on top of each robot. | |
| |
| To have ARGoS find the Buzz integration library in case you installed it in a non-default location, set the environment variable ''ARGOS_PLUGIN_PATH''. This variable is a '':''-separated list of directories in which ARGoS looks for libraries before launching an experiment. For instance: | |
| |
| <code bash> | |
| $ export ARGOS_PLUGIN_PATH=/opt/lib/buzz | |
| </code> | |
| |
| If you installed Buzz without specifying a custom installation prefix (e.g., using only ''cmake ../src; make; make install''), you don't need to set ''ARGOS_PLUGIN_PATH''. | |
| |
| === Defining an ARGoS experiment file === | |
| |
| To use ARGoS and Buzz together, define your ''.argos'' experiment file as usual. | |
| |
| However, instead of a custom controller, in the ''<controllers>'' section use ''<buzz_controller_footbot>'' or ''<buzz_controller_spiri>'' (or both!), depending on the robots you intend to use. For example, if you want to use both controllers, write something similar to this: | |
| |
| <code xml> | |
| <controllers> | |
| |
| <buzz_controller_footbot id="bcf"> | |
| <actuators> | |
| <differential_steering implementation="default" /> | |
| <leds implementation="default" medium="leds" /> | |
| <range_and_bearing implementation="default" /> | |
| </actuators> | |
| <sensors> | |
| <range_and_bearing implementation="medium" medium="rab" show_rays="true" noise_std_dev="0" /> | |
| </sensors> | |
| <params bytecode_file="myscript.bo" debug_file="myscript.bdbg" /> | |
| </buzz_controller_footbot> | |
| |
| <buzz_controller_spiri id="bcs"> | |
| <actuators> | |
| <quadrotor_position implementation="default" /> | |
| <range_and_bearing implementation="default" /> | |
| </actuators> | |
| <sensors> | |
| <range_and_bearing implementation="medium" medium="rab" show_rays="false" /> | |
| <positioning implementation="default" /> | |
| </sensors> | |
| <params bytecode_file="myscript.bo" debug_file="myscript.bdbg" /> | |
| </buzz_controller_spiri> | |
| |
| </controllers> | |
| </code> | |
| |
| To activate drawing, use ''buzz_qt'' to indicate that you want to use the Buzz QtOpenGL user functions: | |
| |
| <code xml> | |
| <visualization> | |
| <qt-opengl> | |
| <user_functions label="buzz_qt" /> | |
| </qt-opengl> | |
| </visualization> | |
| </code> | |
| |
| You can launch ARGoS as usual, with the command: | |
| |
| <code bash> | |
| $ argos3 -c myexperiment.argos | |
| </code> | |
| |
| Make sure the paths of the Buzz files (e.g., ''myscript.bo'' and ''myscript.bdbg'' in the above example) are set correctly. | |
| |
| === Writing debug information === | |
| |
| The Buzz integration library offers a command, called ''debug()'', that allows the developer to write text on top of a robot as shown in this example: | |
| |
| <code buzz> | |
| x = 10 | |
| debug("The value of x is ", x) | |
| </code> | |
| |
| This will print ''The value of x is 10'' on top of each robot that executes that command. | |