Skip to main content

Python library used to communicate with multiple UAS simultaneously using MAVLink

Project description

PyPI Version Contribution Frequency License: GPLv3 Open Issues Documentation Status

What is pymavswarm?

pymavswarm is a Python library implemented to enable interaction with drone swarms using the MAVLink protocol. This library supports reading MAVLink messages sent from multiple agents in a swarm and sending MAVLink messages to agents within the swarm. Such functionality ultimately enables development of new swarm applications such as ground control stations.

Main features

Here are some of the main features of pymavswarm:

  • Easily send MAVLink commands to multiple drones, simultaneously

  • Monitor the state of swarm drone agents

  • Implement custom commands and swarm algorithms

  • Develop applications for on-board companion computers

  • Implement custom swarm ground control stations

  • Log incoming MAVLink messages for future evaluation and debugging

  • Construct pre-planned missions

  • Multi-agent collision avoidance using reachability analysis

Installation

pymavswarm may be installed from PyPI by running:

$ python3 -m pip install pymavswarm

To build pymavswarm from source, first ensure that at least Python 3.10 is installed. Once this dependency has been met, refer to the steps below:

  1. Clone the project repository

  2. Navigate to the pymavswarm/ base directory

$ cd path/to/pymavswarm/
  1. Install the pymavswarm Python package

$ python3 -m pip install .

Quick start

pymavswarm has been implemented to enable easy interfacing with drone swarms. Refer to the following code snippet for a simple example to get started with the library. Additional examples may be found in the project examples.

import time

from pymavswarm import MavSwarm

# Create a new pymavswarm interface
mavswarm = MavSwarm()

# Establish a connection with a USB telemetry device
mavswarm.connect('/dev/ttyUSB0', 115200, 255, 0)

# Wait for the swarm to be populated
while not mavswarm.agents:
    pass

# Arm each agent in the swarm
mavswarm.arm()

# Briefly delay to allow all agents to arm
time.sleep(5.0)

# Disarm each agent in the swarm
mavswarm.disarm()

# Close the pymavswarm connection
mavswarm.disconnect()

Getting help

If you have questions regarding pymavswarm usage or contribution please ask a question on our Discussions board!

Contributing

All contributions and ideas are welcome! Detailed guidelines regarding how to contribute can be found in the contribution guidelines.

License

pymavswarm is released under the GNU General Public License v3 or later

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

pymavswarm-1.1.0.tar.gz (67.6 kB view details)

Uploaded Source

Built Distribution

pymavswarm-1.1.0-py3-none-any.whl (94.0 kB view details)

Uploaded Python 3

File details

Details for the file pymavswarm-1.1.0.tar.gz.

File metadata

  • Download URL: pymavswarm-1.1.0.tar.gz
  • Upload date:
  • Size: 67.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pymavswarm-1.1.0.tar.gz
Algorithm Hash digest
SHA256 87f98b030646a72fdeba1fc0546a31616608ac4d73350067edd0106ed7267118
MD5 277aa3e783630284a5fe438353693897
BLAKE2b-256 5886c661ea95bf328e39eeaab8b58dd2f4da07c68d75fb64bbf55ac1d8a62532

See more details on using hashes here.

File details

Details for the file pymavswarm-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pymavswarm-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 94.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pymavswarm-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08bcd366e674b4f60bca632b4b35b89a1d7d9b20cc4c6338d9f20d976212093f
MD5 39bcf2ce1793914d47cfa0ac8de91268
BLAKE2b-256 00e5e936dac67fe8af4448e1c953bbc3b399e340eeb4d05d4ab4b061c3bf14f6

See more details on using hashes here.

Supported by

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