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

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

🛠️ 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. Create a virtual environment:

    uv venv
    
  4. Activate the virtual environment:

    # macOS/Linux
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    
  5. Install the required packages:

    uv pip install -e .
    

👨‍💻 Development Setup

  1. Install ruff and pre-commit:

    uv pip install ruff pre-commit
    
    • ruff is a super fast Python linter and formatter.
    • pre-commit helps maintain code quality by running automated checks before commits are made.
  2. 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 format
    • pre-commit: Runs Ruff linting and formatting checks before each commit
    • pre-push: Performs final validation before pushing to remote
  3. Code Linting:

    ruff check --fix
    ruff check --select I --fix
    ruff format
    
  4. Run the application:

    uv run src/main.py
    

📁 File Tree

 📂Swarm-Squad-Ep1
 ┣ 📂lib                                  // Supplementary materials
 ┃ ┣ 📂img                                   // Readme Assets
 ┃ ┗ 📂old                                   // Original old code
 ┣ 📂src
 ┃ ┣ 📦Swarm-Squad-Ep1                   // Source Code
 ┃ ┃ ┣ 📄main.py                            // Entry point
 ┃ ┃ ┣ 📄config.py                          // Configuration parameters
 ┃ ┃ ┣ 📄utils.py                           // Core utility functions
 ┃ ┃ ┣ 📄visualization.py                   // Visualization functions
 ┃ ┃ ┣ 📂models                         // Model components
 ┃ ┃ ┃ ┗ 📄swarm_state.py                   // Swarm state management
 ┃ ┃ ┣ 📂controllers                    // Controllers for swarm behavior
 ┃ ┃ ┃ ┣ 📄base_controller.py               // Base controller interface
 ┃ ┃ ┃ ┣ 📄communication_controller.py      // Communication-aware controller
 ┃ ┃ ┃ ┣ 📄behavior_controller.py           // Behavior-based controller
 ┃ ┃ ┃ ┣ 📄llm_controller.py                // LLM controller
 ┃ ┃ ┃ ┗ 📄controller_factory.py            // Controller management system
 ┃ ┃ ┣ 📂gui                            // GUI components
 ┃ ┃ ┗ ┗ 📄formation_control_gui.py         // GUI application
 ┣ 📄.gitignore
 ┣ 📄.pre-commit-msg_template.yaml
 ┣ 📄.pre-commit-config.yaml
 ┣ 📄.python-version
 ┣ 📄LICENSE
 ┣ 📄pyproject.toml
 ┣ 📄README.md
 ┗ 📄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.1.5.1.tar.gz (8.5 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.1.5.1-py3-none-any.whl (40.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for swarm_squad_ep1-0.1.5.1.tar.gz
Algorithm Hash digest
SHA256 440ee0600694d8d44ab3e76de64793d6ef6dceccd263323f33296fa491aa03d3
MD5 9b047894680bd9bb5064a8b0c73585f4
BLAKE2b-256 1ae3d999b17eb66b5963257d3a88a1aeb75a04319c5522562823a0692e992892

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for swarm_squad_ep1-0.1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 75911b2454598cca85c22232cb729570f8d99a9e1efaf0e37ce6d8abffae714c
MD5 658a2fe1f487ef5c0ca15b76c5a3c4b1
BLAKE2b-256 66aa257ce9bd568a2f6eb49e5d0b21eae5c0a78e788050ddbb459b604d6910a3

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