Skip to main content

Python SDK for multi-drone swarm orchestration over MAVLink

Project description

drone-swarm

Python SDK for multi-drone swarm orchestration.

PyPI version Downloads License: MIT CI Python

Turn a collection of ArduPilot drones into a coordinated swarm with 10 lines of Python.

from drone_swarm import Swarm
import asyncio

async def main():
    swarm = Swarm()
    swarm.add("alpha", "udp:127.0.0.1:14550")
    swarm.add("bravo", "udp:127.0.0.1:14560")
    await swarm.connect()
    await swarm.takeoff(altitude=10)
    await swarm.formation("v", spacing=15)
    await swarm.rtl()

asyncio.run(main())

Why drone-swarm?

Problem Status Quo drone-swarm
Coordinate multiple drones Raw MAVLink from scratch swarm.formation("v")
Test without hardware Manual SITL setup per drone Swarm.simulate(n=5)
Handle mid-flight failures Hope for the best Auto-failsafe + replanning
Preflight safety checks DIY scripts run_preflight_checks()

Features

  • Swarm coordination -- synchronized takeoff, landing, RTL, and formations
  • Formation flying -- V-shape, line, grid, circle, orbit, and custom patterns
  • Mission planning -- area sweep, patrol, orbit point, and intercept
  • Safety first -- preflight checks (GPS, battery, compass, failsafes, Remote ID, vibration), geofencing, emergency land/kill
  • Simulation -- built-in SITL launcher for hardware-free testing
  • Async-native -- built on asyncio for concurrent multi-drone I/O
  • Telemetry -- real-time position, battery, and heartbeat monitoring with auto-RTL on low battery
  • Configurable -- YAML/dict config with sensible defaults

Quick Install

pip install drone-swarm

Requires Python 3.11+. For simulation support:

pip install drone-swarm[sim]

Documentation

Full docs, tutorials, and API reference: docs/index.md

Who is this for?

  • Developers building drone applications (agriculture, inspection, SAR, mapping)
  • Researchers studying swarm robotics and multi-agent coordination
  • Students learning autonomous systems and MAVLink
  • Startups building commercial drone services
  • Defense integrators needing an open, auditable swarm layer

Contributing

Contributions welcome. See CONTRIBUTING.md for guidelines.

git clone https://github.com/yuyongju/drone-swarm.git
cd drone-swarm
pip install -e ".[dev]"
pytest

License

MIT License. See LICENSE for details.

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

drone_swarm-0.1.1.tar.gz (3.0 MB view details)

Uploaded Source

Built Distribution

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

drone_swarm-0.1.1-py3-none-any.whl (72.6 kB view details)

Uploaded Python 3

File details

Details for the file drone_swarm-0.1.1.tar.gz.

File metadata

  • Download URL: drone_swarm-0.1.1.tar.gz
  • Upload date:
  • Size: 3.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for drone_swarm-0.1.1.tar.gz
Algorithm Hash digest
SHA256 5c37ac0204f72da65a580d3ab18bad904bbee94aeb126faa398363c98e5cbc80
MD5 db4e6543dac1b9a5268b130d3949ad6a
BLAKE2b-256 edc57a904c52b9511e17f57cf65c5aaccd734f28a131208434dc8a283158a415

See more details on using hashes here.

File details

Details for the file drone_swarm-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: drone_swarm-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 72.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for drone_swarm-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2025321e0119ce20304855454b06515851768e931532fb761e7a0819d8cbae8b
MD5 5a1c82525571120b68d786c5ffa6f27f
BLAKE2b-256 dd0c555879dd619ea9da804f8d017a388ecbf8b4620c1f5c72f75c2fc5bc8b7b

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