Mavlink - Micro Air Vehicle Message Marshalhalling Library.
Mavlink ist eine sehr leichte Kopfzeile-Nachrichtenbibliothek für die Kommunikation zwischen Drohnen und/oder Bodenkontrollstationen. Es besteht hauptsächlich aus Nachrichtensetspezifikationen für verschiedene Systeme ("Dialekte"), die in XML-Dateien definiert wurden, und Python-Tools, die diese in einen geeigneten Quellcode für unterstützte Sprachen umwandeln. Es gibt zusätzliche Python -Skripte, die Beispiele und Versorgungsunternehmen für die Arbeit mit Mavlink -Daten bereitstellen.
Tipp Mavlink eignet sich sehr gut für Anwendungen mit sehr begrenzter Kommunikationsbandbreite. Die Referenzimplementierung in C ist für ressourcenbezogene Systeme mit begrenztem RAM und Flash-Speicher hoch optimiert. Es wird in vielen Produkten von Feldproven und als Interoperabilität zwischen den Komponenten verschiedener Hersteller eingesetzt.
So installieren Sie die minimale Mavlink -Umgebung auf Ubuntu Lts 20.04 oder 22.04, geben Sie Folgendes an einem Terminal ein:
# Dependencies
sudo apt install python3-pip
# Clone mavlink into the directory of your choice
git clone https://github.com/mavlink/mavlink.git --recursive
cd mavlink
python3 -m pip install -r pymavlink/requirements.txt
Sie können dann die Mavlink2 C-Bibliothek für message_definitions/v1.0/common.xml
aus dem Verzeichnis /mavlink
wie gezeigt erstellen:
python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=2.0 --output=generated/include/mavlink/v2.0 message_definitions/v1.0/common.xml
Um die Header in CMake einzubeziehen, installieren Sie sie lokal, z. B. in die install
:
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install -DMAVLINK_DIALECT=common -DMAVLINK_VERSION=2.0
cmake --build build --target install
Verwenden Sie dann find_package
, um die Abhängigkeit in CMakeLists.txt
zu erhalten.
find_package(MAVLink REQUIRED)
add_executable(my_program my_program.c)
target_link_libraries(my_program PRIVATE MAVLink::mavlink)
Und übergeben Sie das lokale Installationsverzeichnis an CMAKE (passen Sie sich an Ihre Verzeichnisstruktur an):
cd ../my_program
cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=../mavlink/install
Für ein vollständiges Beispiel überprüfen Sie Beispiele/c.
Hinweis: Obwohl wir in CMake target_link_libraries
verwenden, "Link" zu Mavlink nicht "Link", da es sich nur um eine Bibliothek nur für Header handelt.
Anweisungen zur Verwendung der C -Bibliotheken werden dann mit C Mavlink -Bibliotheken (Mavgen) behandelt.
Hinweis: Die Installation der Mavlink Toolchain erläutert, wie Mavlink auf anderen Ubuntu -Plattformen und -fenstern installiert wird, während Mavlink -Bibliotheken generiert werden, erklärt, wie Sie Mavlink für die anderen vom Projekt unterstützten Programmiersprachen erstellen. Die Untertopien der Verwendung von Mavlink-Bibliotheken erklären, wie die generierten Bibliotheken verwendet werden.