/magics

Master Thesis Project in Computer Engineering at Aarhus University 2024 on "Simulating Multi-agent Path Planning in Complex environments using Gaussian Belief Propagation and Global Path Finding". Available here (https://drive.google.com/file/d/12g-7bqcy_yfkZdpKzxQAErayFJQhu4sE/view?usp=sharing)

Primary LanguageJupyter NotebookMIT LicenseMIT

magics

Master Thesis Project in Computer Engineering at Aarhus University 2024 on "Simulating Multi-agent Path Planning in Complex environments using Gaussian Belief Propagation and Global Path Finding". Available here (https://drive.google.com/file/d/12g-7bqcy_yfkZdpKzxQAErayFJQhu4sE/view?usp=sharing)

Motivating Example

|:---------------------------------------------------------:|:---------------------------------------------------------:| | Waypoint Tracking | Path Tracking | | https://github.com/user-attachments/assets/832fe84b-4b8b-4473-bfe1-9d87153988af | https://github.com/user-attachments/assets/6b8df209-d1db-4f35-9271-1c61ef660ab6 |

Demo

The video below demonstrates some of the features of the simulation tool, and shows how the GBP algorithm can handle complex scenarios such as a multi-lane twoway junction.

magics-functionality-demo-trimmed-for-github.webm

Thesis

The accompanying thesis is available online here.

External Dependencies

Most dependencies used are available through the crates.io registry. And should work on all major platforms supported by the cargo build tool. Still some external dependencies are needed for the graphical session.

Dependencies Platform Specific
udev Linux
alsa-lib Linux
vulkan-loader
xorg.libX11 Linux + X11
xorg.libXcursor Linux + X11
xorg.libXi Linux + X11
xorg.libXrandr Linux + X11
libxkbcommon Linux + X11
wayland Linux + Wayland
egl-wayland Linux + Wayland
freetype
fontconfig

The exact name of the dependency might vary between platforms, and even between Linux distributions. Consult the respective package management tool used on your system for their exact names.

Nix/NixOS

The ./flake.nix file provides a development shell with all the necessary dependencies to run the project. If you have direnv installed you can simply use the provided .envrc and type direnv allow to automatically enter it. Otherwise you can run:

# To enter the development environment
nix develop

Build

The entire project can be build with the following command:

cargo build --release

Run

cargo run --release --bin magics # Open the simulator
cargo run --release --bin magics -- --list # List all available scenarios

# Run a specific scenario
cargo run --release --bin magics -- -i <SCENARIO_NAME>
cargo run --release --bin magics -- --initial-scenario <SCENARIO_NAME>

Credits

The primary algorithm for GBP path planning is based on gbpplanner by Aalok Patwardhan from Imperial College London and Dyson Robotics Lab. As part of this thesis we have reimplemented and extended upon in Rust!