mavlink/MAVSDK-Python
MAVSDK client for Python.
What it solves
MAVSDK-Python lets Python developers control drones and other MAVLink-based vehicles without writing low-level MAVLink code. It provides an asyncio-based Python API that communicates with a C++ backend, so you can send commands like takeoff and land from a simple Python script.
How it works
The wrapper is a gRPC client that talks to a gRPC server written in C++ (the "backend" or mavsdk_server). Most of the Python code is automatically generated from proto files (MAVSDK-Proto). When you connect with await drone.connect(), the package automatically starts an embedded mavsdk_server on port 50051 by default, unless you specify a different server address. You can also run mavsdk_server manually and connect to it, which is useful on platforms where the embedded binary doesn't work (like older Raspberry Pi).
Who it’s for
Python developers who want to control drones, ground stations, or other MAVLink devices using a high-level, asynchronous API. It's for anyone using MAVSDK who prefers Python over the native C++ API.
Highlights
- Auto-generated from proto definitions – the API is always in sync with the official MAVSDK protocol.
- Async/await support – requires Python 3.7+ and uses
asynciofor non-blocking operations. - Bundled server –
mavsdk_serveris included and started automatically upon connection. - Rename to
mavsdk-grpc– the package moved frommavsdktomavsdk-grpcon PyPI; the old name now refers to a different native binding.
Related
- Project
- Project
- Project
- Project