Qual é o número mínimo de sensores para um UAV de seguimento de waypoint GPS para hobby?

21

Gostaria de desenvolver meu próprio software de vôo de orientação, navegação e controle (GN&C) em um Raspberry Pi, para um pequeno UAV de asa fixa de hobby. Do ponto de vista físico, qual é o conjunto mínimo de sensores / entradas necessários para implementar simples e antigos pontos de acompanhamento de GPS?

Entendo que tenho muita matemática para aprender, mas qual é o conjunto mínimo de entradas para essa matemática? Tenho experiência com C ++ incorporado para sistemas de entretenimento de veículos, mas nenhum conhecimento no domínio da aviação.

por Greg McNulty 10.07.2019 / 05:16

6 respostas

O mínimo absoluto para um veículo generalizado que precisa conhecer sua posição e atitude (orientação) no espaço é de um por grau de liberdade. Isso pode ser reduzido se tivermos informações sobre os modos naturais do sistema e sua estabilidade.

Por uma questão de simplicidade, vamos assumir um veículo movendo-se nas dimensões 3, o que significa um total de 6 DoF:

  • 3 coordena no espaço para saber a posição
  • Ângulos 3 (ou similares) para saber a atitude

A maneira mais simples de atender a esses requisitos são os acelerômetros para as coordenadas XYZ e os giroscópios para os ângulos, e eles geralmente são empacotados em um IMU. Tecnicamente, você nem precisa de um GPS real, desde que saiba as coordenadas do local de partida, pois você pode simplesmente integrar a partir dele para conhecer sua posição. Isso é conhecido como acerto de contas morto por navegação inercial e funciona dessa maneira (vamos usar coordenadas $ x $ como um exemplo):

  • Você precisa saber o valor inicial $ x $ e sua taxa de mudança: $ x_0, \ dot {x} _0 $
  • Ouça os valores do $ \ ddot {x} $ acelerômetro.
  • Integre a aceleração para obter a velocidade: $ \ ponto {x} = \ int {\ ddot {x} \, dx} + \ ponto {x} _0 $
  • Integre a velocidade para obter a posição: $ x = \ int {\ ponto {x} \, dx} + x_0 $

Claro que isso tem várias deficiências. Os acelerômetros do mundo real têm ruído, os giroscópios estão à deriva, sua localização inicial provavelmente é imprecisa, seu veículo provavelmente precisa de mais dados do que isso para operar e todos os sistemas que acabei de descrever não tinham como encontrar-se se redefinir em missão.

Para um projeto realista de barebones como você descreveu, será necessário:

  • Acelerômetros 3 (em uma IMU)
  • Giroscópios 3 (em uma IMU)
  • Magnetômetros 3 (geralmente acompanham o IMU e ajudam a manter o anterior 2 alinhado)
  • GPS (pode ser fornecido com a IMU e você o desejou especificamente)

Outras fontes de dados são desejáveis, mas complicam bastante a arquitetura do FCS, pois você precisa ponderar adequadamente os dados, afinal, não deseja que a aeronave confie mais no magnetômetro do que nos giroscópios e mostrar um pequeno truque que aprendeu ao passar perto de uma anomalia magnética.

Em particular, é bom ter uma sonda Pitot para saber sua velocidade no ar em oposição à sua velocidade no solo. Uma palheta alfa é um pouco de luxo e não é necessária, a menos que você esteja empurrando o envelope do voo.

Qualquer sensor de observação do solo com taxa de atualização, alcance e precisão suficientes (IV, laser, LiDAR, acústico, etc.) permitirá suavizar seus pousos e o que você escolher deve depender do seu projeto e orçamento; todos eles têm prós e contras.


Do ponto de vista da codificação, se você é sério sobre fazer isso sozinho do zero, deve procurar sistemas em tempo real, filtros Kalman e o vasto campo de fusão de sensores. Aprenda também um pouco de aerodinâmica, para que a estrutura da aeronave não seja uma caixa preta para você. Você pode executar um FCS em um Arduino, mesmo para quadcopters, se estiver satisfeito com apenas um SAS.

Existe uma grande comunidade de criadores de UAVs de hobby on-line que pode fornecer uma solução quase pronta para o seu FCS (Ardupilot), se você preferir essa abordagem. Pessoalmente, acho que falta a documentação deles, então sugiro que você aprenda pelo menos o básico por trás do que está fazendo, para ajudá-lo a navegar pelas lacunas inevitáveis ​​do manual. Além disso, como é um projeto de código aberto, você pode preencher essas lacunas.

10.07.2019 / 10:17

É provável possível apenas com o receptor GPS, mas não seria fácil e talvez você precise fazer alguns compromissos no design da estrutura da aeronave para alcançar a estabilidade passiva necessária.

O conjunto tradicional de sensores para esse tipo de aplicação é, aproximadamente, em ordem de prioridade:

  1. GPS
  2. Giroscópio com taxa de eixo 3
  3. Acelerômetro do eixo 3
  4. Magnetômetro de eixo 3
  5. pitot
  6. Aleta alfa ou pitot de várias portas
  7. palheta beta
  8. altímetro baro
  9. altímetro a laser, radar ou ultrassônico, se você quiser fazer aterrissagens autônomas

Como este é o seu primeiro UAV, eu recomendo fortemente ter os primeiros sensores 4 e provavelmente #5 e / ou #6 (mas talvez os use para diagnóstico e análise em vez de controle, pois podem ser um pouco complicados com não-linearidades e confiabilidade) .

10.07.2019 / 06:47

Se você apenas deseja que seu UAV voe para um waypoint, você pode fazê-lo apenas com um sensor de GPS, se for baseado em uma aeronave muito estável como um avião de vela "Gentle Lady" ou "Radian" rc, desde que você não esteja " t voando com vento muito forte, onde havia a possibilidade de a aeronave recuar sobre o solo ao apontar para o vento e voar em velocidade de compensação. Suponho que você provavelmente também desejaria um sensor de altitude, a menos que queira aplicar energia suficiente para que a aeronave esteja subindo lentamente pela parte autônoma do vôo. Obviamente, você pode obter as informações de altitude do sensor GPS.

Se você decidisse adicionar um giroscópio com taxa de guinada no eixo 1, isso permitiria um controle mais suave. Mas no contexto de uma aeronave muito estável como sua plataforma básica, você realmente não precisa mais do que isso, se seu objetivo básico é mantê-la simples.

Falando do ponto de vista de quem controlou com sucesso uma aeronave ultraleve na nuvem, usando apenas um indicador eletrônico de taxa de curva no eixo 1, GPS e bússola molhada - e a bússola estava girando para trás na metade do tempo. O controle em circunstâncias limitadas específicas (ou seja, ar suave, sem tentar circular constantemente na corrente térmica, fazendo apenas curvas muito baixas) era possível sem o indicador de taxa de rotação, e um robô certamente faria um trabalho melhor com isso do que um humano.

Basta fazer testes suficientes para garantir que a aeronave não esteja sujeita a oscilações de "phugoid" de pitch grave no CG que você está usando.

10.07.2019 / 15:49
  • GPS
  • Sensor barométrico ocasionalmente recalibrado do GPS
  • Anexe para manter as RPM constantes do motor de pistão
  • Giroscópio para estabilidade do rolo

Essas entradas foram suficientes para uma cadeia de pontos de passagem autônoma vôo transatlântico dezesseis anos atrás.

10.07.2019 / 19:30

Talvez uma introdução resumida na teoria do controle possa ajudá-lo. Do ponto de vista de controle, sua aeronave é um sistema dinâmico, que pode ser descrito por um estado e um modelo dinâmico.

O estado é simplesmente uma coleção de variáveis ​​de onde a aeronave está em cada ponto do tempo. Para uma descrição completa, você teria a posição e a atitude no espaço, bem como suas primeiras derivadas. Qualquer outra inércia também pode ter sua própria variável de estado; por exemplo, a velocidade da hélice.

O equações de estado descreva como o estado evolui com o tempo. A partir dessas equações (especialmente na forma linearizada), podemos destilar um número de (eigen)modos. Esses modos descrevem um certo comportamento do sistema e vêm de duas formas: estável e instável modos. Um modo estável é uma dinâmica do sistema que, para uma entrada finita (perturbação), não leva nenhuma variável de estado ao infinito. Observe que isso não significa que as variáveis ​​de estado retornem a algum valor constante: uma oscilação limitada ainda pode ser considerada estável! Um modo instável é uma dinâmica que, para entrada finita, leva ao crescimento ilimitado de alguma variável de estado.

Para ver quantos sensores você precisa, você precisará de algumas coisas. Primeiro de tudo, você deseja que seu sistema seja estável. Obviamente, isso significa que você deseja ter um conjunto de sensores que possam medir qualquer modo instável (detectabilidade) e um conjunto de atuadores que podem controlar modos instáveis ​​(estabilizabilidade) Existem vários modos (possivelmente) instáveis, o mais importante dos quais é divergência em espiral. Muitas aeronaves de asa fixa não possuem estabilidade inerente ao rolamento, portanto, você poderá sentir o seu ângulo de rotação (uma taxa de guinada ou sensor de rumo também pode funcionar, devido ao acoplamento rolo / guinada). Além disso, existe simplesmente o seu movimento linear, que também é instável (isso pode parecer contra-intuitivo, mas tudo isso significa que você pode se afastar infinitamente do seu ponto inicial viajando em linha reta). Para isso, você vai querer algum tipo de sensor de posição (provavelmente, um GPS).

Todos os outros modos dinâmicos não são inerentemente instáveis ​​em uma aeronave de asa fixa, embora seu projeto específico possa ter algumas instabilidades adicionais, como um movimento phugoid instável, para o qual você deseja medir e controlar o movimento do pitch.

Portanto, o mínimo absoluto é de dois a três sensores (latitude e longitude e provavelmente rolagem ou guinada), e use feed-forward para todas as outras variáveis ​​(ajuste de ajuste e potência com base na altitude e velocidade desejadas, e siga em frente). Na prática, ninguém construiria um UAV com apenas três sensores. Há duas razões para isso,

  • Imprecisão do sensor. Medir a atitude é difícil. Um giroscópio inevitavelmente flutuará com o tempo e, como tal, você precisará de alguns outros sensores para corrigir isso.
  • Atuação. Idealmente, você deseja viajar em linha reta até o alvo, sem balançar para a esquerda e para a direita em semicírculos preguiçosos enquanto balança para cima e para baixo em um phugoid, orando a uma divindade adequada para que as configurações de compensação e potência deixem margem suficiente para atravessar a montanha um dia quente

Para um UAV de hobby, normalmente acontece que os sensores são relativamente baratos, graças ao MEMS. Você usaria normalmente um acelerômetro do eixo 3, um giroscópio do eixo 3 (taxa de rolagem) e um magnetômetro do eixo 3 (bússola), e por que não ter um barômetro e termômetro também? E como você usa um GPS, também pode usar seus dados de altitude. Se você usar um motor CC sem escova, não será necessário medir a velocidade do suporte. Eu acho que você achará muito mais fácil criar um UAV que funcione com esses componentes disponíveis no mercado (e software de código aberto que normalmente é escrito para esses sensores) do que encontrar um sensor de giroscópio de eixo único e escrever seu próprio software.

Além disso, o uso de mais sensores simplifica significativamente o seu observabilidade. Essa é a noção de poder inferir o estado do sistema a partir das saídas. Em teoria, se o seu modelo for suficientemente complexo, você precisará de muito poucos sensores para estimar o estado atual (ajuste de contas). No entanto, se você puder realmente medir seus estados, seu modelo não será mais tão importante e seu UAV poderá responder muito melhor e ser menos sensível às mudanças no ambiente ou no próprio UAV.

12.07.2019 / 12:40

O Projeto ArduPilot provavelmente já fez muito trabalho para você, se você estiver mais interessado no resultado final do que no processo de criá-lo para si mesmo. Mesmo se você optar por não usar o software deles, provavelmente há boas informações sobre quais sensores e quantos são necessários.

10.07.2019 / 21:26