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
🚀 Getting Started
It is recommended to use uv to create a virtual environment and install the following package.
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"
-
Install the required packages: Option 1 (recommended): Synchronizes environment with dependencies in pyproject.toml and uv.lock
uv sync source .venv/bin/activate # .venv\Scripts\activate for Windows
Option 2 (manual): Manual editable installation without referencing lockfile
uv venv --python 3.10 # Create virtual environment source .venv/bin/activate # .venv\Scripts\activate for Windows uv pip install -e .
👨💻 Development Setup
-
Install git hooks:
pre-commit install --install-hooks
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 & Formatting:
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
┃ ┣ 📄demo.mp4 // Demo Video
┃ ┣ 📄paper.pdf // Paper
┃ ┗ 📄ppt.pdf // Presentation
┣ 📂logs // SimulationLogs
┣ 📂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
┣ 📄.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.2.1.tar.gz.
File metadata
- Download URL: swarm_squad_ep1-0.2.1.tar.gz
- Upload date:
- Size: 9.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eb05283117f1eccf1acde5ed28bea49b176e348ee2d25439867da16b5c7c798
|
|
| MD5 |
265b77f8cdcc7a0ba95d849bd75bfc5a
|
|
| BLAKE2b-256 |
089196a8199e226ecb68ddd9d028b10d521932494578d9219608d42e76a8a2e9
|
File details
Details for the file swarm_squad_ep1-0.2.1-py3-none-any.whl.
File metadata
- Download URL: swarm_squad_ep1-0.2.1-py3-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40cafe21d7688015547fb1e85795742d0c341b470045e8bd89a02e55fdea4a4
|
|
| MD5 |
6dbcf9850272de83c47a1ae744433b32
|
|
| BLAKE2b-256 |
863df05b55b1cbed1469c8fd3344b20d7532341f63192f9d2624566cb90808c7
|