buzz_basic

This is an old revision of the document!


Buzz is a dynamic language that allows one to express complex swarm behaviors with concise scripts.

Buzz is designed as an extension language. The task of an extension language is to allow the programmer to work at a higher level of abstraction with respect to that of the underlying system. Thanks to its C interface, Buzz can be used with any kind of robot software that can interoperate with C or C++. This makes it very simple to install Buzz on practically any existing robot, and also integrate it with frameworks such as Robot Operating System.

A Buzz script is compiled through the bzzc compiler into bytecode. The bytecode is then uploaded on each robot in the swarm, and executed by every robot individually. The execution is performed by the Buzz Virtual Machine (BVM), which is installed on every robot in the swarm.

In principle, once the code is uploaded on the robot and the experiment is running, the robots do not need an operator to keep going. However, it is always the case that an operator either needs or wants to monitor the progress of a swarm. For instance, when an error occurs, the operator might want to inspect the state of the robot that experienced the error. Differently from many existing languages, the Buzz bytecode does not contain any debugging symbols. Instead, the debugging symbols are generated by bzzc as a separate file, and must be used by the operator to analyze the cause of an error. The separation of bytecode and debugging symbols spares memory on the (often resource-limited) robots.

To develop and debug Buzz scripts, a simple starting point is to employ the ARGoS simulator. A quickstart guide is available here.

Discrete swarm, step-wise execution. A swarm is seen as a discrete collection of robots. Each robot independently executes the BVM and the uploaded copy of the bytecode. In the current implementation of Buzz, the bytecode must be the same for every robot (i.e., the robots execute the same script).

Communication model. The robots are assumed capable of exchanging information through situated communication. Situated communication is a gossip-based information exchange in which, upon receiving a message, a robot is capable of estimating the relative location of the message source. Situated communication form the

  • buzz_basic.1460498233.txt.gz
  • Last modified: 2016/04/12 21:57
  • by ilpincy