This is the code that accompanies "A Distributed Multi-Robot Framework for Exploration, Information Acquisition and Consensus" by Aalok Patwardhan and Andrew J Davison, presented at IEEE ICRA 2024.
Install Raylib dependencies as mentioned in https://github.com/raysan5/raylib#build-and-installation This will be platform dependent
OpenMP is required (included with gcc in Linux, you may need to install on other platforms)
Clone the repository with the submodule dependencies:
git clone https://github.com/aalpatya/gbpstack.git --recurse-submodules
cd gbpstack
Use CMAKE to set up the build environment and then run 'make':
mkdir build
cd build
cmake ..
make
Make any changes to the simulations you want in config/config.json and then run:
./gbpstack
Examples config files are in config directory, and include:
config.json
(default: robots travel to the opposite sides of a circle in free space)circle_cluttered.json
(robots travel to the opposite sides of a circle around some obstacles)
Run the simulation:
./gbpstack --cfg ../config/circle_cluttered.json
Or create your own config_file.json and run:
./gbpstack --cfg ../config_file.json
Press 'H' to display help and tips!
Use the mouse wheel to change the camera view (scroll : zoom, drag : pan, shift+drag : rotate)
Press 'spacebar' to transition between camera keyframes which were set in src/Graphics.cpp
.
Edit the parameters in the config files and see the effects on the simulations!
You may want to create your own formations and scenarios for the robots.
Towards the end of src/Simulator.cpp
there is a function called createOrDeleteRobots()
, where you may add your own case.