Swarm Squad Ep1: Surviving the jam
Project description
Swarm Squad: Episode I – Surviving the Jam
A hybrid control architecture combining behavior-based formation control with LLM-powered decision making for autonomous multi-agent systems.
#Unmanned Aerial Vehicles #Multi-agent Systems #LLM Integration
#Behavior-based Control #Communication-aware #Formation Control
🔬 Research Evolution
This project builds upon our previous research in formation control and swarm intelligence:
- 🚗 Low-Level Controller: Vehicle agents equipped with behavior-based and communication-aware formation control
- 🤖 High-Level Controller: LLM agents processing simulation data to provide strategic guidance
- 🎯 Goal: Enable swarm resilience and mission completion in challenging environments with jamming/obstacles
Supplementary Materials
| Paper | Presentation |
|---|---|
|
|
|
🚀 Getting Started
Get uv and create a virtual environment.
uv venv --python 3.10
source .venv/bin/activate
uv pip install swarm-squad-ep1
To run the application, simply type:
swarm-squad-ep1
# or
swarm-squad-ep1 --help
🛠️ Development Installation
-
Clone the repository and navigate to project folder:
git clone https://github.com/Sang-Buster/Swarm-Squad-Ep1 cd Swarm-Squad-Ep1
-
Install uv first:
# macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Create a virtual environment:
uv venv -
Activate the virtual environment:
# macOS/Linux source .venv/bin/activate
# Windows .venv\Scripts\activate
-
Install the required packages:
uv pip install -e .
👨💻 Development Setup
-
Install ruff and pre-commit:
uv pip install ruff pre-commit
ruffis a super fast Python linter and formatter.pre-commithelps maintain code quality by running automated checks before commits are made.
-
Install git hooks:
pre-commit install --hook-type commit-msg --hook-type pre-commit --hook-type pre-push
These hooks perform different checks at various stages:
commit-msg: Ensures commit messages follow the conventional formatpre-commit: Runs Ruff linting and formatting checks before each commitpre-push: Performs final validation before pushing to remote
-
Code Linting:
ruff check --fix ruff check --select I --fix ruff format
-
Run the application:
uv run src/swarm_squad/main.py
📁 File Tree
📂Swarm-Squad-Ep1
┣ 📂lib // Supplementary materials
┃ ┣ 📂img // Readme Assets
┃ ┣ 📂old // Original old code
┃ ┣ 📄Li-paper.pdf // Original paper
┃ ┣ 📄Xing-paper1.pdf // Paper 1
┃ ┣ 📄Xing-paper2.pdf // Paper 2
┃ ┗ 📄Xing-ppt.pdf // Presentation
┣ 📂logs // Logs
┣ 📂src // Source Code
┃ ┗ 📦swarm_squad // Python package
┃ ┃ ┣ 📂controllers // Controllers for swarm behavior
┃ ┃ ┃ ┣ 📄base_controller.py // Base controller interface
┃ ┃ ┃ ┣ 📄behavior_controller.py // Behavior-based controller
┃ ┃ ┃ ┣ 📄controller_factory.py // Controller management system
┃ ┃ ┃ ┣ 📄formation_controller.py // Formation control
┃ ┃ ┃ ┗ 📄llm_controller.py // LLM controller
┃ ┃ ┣ 📂gui // GUI components
┃ ┃ ┃ ┗ 📄formation_control_gui.py // GUI application
┃ ┃ ┣ 📂models // Model components
┃ ┃ ┃ ┗ 📄swarm_state.py // Swarm state management
┃ ┃ ┣ 📂tests // Test cases
┃ ┃ ┃ ┗ 📄test_ollama.py // Test for Ollama
┃ ┃ ┣ 📄config.py // Configuration parameters
┃ ┃ ┣ 📄main.py // Entry point
┃ ┃ ┣ 📄utils.py // Core utility functions
┃ ┃ ┗ 📄visualization.py // Visualization functions
┣ 📄.gitignore
┣ 📄.pre-commit-config.yaml
┣ 📄.pre-commit-msg_template.py
┣ 📄.python-version
┣ 📄LICENSE
┣ 📄README.md
┣ 📄pyproject.toml
┗ 📄uv.lock
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarm_squad_ep1-0.1.6.tar.gz.
File metadata
- Download URL: swarm_squad_ep1-0.1.6.tar.gz
- Upload date:
- Size: 8.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
177d12c48568dfe621958da5c07191a059aa2db8c2901ecbd051a65ab0374c04
|
|
| MD5 |
b0dad05a052625c98bf3b93ad859eb3c
|
|
| BLAKE2b-256 |
48635b4cfe1bf6db10f91b53379823a6fe6000e325c25859dc12d38880af989a
|
File details
Details for the file swarm_squad_ep1-0.1.6-py3-none-any.whl.
File metadata
- Download URL: swarm_squad_ep1-0.1.6-py3-none-any.whl
- Upload date:
- Size: 49.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e097e27eea5f6f0f37f423b06441f5cd4b874aff52ac93fe7e5e2bcc22dc8010
|
|
| MD5 |
b563e8c608bc42bc7b81f9df909b9d48
|
|
| BLAKE2b-256 |
9fcf62c3e5fc38e3695233870d6df1f26a9d6aaa5991bfac34956ebed490603c
|