Lulu P/XP colony simulator library that allows one to import (as text file) a P colony or a P swarm (colony of P colonies) and simulate the transfer of simbolic objects.
The library can be included in any standalone C application and includes methods for modifying the contents of the P/XP colony, in order to interface a P/XP colony model with other applications.
A standalone P/XP colony simulation application is included in this package.
- Compilers:
- GCC - for simulations on a computer
- AVR-GCC - for building a library that can be included in an AVR microcontroller application
- Kilolib - ONLY for AVR
- Lulu_C - Python 3 conversion script used to translate Lulu text input files to C source code
- Make - for an automated build process
The build process was tested on an up-to-date Linux distribution (ArchLinux). The build process should work on most unixes and on Windows using packages such as MinGW.
After installing all components and adjusting the corresponding paths (using Makefile parameters), simply execute the following list of commands, in the project folder:
mkdir build build_hex
make
If no errors are reported during compilation, the build folders should contain, among others, the following files:
- build
- lulu.a
- simulator
- build_hex
- lulu.a
- lulu_debug.a
simulator
can be executed as a PC application and will run the P colony specified in the LULU_INSTANCE_FILE
Makefile parameter, by default the increment P colony.
The other build results are static libraries that can be linked to another application and allow it to control the execution process and the contents of the P/XP colony.
The build_hex
folder contains static libraries that can be linked to an AVR micro-controller application, such as a Kilobot controller.
This parameter controls the verbosity of the Lulu
library and the simulator
application. The accepted values are
- 0 (DEBUG)
- 1 (INFO)
- 2 (RELEASE) - no messages are printed
For micro-controller applications, the buildsystem will create 2 versions of the library, with/without message printing in order to simplify the build process for the host application.
More detailed information can be found on the project documentation page.
Andrei George Florea, Cătălin Buiu
Department of Automatic Control And Systems Engineering,
Politehnica University of Bucharest
Bucharest, Romania.