MAVkit es una caja de herramientas C++ para MAVLink 2.0 en la línea de comandos.
Puede mostrar , redirigir , transmitir , registrar y reproducir datos desde y hacia diferentes tipos de interfaz ( serie , UDP , TCP , archivo ).
MAVkit también es un marco para programadores MAVLink. Está construido sobre una arquitectura modular donde cada módulo se puede utilizar de forma independiente dentro de otros proyectos. En ese caso, proporciona un bloque MAVLink simple que se puede reemplazar según el hardware de comunicación.
Diseñado teniendo en cuenta la baja latencia, mantiene los buffers de E/S a salvo de desbordamientos (que provocan la pérdida de datos) mediante el uso de un bucle de procesamiento de doble subproceso por interfaz (lectura y proceso rápidos).
Nota: asegúrese de utilizar el siguiente comando recursivo, hay dos niveles de submódulo en mavlink.
git submodule update --init --recursive
Dependencias : Dependencias habituales de Boost + MAVLink
mkdir build
cd build
cmake ..
make
Mavkit está organizado en módulos llamados mensajeros . Un mensajero puede recibir y enviar mensajes a otras personas de forma totalmente simultánea.
Cada mensajero puede ser un enlace serie, un socket UDP, un archivo de registro,...
debes especificar al menos un mensajero (el primero) para el rol de maestro . Este en particular estará conectado dúplex a todos los demás mensajeros creados en ese momento. Por el contrario, los mensajeros secundarios no estarán conectados entre ellos.
A continuación se muestra un ejemplo de dos instancias de MAVkit, compuestas por 4 y 2 mensajeros respectivamente y conectadas entre ellos a través de UDP. Tenga en cuenta que los maestros están conectados con todos los demás mensajeros, mientras que estos no están vinculados entre ellos.
Una vez que lo haya creado, puede ejecutar MAVKit desde la línea de comandos especificando los mensajeros uno tras otro.
El primer mensajero asumirá el papel de maestro.
Argumentos:
ejemplo: --tty /dev/ttyUSB0 57600
Argumentos:
ej: --udp_server 14550
Argumentos:
--udp_client 192.168.1.10 14550
Argumentos:
ej: --tcp_server 14550
Argumentos:
--tcp_client 192.168.1.10 14550
Guarde los mensajes recibidos en archivos .raw y .ts (.raw contiene los datos sin procesar de mavlink, .ts contiene la marca de tiempo para cada mensaje).
Sin argumentos.
--log
Reproduzca el contenido de archivos .raw y .ts.
Argumentos:
ej: --file ../myLog 2.0 50
Enviar mensajes a la salida estándar.
Sin argumentos.
--display
Puedes combinar casi tantos mensajeros como quieras en la línea de comando.
Ejemplo :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551