Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
23 of 226 committers (10.2%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.1%) to scientific vocabulary
Keywords from Contributors
Repository
python MAVLink interface and utilities
Basic Info
- Host: GitHub
- Owner: ArduPilot
- License: other
- Language: Python
- Default Branch: master
- Size: 8.69 MB
Statistics
- Stars: 612
- Watchers: 53
- Forks: 669
- Open Issues: 219
- Releases: 23
Metadata Files
README.md
Pymavlink
This is a Python implementation of the MAVLink protocol. It includes a source code generator (generator/mavgen.py) to create MAVLink protocol implementations for other programming languages as well. Also contains tools for analyzing flight logs.
Documentation
Please see http://ardupilot.org/dev/docs/mavlink-commands.html for mavlink command reference.
For realtime discussion please see the pymavlink Gitter channel
Examples can be found in the repository or in the ArduSub book
Installation
Pymavlink supports Python 3. Python 2 support has been removed.
The following instructions assume you are using a Debian-based (like Ubuntu) installation.
Dependencies
Pymavlink has several dependencies :
- [lxml](http://lxml.de/installation.html) : for checking and parsing xml file
Optional :
- numpy : for FFT
- pytest : for tests
On Linux
lxml has some additional dependencies that can be installed with your package manager (here with apt-get) :
bash
sudo apt-get install libxml2-dev libxslt-dev
Optional for FFT scripts and tests:
bash
sudo apt-get install python3-numpy python3-pytest
Using pip you can install the required dependencies for pymavlink :
bash
sudo python3 -m pip install --upgrade lxml
On Windows
Lxml can be installed with a Windows installer from here : https://pypi.org/project/lxml
Installation
For users
It is recommended to install pymavlink from PyPI with pip, that way dependencies should be auto installed by pip.
bash
sudo python3 -m pip install --upgrade pymavlink
Mavnative
Starting from September 2022, mavnative, a C extension for parsing mavlink, was deprecated and removed. Mavnative development was stalled for long time, it only supports MAVLink1 and doesn't get any fix on the protocol.
For developers
From the pymavlink directory, you can use :
bash
sudo MDEF=PATH_TO_message_definitions python3 -m pip install . -v
Since pip installation is executed from /tmp, it is necessary to point to the directory containing message definitions with MDEF. MDEF should not be set to any particular message version directory but the parent folder instead. If you have cloned from mavlink/mavlink then this is /mavlink/message_definitions . Using pip should auto install dependencies and allow you to keep them up-to-date.
Or:
bash
sudo python3 setup.py install
Ardupilot Custom Modes
By default, pymavlink will map the Ardupilot mode names to mode numbers per the definitions in the ardupilotmega.xml file. However, during development, it can be useful to add to or update the default mode mappings.
To do this:
- create a folder named .pymavlink in your home directory (i.e. $HOME on Linux, $USERPROFILE on Windows); and
- add a JSON file called custom_mode_map.json to this new .pymavlink folder.
The JSON file is a dictionary that maps vehicle MAV_TYPE value to a dictionary of mode numbers to mode names. An example that duplicates the existing mapping for MAV_TYPE_FIXED_WING (enum value of 1) vehicles is as follows:
json
{
"1": {
"0": "MANUAL",
"1": "CIRCLE",
"2": "STABILIZE",
"3": "TRAINING",
"4": "ACRO",
"5": "FBWA",
"6": "FBWB",
"7": "CRUISE",
"8": "AUTOTUNE",
"10": "AUTO",
"11": "RTL",
"12": "LOITER",
"13": "TAKEOFF",
"14": "AVOID_ADSB",
"15": "GUIDED",
"16": "INITIALISING",
"17": "QSTABILIZE",
"18": "QHOVER",
"19": "QLOITER",
"20": "QLAND",
"21": "QRTL",
"22": "QAUTOTUNE",
"23": "QACRO",
"24": "THERMAL"
"25": "LOITERALTQLAND",
"26": "AUTOLAND",
}
}
This custom_mode_map.json file can be used to:
- change the display name of an existing mode (e.g. change "TAKEOFF" to "LAUNCH");
- add a new mode (e.g. add "25": "NEW_MODE"); and
- add a mapping for an unsupported vehicle type (e.g. add a mapping for MAV_TYPE_AIRSHIP (enum value of 7) vehicles).
Notes:
- Whilst the MAV_TYPE and mode numbers are integers, they need to be defined as strings in the JSON file, as raw integers can't be used as dictionary keys in JSON.
- This feature updates the default definitions. You can use it to change the name-to-number mapping for a mode, but you completely can't remove an existing mapping.
License
pymavlink is released under the GNU Lesser General Public License v3 or later.
The source code generated by generator/mavgen.py is available under the permissive MIT License.
Owner
- Name: ArduPilot
- Login: ArduPilot
- Kind: organization
- Website: https://ardupilot.org/
- Repositories: 54
- Profile: https://github.com/ArduPilot
ArduPilot development team
GitHub Events
Total
- Create event: 15
- Release event: 8
- Issues event: 24
- Watch event: 100
- Delete event: 6
- Issue comment event: 174
- Push event: 83
- Pull request review comment event: 49
- Pull request review event: 105
- Pull request event: 173
- Fork event: 73
Last Year
- Create event: 15
- Release event: 8
- Issues event: 24
- Watch event: 100
- Delete event: 6
- Issue comment event: 174
- Push event: 83
- Pull request review comment event: 49
- Pull request review event: 105
- Pull request event: 173
- Fork event: 73
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Andrew Tridgell | a****w@t****t | 558 |
| Andrew Tridgell | t****e@s****g | 406 |
| Lorenz Meier | lm@i****h | 382 |
| Peter Barker | p****r@b****u | 197 |
| Bryant | b****s@u****u | 72 |
| Dr.-Ing. Amilcar do Carmo Lucas | a****s@i****e | 49 |
| lm | p****k@p****) | 48 |
| Thomas Gubler | t****r@g****m | 47 |
| James Goppert | j****t@g****m | 47 |
| lm | m****l@q****g | 46 |
| Pierre Kancir | p****n@g****m | 42 |
| Alexander Hedges | a****d | 40 |
| Hamish Willee | h****e@g****m | 36 |
| Andreas Antener | a****a@g****h | 33 |
| dependabot[bot] | 4****] | 26 |
| Vladimir Ermakov | v****1@g****m | 24 |
| Simon Hancock | s****n@l****m | 23 |
| Max Odnovolyk | m****k@g****m | 22 |
| Michael Day | m****9@y****m | 22 |
| Mariano Lizarraga | m****e@g****m | 21 |
| hengli | h****i@s****h | 21 |
| Tom Pittenger | m****b@g****m | 20 |
| James Goppert | j****t@w****m | 19 |
| lm | p****k@s****m | 18 |
| Julian Oes | j****n@o****h | 18 |
| David Goodman | d****a@g****m | 18 |
| Kevin Hester | k****h@g****m | 17 |
| cclauss | c****s@b****h | 17 |
| philipoe | p****n@m****h | 15 |
| Peter Hall | 3****1 | 15 |
| and 196 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 108
- Total pull requests: 455
- Average time to close issues: 10 months
- Average time to close pull requests: 3 months
- Total issue authors: 102
- Total pull request authors: 85
- Average comments per issue: 2.16
- Average comments per pull request: 1.42
- Merged pull requests: 286
- Bot issues: 0
- Bot pull requests: 20
Past Year
- Issues: 18
- Pull requests: 185
- Average time to close issues: 25 days
- Average time to close pull requests: 7 days
- Issue authors: 17
- Pull request authors: 33
- Average comments per issue: 0.44
- Average comments per pull request: 0.75
- Merged pull requests: 117
- Bot issues: 0
- Bot pull requests: 8
Top Authors
Issue Authors
- hamishwillee (4)
- mnumanuyar (2)
- anaam-wingxpand (2)
- WickedShell (2)
- spectre-solutions (1)
- basil-huber (1)
- pv42 (1)
- igordevjspy (1)
- anshulsood-02 (1)
- SourabhPrasad (1)
- iottrends (1)
- ScottHo (1)
- AA-CambSensoriis (1)
- julianoes (1)
- FreshJude (1)
Pull Request Authors
- peterbarker (94)
- tridge (58)
- shancock884 (45)
- robertlong13 (23)
- dependabot[bot] (20)
- cclauss (18)
- amilcarlucas (17)
- IamPete1 (16)
- hamishwillee (14)
- khancyr (11)
- rotu (8)
- andyp1per (5)
- alehed (5)
- noahredon (5)
- bugobliterator (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 246,928 last-month
- Total docker downloads: 11,727
-
Total dependent packages: 25
(may contain duplicates) -
Total dependent repositories: 322
(may contain duplicates) - Total versions: 82
- Total maintainers: 3
pypi.org: pymavlink
Python MAVLink code
- Homepage: https://github.com/ArduPilot/pymavlink/
- Documentation: https://pymavlink.readthedocs.io/
- License: LGPLv3
-
Latest release: 2.4.49
published 11 months ago
Rankings
pypi.org: pymavlink-ws
Python MAVLink code
- Homepage: https://github.com/ArduPilot/pymavlink/
- Documentation: https://pymavlink-ws.readthedocs.io/
- License: LGPLv3
-
Latest release: 2.4.5
published over 6 years ago
Rankings
Maintainers (1)
pypi.org: pymavlink-ws-xrendan
Python MAVLink code
- Homepage: https://github.com/ArduPilot/pymavlink/
- Documentation: https://pymavlink-ws-xrendan.readthedocs.io/
- License: LGPLv3
-
Latest release: 2.4.4
published over 6 years ago
Rankings
Maintainers (1)
Dependencies
- long development
- mocha development
- should development
- sinon development
- webpack ^3.10.0 development
- 260 dependencies
- eslint ^6.1.0 development
- mocha development
- should development
- sinon development
- babel-eslint ^10.0.3
- glob ^7.1.6
- jspack file:local_modules/jspack
- long file:local_modules/long
- mocha ^8.2.0
- should ^13.2.3
- underscore 1.12.1
- winston 3.2.1
- 260 dependencies
- eslint ^6.1.0 development
- mocha development
- should development
- sinon development
- babel-eslint ^10.0.3
- jspack 0.0.4
- underscore 1.12.1
- winston 3.2.1
- Microsoft.NETFramework.ReferenceAssemblies 1.0.0
- Newtonsoft.Json 11.0.1
- System.Runtime.CompilerServices.Unsafe 4.7.0
- future >=0.15.2
- lxml >=3.6.0
- future *
- lxml *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- actions/setup-python v4 composite