UAVCAN é um protocolo aberto e leve para a rede móvel a bordo. Recentemente, seu desenvolvedor e mantenedor Pavel KirienkoSpymfalou sobre o protocolo no PX4 Developer Summit , uma grande conferência da comunidade de drones usando o ecossistema de código aberto em torno do piloto automático PX4 , do qual UAVCAN faz parte. E Pavel também preparou um artigo detalhado para a comunidade de língua russa sobre Habré na sequência de seu relatório.
Neste artigo, falarei sobre o lado prático do uso do protocolo do ponto de vista dos desenvolvedores de sistemas de controle automático para UAVs: como escolhemos o UAVCAN, o que fazemos com ele e quais oportunidades vemos no futuro.

UAVs híbridos
Uma aeronave de decolagem e pouso vertical (VTOL) é um híbrido de um helicóptero e uma aeronave que pode durar mais do que um helicóptero devido à elevação aerodinâmica da asa e não requer uma pista ou um dispositivo de lançamento e um pára-quedas como os drones de aeronaves convencionais. O desenvolvimento de tais dispositivos é agora uma direção popular e promissora. Esse dispositivo pode ser usado para entrega, mapeamento, monitoramento e outros fins. A maioria dos projetos de táxi voador é baseada no mesmo princípio de design, por exemplo:
- o táxi aéreo totalmente elétrico Lilium Jet da empresa alemã Lilium ;
- a aeronave elétrica Heaviside, de baixo ruído , da empresa Kitty Hawk, de Sebastian Trun (que muitos conhecem de veículos não tripulados);
- Projeto Vahana da Airbus.

Uma aeronave de decolagem e pouso vertical da Innopolis University
Desenvolvemos três modelos de pequenos veículos aéreos não tripulados com diferentes envergadura, carga útil e fontes de energia - todos elétricos e com motores de combustão interna. Cooperamos com o Instituto de Aviação de Kazan e empresas de aviação de Kazan em projetos de aeronaves, e o foco de nosso trabalho é a eletrônica, algoritmos e controle automático.
O que UAVCAN tem a ver com isso?
Para quem está no negócio de drones, uma estrutura de controle típica se parece com isto:

Layout típico de UAV baseado no piloto automático PX4. Fonte Os
motores são controlados por controladores de velocidade (ESC), para os quais os pontos de ajuste do piloto automático são fornecidos por meio de sinais PWM. Os sensores são conectados por meio de várias interfaces diferentes - UART, I2C, SPI. Além de telemetria, controle remoto, fonte de alimentação - e você obtém uma "aranha" dos fios. Mas esse não é o problema principal.
Quanto mais longos os fios, ou seja, quanto maior o aparelho, mais esse circuito é suscetível a captadores. Tivemos que pensar nisso desde o início, pois nossas aeronaves têm envergadura de 2 e 4 metros, e esse não é o limite.
Anteriormente, para o projeto de um dirigível de 40 metros, trabalhávamos com CAN (apenas o protocolo era baseado em CANOpen). E a decisão de usar o UAVCAN foi uma coisa natural para nós: o PX4 já tem o seu suporte, e nem houve disputa na equipe sobre isso. Inicialmente, queríamos substituir as longas linhas de PWM por uma interface digital a fim de dimensionar nossas soluções para aeronaves com envergadura diferente.
Acontece que UAVCAN não é CAN para UAV
Ao substituir links PWM por links UAVCAN, paramos de nos preocupar com fios longos e problemas de ruído, e reduzimos significativamente o número de conexões de piloto automático.
Havia duas opções de como fazer isso. A primeira é usar governadores de motor e servo drives com interface UAVCAN. Tais são, por exemplo, em Zubax . A segunda é fazer adaptadores UAVCAN que são instalados diretamente ao lado do ESC. Escolhemos a segunda opção, porque a escolha de ESC com interface UAVCAN é pequena. Primeiro, usamos adaptadores do projeto UAVCAN for Hobbyists ( UC4H ), então decidimos fazer nossos próprios dispositivos com um conversor DC-DC embutido, nosso próprio circuito, firmware e diodos chatos.

Nossos dispositivos com interface UAVCAN
Peguei o gosto
Então percebemos que, em vez de uma dúzia de fios, poderíamos usar o barramento UAVCAN para interagir não apenas com atuadores, mas também com a maioria dos dispositivos externos. Ele também tem um bom efeito no isolamento de vibração do controlador instalado em uma plataforma especial. Como resultado, desenvolvemos uma série de dispositivos para nosso próprio uso, mas agora vemos que eles são interessantes para os outros:
- Conversor CAN-PWM de até 4 canais: o dispositivo é conectado ao barramento CAN, recebe e processa sinais de controle, dá saída PWM. Você pode alimentar a placa diretamente da bateria em até 60 V; inclui um conversor DC-DC que fornece à placa e ao consumidor uma tensão de 5 V (3 A) (por exemplo, uma máquina servo);
- GPS / magnetômetro / barômetro;
- , Power Management Unit (PMU): ( ). . — , DC-DC . 1000 . CAN ;
- ;
- ;
- ;
Tecnicamente, esses dispositivos são baseados no microcontrolador STM32. Nós nos projetamos e solicitamos a produção em pcbway.ru. O firmware é implementado usando libcanard .
Nosso sentimento de trabalhar com UAVCAN é um limite de entrada bastante baixo. O novo funcionário levou menos de uma semana para descobrir e programar o sensor de distância nos lados do piloto automático STM32 e PX4.

Testamos novos dispositivos em um pequeno drone escuro
e depois os usamos em um avião:
Um breve vídeo de um voo de teste de nossa aeronave VTOL em todos os modos
Como resultado, nosso diagrama se parece com este: Diagrama de nossa aeronave VTOL usando sensores e atuadores UAVCAN

Que vantagens UAVCAN nos dará no futuro
Reserva
A tarefa mais importante ao vender um produto baseado em um UAV é garantir a confiabilidade. Já começamos a trabalhar nisso. Por exemplo, vários de nossos sensores de GPS e velocidade do ar podem ser conectados e usados em paralelo. Mas ainda há muito a ser feito. Provavelmente, a duplicação de sensores e controladores usando o barramento CAN será mais fácil. Você pode conectar dois barramentos ao Pixhawk e deixar vários sensores idênticos no barramento para redundância.
Dimensionamento
No futuro, queremos fazer veículos de grande porte com peso de decolagem superior a 30 kg, embora isso seja difícil de certificar. A escalabilidade da arquitetura baseada em UAVCAN permite que você faça planos ambiciosos.
Simulação True HIL
Agora, o tópico da operação de UAV no ambiente urbano está se desenvolvendo ativamente - Mobilidade Aérea Urbana (UAM). Para implementar tarefas UAM, você precisa confiar mais em sensores como câmeras e lidars. Aqui torna-se necessário desenvolver e depurar sistemas de controle inteligentes, bem como aumentar sua confiabilidade. Para isso, outra equipe da Innopolis University está desenvolvendo o Simulador Innopolis para objetos móveis autônomos baseados no Unity 3D para teste, depuração e treinamento. Simulador Innopolis Para nossa aeronave VTOL , usamos o Simulador Innopolis em conjunto com o Gazebo para simulação fotorrealística , teste de controle e processamento de dados de sensor - lidars e câmeras.

Agora estamos trabalhando em nosso próprio módulo de simulação dinâmica em vez do Gazebo com aerodinâmica mais precisa, bem como em outro recurso - simulação HIL verdadeira (de hardware no circuito, ou simulação de software e hardware, PAM).
Em nossa solução, todos os dados vêm de sensores e os controles para motores e servos são enviados via barramento UAVCAN. Por que não fazer um módulo para simular esses sensores no mesmo nível de barramento? É que, em vez de dispositivos, conectamos um computador com um simulador ao controlador.
Já a simulação HIL no PX4 é feita por meio de mensagens especiais HIL_ * MAVLINK (protocolo de telemetria, funciona em uma porta serial ou UDP / TCP), que simulam sensores e atuadores.

Diagrama da operação do PX4 no modo HITL. O Source
Simulation, conforme atualmente implementado no PX4, é um modo de operação separado para o controlador de vôo, diferente da configuração de vôo de "combate". Simulamos mensagens UAVCAN diretamente, idealmente o piloto automático pode nem saber o que está funcionando no ambiente simulado. Mas devo dizer que o problema de simular IMUs que estão dentro do piloto automático e não estão conectadas via CAN ainda não foi resolvido conceitualmente. O esquema proposto de operação do PX4 no modo HITL usando UAVCAN Esta solução aumenta a confiabilidade dos resultados da depuração no simulador, para que você possa prosseguir com mais segurança para os testes de vôo. Simulador de aviação HIL. Fonte Uma abordagem semelhante, quando os dispositivos são simulados no nível da interface,


usado na aviação de grande porte, mas com UAVCAN o tornamos mais acessível e fácil.
Resultado
É ótimo que as questões de leveza, confiabilidade e "tempo real" do protocolo UAVCAN já tenham sido pensadas para nós, assim como o que são PX4, ROS e Linux, no final das contas. Seria muito difícil para nós fazer nossos helicópteros, aviões, sistemas de controle e planejadores se tudo isso não estivesse lá.
A padronização de protocolos e software permite que os desenvolvedores falem a mesma língua. Ao mesmo tempo, não apenas a padronização é importante, mas também a acessibilidade, que em alto grau oferece uma abordagem de código aberto. Isso permite, apoiando-se nos ombros de gigantes, avançar rapidamente para suas tarefas, e não construir uma longa "infraestrutura" de trabalho, o que, espero, tenhamos mostrado com nosso exemplo neste artigo.

Bebemos brue frio após voos bem-sucedidos