Both sides previous revision Previous revision Next revision | Previous revision |
quickstart_instructions_for_buzz_argos [2016/04/07 04:20] – 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 integration code of Buzz and 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. | |
| |
== 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> | |