Mavlink - Biblioteca Micro Air Vehicle Message Marshalling.
Mavlink es una biblioteca de mensajes muy liviana y solo de encabezado para la comunicación entre drones y/o estaciones de control de tierra. Consiste principalmente en las especificaciones del conjunto de mensajes para diferentes sistemas ("dialectos") definidos en archivos XML y herramientas de Python que los convierten en código fuente apropiado para lenguajes compatibles. Hay scripts de Python adicionales que proporcionan ejemplos y utilidades para trabajar con los datos de Mavlink.
TIP Mavlink es muy adecuado para aplicaciones con ancho de banda de comunicación muy limitado. Su implementación de referencia en C está altamente optimizada para sistemas limitados por recursos con RAM y memoria flash limitada. Está probado en campo e implementado en muchos productos donde sirve como interfaz de interoperabilidad entre componentes de diferentes fabricantes.
Para instalar el entorno Mavlink mínimo en Ubuntu LTS 20.04 o 22.04, ingrese lo siguiente en un terminal:
# 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
Luego puede construir el Mavlink2 C-Bibrary para message_definitions/v1.0/common.xml
desde el directorio /mavlink
como se muestra:
python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=2.0 --output=generated/include/mavlink/v2.0 message_definitions/v1.0/common.xml
Para incluir los encabezados en Cmake, instálelos localmente, por ejemplo, en el directorio install
:
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install -DMAVLINK_DIALECT=common -DMAVLINK_VERSION=2.0
cmake --build build --target install
Luego use find_package
para obtener la dependencia en CMakeLists.txt
:
find_package(MAVLink REQUIRED)
add_executable(my_program my_program.c)
target_link_libraries(my_program PRIVATE MAVLink::mavlink)
Y pase el directorio de instalación local a CMake (adaptarse a la estructura de su directorio):
cd ../my_program
cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=../mavlink/install
Para un ejemplo completo, verifique los ejemplos/c.
Nota: Aunque usamos target_link_libraries
en CMake, en realidad no "enlace" a Mavlink, ya que es solo una biblioteca de solo encabezado.
Las instrucciones para usar las bibliotecas C se cubren en el uso de bibliotecas C Mavlink (MAVGEN).
Nota: La instalación de la cadena de herramientas Mavlink explica cómo instalar Mavlink en otras plataformas y ventanas de Ubuntu, mientras que la generación de bibliotecas Mavlink explica cómo construir Mavlink para los otros lenguajes de programación admitidos por el proyecto. Los subtópicos del uso de bibliotecas Mavlink explican cómo usar las bibliotecas generadas.