Mavlink - Micro Air Vehicle Message Marshalling Library.
O Mavlink é uma biblioteca de mensagens somente para cabeçote muito leve e somente para comunicação entre drones e/ou estações de controle de solo. Consiste principalmente nas especificações do conjunto de mensagens para diferentes sistemas ("dialetos") definidos em arquivos XML e ferramentas Python que as convertem em código-fonte apropriado para linguagens suportadas. Existem scripts python adicionais que fornecem exemplos e utilitários para trabalhar com dados Mavlink.
O Tip Mavlink é muito adequado para aplicações com largura de banda de comunicação muito limitada. Sua implementação de referência em C é altamente otimizada para sistemas com restrição de recursos com RAM limitada e memória flash. É comprovado em campo e implantado em muitos produtos, onde serve como interface de interoperabilidade entre componentes de diferentes fabricantes.
Para instalar o ambiente mínimo de Mavlink no Ubuntu LTS 20.04 ou 22.04, digite o seguinte em um 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 Você pode construir a biblioteca C Mavlink2 para message_definitions/v1.0/common.xml no diretório /mavlink , como mostrado:
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 os cabeçalhos em cmake, instale -os localmente, por exemplo, na install do diretório:
cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install -DMAVLINK_DIALECT=common -DMAVLINK_VERSION=2.0
cmake --build build --target install
Em seguida, use find_package para obter a dependência em CMakeLists.txt :
find_package(MAVLink REQUIRED)
add_executable(my_program my_program.c)
target_link_libraries(my_program PRIVATE MAVLink::mavlink)
E passe no diretório de instalação local para cmake (adapte à sua estrutura de diretório):
cd ../my_program
cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=../mavlink/install
Para um exemplo completo, verifique exemplos/c.
Nota: Mesmo que usemos target_link_libraries no CMake, ele não "link" para Mavlink, pois é apenas uma biblioteca somente para cabeçalho.
As instruções para o uso das bibliotecas C são então cobertas usando as bibliotecas C Mavlink (MavGen).
NOTA: A instalação do Mavlink Toolchain explica como instalar o Mavlink em outras plataformas e Windows do Ubuntu, enquanto gera bibliotecas Mavlink explica como criar o Mavlink para as outras linguagens de programação suportadas pelo projeto. Os subtópicos do uso das bibliotecas Mavlink explicam como usar as bibliotecas geradas.