This repository implements a concurrent search-and-track guidance algorithm for a swarm of UAVs with multiple moving targets.
Specifically, the code implements a simulation of a swarm of UAV drones searching an area and attempting to track multiple moving targets.
output.mp4
Figure 1: Output video of simulation. Checkout "Background" section for theoretical details of what's going on.
The implementation of the guidance algorithm relies on the Python package "Stone Soup".
The ultimate goal is to integrate this source code into a UAV Autonomy Package.
Read this section if you want to run your own simulations or modify code.
- Python (>= 3.9)
- FFmpeg (latest version)
Homebrew recommended (N.B. homebrew install directory must be /opt/homebrew
):
brew install python@3.10 FFmpeg
sudo apt-get update && sudo apt-get install ffmpeg python3
- Clone repo
git clone git@github.com:zborffs/Stone_Soup_GMPHD.git
- Create Python virtual environment
python -m venv venv
- Source virtual environment
source venv/bin/activate
- Install required Python packages to virtual environment:
pip install -r requirements.txt
- Run app
python main_guided.py
Expected output:
An application window should get created that looks like this:
Select the window and press any key on your keyboard to continue the program.
You should see this in the terminal:
$ python main_guided.py
--- Took 0.008393049240112305 seconds to initilize ---
--- Took 0.07797729583333333 seconds on average per iteration ---
--- Estimated Rate 12.824245689891251 Hz
Completed
A file called "output.mp4" should have been created. This video file is an visualization of the simulation. Note: It
takes about 20 minutes to construct the video file. Comment out the line anim.save("output.mp4")
, and you should
still be able to see the animation, it just won't save.
This repository implements a guidance algorithm for a swarm of UAVs for multi
[1] Tal Shima, Steven Rasmussen, UAV Cooperative Decision and Control: Challenges and Practical Approaches, 2009
- Great resource for providing high-level background. A bit old.
[2] Stone Soup contributors (2022), Stone Soup Read the Docs, https://stonesoup.readthedocs.io/en/v0.1b11/
- Contains documentation of functions, classes, etc.. Has great tutorials.