Skip to main content

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.

uv pip install swarm-squad-ep1

To run the application, simply type:

swarm-squad-ep1
# or
swarm-squad-ep1 --help

🛠️ Development Installation

  1. Clone the repository and navigate to project folder:

    git clone https://github.com/Sang-Buster/Swarm-Squad-Ep1
    cd Swarm-Squad-Ep1
    
  2. 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"
    
  3. 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

  1. Install git hooks:

    pre-commit install --install-hooks
    

    These hooks perform different checks at various stages:

    • commit-msg: Ensures commit messages follow the conventional format
    • pre-commit: Runs Ruff linting and formatting checks before each commit
    • pre-push: Performs final validation before pushing to remote
  2. Code Linting & Formatting:

    ruff check --fix
    ruff check --select I --fix
    ruff format
    
  3. 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_ep1                    // 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarm_squad_ep1-0.2.3.tar.gz (9.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarm_squad_ep1-0.2.3-py3-none-any.whl (54.5 kB view details)

Uploaded Python 3

File details

Details for the file swarm_squad_ep1-0.2.3.tar.gz.

File metadata

  • Download URL: swarm_squad_ep1-0.2.3.tar.gz
  • Upload date:
  • Size: 9.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.3

File hashes

Hashes for swarm_squad_ep1-0.2.3.tar.gz
Algorithm Hash digest
SHA256 adb66dc61a5e0235a789967cd6c2a33d1f84e7918177c3d0faf3a8c45faf2a55
MD5 00dae9e905fa068ecd2bf0b909cf9072
BLAKE2b-256 df1b1ee240a815169076d7d2fca57515fc5b554dfe22a69980ea564d9da9be7d

See more details on using hashes here.

File details

Details for the file swarm_squad_ep1-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for swarm_squad_ep1-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5f42e253c379bbe9f2abc4eb210bb47171614fb44e09c9d691e16768aca679f0
MD5 e5f3c540e81e564348551ed549fed251
BLAKE2b-256 f02e3249c288a4bbe183132ac47e0a5a2e28e42014eb3f4a5524d7a38529cedb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page