Cálculo morto com acelerômetro e giroscópio. Possível?


11

Eu tenho um acelerômetro de 3 eixos e um giroscópio de 3 eixos. Fui encarregado de desenvolver um sistema de cálculo de contas morto usando esse hardware.

Essencialmente, o que é necessário é que eu desenvolva algum código para rastrear a posição no espaço 3D do quadro em tempo real. Portanto, se eu começar com o tabuleiro em uma mesa e levantá-lo 1m para cima, conseguiria ver esse movimento na tela. As rotações também precisam ser levadas em consideração, por isso, se eu virar a prancha de cabeça para baixo na metade do mesmo movimento, ela ainda deverá mostrar o mesmo resultado de 1m para cima. O mesmo vale para qualquer movimento complexo por um período de alguns segundos.

Ignorar a matemática necessária para calcular e girar vetores etc., isso é possível com um dispositivo de baixo custo? Tanto quanto posso dizer, não poderei remover a gravidade com 100% de precisão, o que significa que meu ângulo em relação ao solo estará desligado, o que significa que minhas rotações vetoriais estarão desativadas, o que leva a uma medição incorreta da posição.

Eu também tenho ruído do acelerômetro e viés de giroscópio para explicar.

Isso pode ser feito?


2
Isso pode ser feito até a precisão permitida pelos sensores. Os erros de posição serão acumulados ao longo do tempo. Se a precisão é suficiente para o seu projeto depende.
Wouter van Ooijen

1
A matemática avançada é o que tornará o projeto possível. Você precisará usar quaternions, um filtro Kalman e um esquema ZUPT ou ZARU. A partir daí, sim, você pode acompanhar com precisão por alguns segundos. Falo por experiência direta.
Samuel

Eu tenho uma maravilhosa citação de Lord Kelvin pendurada na parede do meu escritório por algumas décadas: "Quaternions vieram de Hamilton ... e têm sido um mal não misturado para aqueles que os tocaram de alguma maneira. O vetor é uma sobrevivência inútil ... e nunca foi da menor utilidade para qualquer criatura ".
Scott Seidman

@ScottSeidman Quaternions não são tão ruins se você pensar neles em termos de rotações em torno de vetores unitários. Então você só precisa de um pouco de trigonometria para converter de / para o formulário de quaternário.
JAB

@JAB, obviamente, eles (ou alguma outra abordagem) são necessários, pois as rotações não se deslocam, colocando algumas nuances bastante interessantes na matemática.
Scott Seidman

Respostas:


11

As respostas e comentários que você está recebendo são excelentes, é claro, mas posso adicionar um pouco de cor.

Pelo que vale, nosso sistema neurossensorial usa as mesmas ferramentas e nem sempre consegue a resposta certa! Temos acelerômetros 3D (órgãos otólitos) e "giroscópios" 3D (velocitômeros angulares, canais semicirculares) e, no entanto, sofremos de todo tipo de ilusões quando o sistema não é capaz de obter a "resposta" correta, como a ilusão de elevador e a ilusão oculogravica. Freqüentemente, essas falhas ocorrem durante acelerações lineares de baixa frequência, difíceis de distinguir da gravidade. Houve um tempo em que os pilotos mergulhavam no oceano durante decolagens de catapulta em porta-aviões por causa da forte percepção de pitch resultante da aceleração de baixa frequência associada ao lançamento, até que os protocolos de treinamento os ensinassem a ignorar essas percepções.

É verdade que os sensores fisiológicos têm alguns pontos de corte e ruído de frequência diferentes dos sensores MEMS, mas também temos uma enorme rede neural lançada para o problema - embora haja pouca pressão evolutiva para resolver o problema corretamente nesses extremos de baixa frequência, desde que lançamentos de catapultas sejam bastante raros ;-).

Imagine esse problema de "acerto de contas" de senso comum que muitos já experimentaram, e acho que você verá como isso é transmitido para o mundo dos MEMS. Você entra em um jato, decola na América do Norte, acelera para a velocidade de cruzeiro, atravessa o oceano, desacelera e aterrissa na Europa. Mesmo removendo as ambigüidades de translação de inclinação do problema e assumindo rotação zero, haveria muito pouca esperança de uma implementação real de uma dupla integração dos perfis de aceleração, produzindo um perfil de posição em qualquer lugar quase preciso o suficiente para dizer que você chegou à Europa . Mesmo se você tivesse um pacote de giroscópio / acelerômetro de 6 eixos muito preciso no seu colo durante a viagem, isso também teria seus problemas.

Então esse é um extremo. Há muitas evidências sugerindo que, para comportamentos cotidianos, os animais usam uma suposição simples de que as acelerações de baixa frequência detectadas são provavelmente causadas por reorientações em relação à gravidade. Uma combinação de giroscópios e acelerômetros que têm respostas de freqüência mais amplas do que o ouvido interno pode resolver o problema muito melhor, é claro, mas ainda terá problemas extremos devido ao ruído, limiares e outros fatores.

Portanto, para épocas curtas com acelerações não triviais, o acerto de contas morto com a instrumentação correta não é um problema tão ruim. A longo prazo, com pequenas acelerações e acelerações de baixa frequência, o acerto de contas morto é um grande problema. Para qualquer situação, você precisa descobrir em que ponto do problema está o seu problema específico e qual a precisão de suas necessidades de acerto de contas para determinar se o melhor que você pode fazer é bom o suficiente. Chamamos isso de engenharia de processo.


Obrigado por essa resposta esclarecedora. No entanto, fico me perguntando algumas coisas: 1) o que você quer dizer com acelerações de baixa frequência? 2) Se o problema foi reduzido da posição 3D para o deslocamento lateral (ignore Z), isso é mais fácil? e 3) Que tal para um movimento lento na água do mar, onde o efeito da gravidade é reduzido? Qualquer indicação para o material de leitura desses cálculos seria apreciada.
achennu

Na verdade, os antigos sistemas de navegação intertial seriam precisos dentro de algumas milhas após um longo vôo. Eles devem ter sido extremamente precisos. (Eles moravam em uma caixa bastante grande.) A tecnologia foi desenvolvida na década de 1950 para orientar os ICBMs.
Tuntable

9

Os principais problemas com o acerto de contas que eu encontrei ao fazer um projeto de design sênior semelhante ao seu é que um acelerômetro mede apenas a aceleração. Você precisa integrar uma vez para obter velocidade mais uma constante C. Em seguida, você precisa integrar novamente para obter a posição + Cx + D. Isso significa que, depois de calcular a posição a partir dos dados de um acelerômetro, você termina com um deslocamento, mas também possui um erro que cresce linearmente com o tempo. Para o sensor do MEM que usei, em 1 segundo, ele se calculou estar a pelo menos um metro de distância de onde realmente estava. Para que isso seja útil, você geralmente precisa encontrar uma maneira de zerar os erros com muita frequência, para evitar o acúmulo de erros. Alguns projetos são capazes de fazer isso, mas muitos não.

Os acelerômetros fornecem um bom vetor de gravidade que não aumenta em erro ao longo do tempo e as bússolas eletrônicas dão orientação sem acumular erros, mas, em geral, o problema do cálculo de mortos não foi resolvido por toneladas de dinheiro gasto pela marinha em toneladas de sensores em navios . Eles são melhores do que o que você pode fazer, mas, na última vez que li, eles ainda estavam 1 quilômetro viajando 1000 km. Na verdade, isso é muito bom para o acerto de contas, mas sem o equipamento deles, você não será capaz de alcançar nada próximo disso.


Certamente o erro é o quadrado da distância / tempo? O erro de velocidade será linear, então o deslocamento do quadrado. O que é interessante, e não abordado, é o quão bons são esses aceleradores baratos.
Tuntable

@ Tuntable Espero que você tenha um acelerômetro que não seja tão ruim que tenha um deslocamento de aceleração constante significativo . Se você tem um que é tão ruim, então sim, você vai acabar com um erro quadrado com distância / tempo.
Horta

7

Você também terá um viés nos acelerômetros e ruído nos giroscópios.

E a gravidade não deve introduzir erros nas medições de ângulo; pelo contrário, o vetor de gravidade fornece uma "referência absoluta" que ajuda a zerar o viés acumulado dos ângulos "pitch" e "roll".

Sim, o que você quer fazer é possível, mas o baixo desempenho dos dispositivos MEMS de baixo custo significa que os erros se acumularão rapidamente - tanto as mudanças de viés quanto a "caminhada aleatória" gerada pelo ruído (nos acelerômetros e nos giroscópios de taxa) fará com que os resultados se afastem da realidade em segundos ou minutos.

Para corrigir isso, você precisa incorporar sensores adicionais ao seu sistema que não sofrem com esses tipos de erros. Como mencionei acima, o uso do ângulo do vetor de gravidade é uma maneira de corrigir alguns dos erros do giroscópio, mas você precisa estar ciente de quando tiver uma medição precisa da gravidade (caso contrário, os sistemas não estão sendo acelerados) antes de poder usar isto.

Outra maneira de corrigir a deriva angular é incorporar um magnetômetro para medir o campo magnético da Terra. Os magnetômetros têm erros relativamente grandes, mas eles não sofrem com a deriva a longo prazo.

A correção dos erros de posição criados pelos componentes de deriva das leituras do acelerômetro requer uma referência absoluta de posição de algum tipo. O GPS é comumente usado (quando disponível), mas você também pode usar outros sensores, como barômetros (para altitude), odômetros (se você tiver rodas no chão), sensores de alcance ultrassônico ou infravermelho ou até mesmo sensores de imagem.

Independentemente da combinação de sensores que você acaba usando, todos esses dados precisam ser "fundidos" em um modelo de software autoconsistente do estado do sistema, que inclui não apenas a posição e a atitude atuais, mas também estimativas do viés atual , fator de escala e níveis de ruído dos próprios sensores. Uma abordagem comum é usar um filtro Kalman, que pode ser mostrado para fornecer uma estimativa "ótima" (ou seja, a melhor estimativa disponível) do estado do sistema para um determinado conjunto de leituras de sensores.


4

A resposta curta é "não exatamente". A resposta longa é que você pode formar declarações como "Dadas as leituras do giroscópio, tenho 95% de confiança de que o dispositivo foi girado entre 28 e 32 graus desde a minha última leitura".

O problema é que você acaba coletando dados sobre uma equação diferencial barulhenta. Para um giroscópio angular medindo a velocidade angular, você tem a diferença barulhenta eq e, no caso de um acelerômetro onde é o valor do seu sensor no momento .d2p(t)

dθ(t)dt=r(t)
r(t)t
d2p(t)dt2=r(t)
r(t)t

Essas equações diferenciais "ruidosas" geralmente são denominadas "equações diferenciais estocásticas", onde se supõe que o ruído seja o ruído branco gerado por uma caminhada aleatória. A matemática pode ser generalizada para outras situações em que o ruído não provém de uma caminhada aleatória. Em qualquer caso específico, o ruído terá uma distribuição que pode ser determinada experimentalmente, cujos parâmetros dependerão do seu dispositivo e aplicação específicos. Devido ao acúmulo de ruído, não importa o que você faça para obter boas estimativas em períodos de tempo relativamente longo, você sempre precisará calibrar periodicamente para uma posição conhecida. Exemplos de referências fixas são bases domésticas, leituras da bússola e gravidade.

Se você decidir seguir essa avenida, precisará decidir algumas coisas:

  • O que é um nível aceitável de erro? Você quer ter 95% de confiança de que está dentro de um grau após 2 segundos ou deseja ter 80% de confiança de que está dentro de 5 graus após 2 segundos?

  • Faça algumas leituras no seu giroscópio / acelerômetro. Isso pode ser usado para calcular a distribuição empírica do ruído que estima o ruído real. Use isso para resolver sua equação diferencial ruidosa e calcular seus intervalos de confiança.

  • Pelo exposto, deve ficar claro como a precisão da leitura (variação) da folha de dados afeta a solução da sua equação diferencial com ruído. Também ficará claro como isso afeta seus intervalos de confiança.

  • Escolha um dispositivo com parâmetros aceitáveis ​​para obter os intervalos de confiança desejados na primeira etapa. Os parâmetros de precisão do dispositivo que você deseja / precisam não correspondem ao que está disponível e / ou ao seu orçamento. Por outro lado, você pode se surpreender com os resultados obtidos para dispositivos mais baratos.


O problema (ou um problema) reside no fato de o acelerômetro ser sensível a mais de p (t). Também é sensível a mudanças no teta em torno de certos eixos.
Scott Seidman

Concordo. É por isso que é sempre melhor usar vetores ao fazer qualquer análise de um sistema multiparâmetros. A generalização de processos estocásticos com valor vetorial do caso de variável única é trivial em comparação com o restante dos problemas.
SomeEE
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.