Protocolo, API e implementação

O MAVLink define mensagens e serviços de comunicação; o MAVSDK oferece APIs para desenvolvedores para as funcionalidades suportadas. Uma mensagem existir no protocolo, uma biblioteca conseguir enviá-la e um veículo conseguir executá-la são três condições separadas. A documentação oficial da interface offboard observa que os setpoints e as combinações suportados dependem da pilha de voo e do tipo de veículo. O Offboard do PX4 e o Guided do ArduPilot não são nomes intercambiáveis para um comportamento idêntico. Compare a documentação da API da biblioteca instalada com a documentação da pilha receptora, uma operação necessária de cada vez. Exiba a pilha de voo e a versão detectadas ao conectar. Um transporte que funciona ainda pode levar a uma implementação inesperada; trate combinações desconhecidas como não verificadas, e não como imediatamente executáveis.

Trate a execução de comandos como uma máquina de estados

Represente o controle externo com estados explícitos: conexão, verificação de saúde, preparação, execução, interrupção e conclusão. A confirmação de recebimento de um comando não é prova de que o plano solicitado foi voado. Observe modo, posição, velocidade e estado da câmera pela telemetria. Implemente os requisitos de atualização ou de prova de vida da pilha receptora e defina quando os alvos obsoletos são descartados. Perder a autoridade de controle não faz necessariamente com que toda chamada de definição falhe de imediato. Monitore explicitamente as mudanças de autoridade e de modo, e torne o estado resultante compreensível para o operador. Mantenha comando, confirmação e observação separados nos registros. Identificadores correlacionados e ordenação ajudam a distinguir uma falha de comunicação de uma mudança deliberada de autoridade de controle. A pesquisa sobre uma aeronave que continua voando após colisões está na ficha de artigo do guia de Inspeção A Collision-resilient Flying Robot.

Especifique tempo e coordenadas em conjunto

Nosso exercício original de projeto associa a cada alvo um referencial, unidades, hora de criação, validade e um ID de comando. Isso evita que uma estimativa antiga do sujeito, derivada de imagem, seja tratada como atual. A hora de recepção do vídeo e a hora de exposição podem diferir, por isso meça o alinhamento temporal em vez de presumi-lo. Comece com vídeo gravado e simulação, injetando atraso e atualizações perdidas. Quando a incerteza ou a latência exceder os limites declarados, transite para um estado conservador predefinido. A biblioteca de comunicação não toma a decisão operacional no lugar do integrador. O desvio de relógio pode se parecer com latência de processamento. Defina como os dispositivos se sincronizam e como a precisão da sincronização é medida antes de alegar precisão no tempo de gravação ou de movimento.

YOUR NEXT STEP

Coloque em prática.

Atenção a estas armadilhas
  • Suporte a MAVLink não implica suporte completo a todos os comandos padrão.
  • Não use o sleep fixo de um exemplo como confirmação, em produção, de que um movimento foi concluído.

Fontes e escopo editorial

As explicações e os exercícios são material editorial original. Verifique as condições específicas de cada produto na versão da documentação indicada.

  1. MAVLink — Offboard Control Interface ↗
  2. MAVSDK — Offboard Control ↗
  3. MAVSDK — Offboard Velocity Example ↗

Data da pesquisa: 21 de outubro de 2026. Verifique a versão vinculada, o hardware compatível e as condições aplicáveis. As evidências incluem texto revisado diretamente e registros de índices de busca oficiais.

Ler a metodologia e as questões em aberto →