Python SDK for multi-drone swarm orchestration over MAVLink
Project description
drone-swarm
Python SDK for multi-drone swarm orchestration.
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c37ac0204f72da65a580d3ab18bad904bbee94aeb126faa398363c98e5cbc80
|
|
| MD5 |
db4e6543dac1b9a5268b130d3949ad6a
|
|
| BLAKE2b-256 |
edc57a904c52b9511e17f57cf65c5aaccd734f28a131208434dc8a283158a415
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2025321e0119ce20304855454b06515851768e931532fb761e7a0819d8cbae8b
|
|
| MD5 |
5a1c82525571120b68d786c5ffa6f27f
|
|
| BLAKE2b-256 |
dd0c555879dd619ea9da804f8d017a388ecbf8b4620c1f5c72f75c2fc5bc8b7b
|