| Both sides previous revision Previous revision Next revision | Previous revision |
| quickstart_instructions_for_buzz_argos [2016/04/07 04:26] – root | quickstart_instructions_for_buzz_argos [2016/04/10 00:13] (current) – removed ilpincy |
|---|
| ==== ARGoS + Buzz quick start ==== | |
| |
| === 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]]. | |
| |
| === 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 systems 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="testscript.bo" debug_file="testscript.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="testflocking.bo" debug_file="testflocking.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> | |