Estou tentando rastrear partes do corpo em relação ao torso de uma pessoa. Vejo algumas perguntas sobre o uso de acelerômetros e giroscópios MEMS para acerto de contas, e eles confirmam minhas suspeitas de que vários fatores limitam bastante sua utilidade para esses tipos de aplicativos, mas estou buscando esclarecimentos sobre esses limites:
O que exatamente são esses limites?
Outras respostas abordaram por que esses limites existem. Naturalmente, as especificações das peças no sistema em questão e o que é considerado "erro aceitável" para o sistema alteram os limites exatos, mas há uma única ordem de magnitude no tempo ou distância que posso esperar que o cálculo morto funcione? Estou ciente de que, em longas distâncias (alguns metros mais ou menos), o erro se torna muito grande para fins mais práticos, mas e a poucos metros?
O que posso fazer para melhorar esses limites?
Atualmente, estou olhando para usar um acelerômetro e um giroscópio. Quais outros sensores posso adicionar ao sistema para melhorar a taxa de erros? Sei que em longas distâncias um GPS pode ser usado, mas duvido que qualquer GPS de nível de produtos eletrônicos de consumo tenha resolução suficiente para ajudar no meu caso.
Além disso, um consenso geral parece que a única maneira de melhorar esses limites além do ponto de sensores aprimorados é fornecer uma referência não sujeita a erro. Alguns sistemas resolvem isso usando câmeras e marcadores. Que tipo de pontos de referência um dispositivo portátil / vestível pode fornecer?
Vi o uso de ondas de rádio para medir longas distâncias com precisão, mas não sei dizer se esse sistema poderia ser preciso em uma escala tão pequena (em termos de distância medida) usando componentes "prontos para uso".
Respostas:
As fontes de erro incluem deslocamento de zero (viés) e erros de escala (que tendem a variar lentamente) e ruído. Os preços dos sensores MEMS variam de menos de US $ 10 a mais de US $ 1000, e a magnitude dos termos de erro abrange uma ampla variedade, dependendo da qualidade do sensor.
O grande problema é que a integração geralmente é necessária para passar do valor do sensor (aceleração, taxa angular) para o valor desejado (posição, ângulo). Todas as fontes de erro são compostas - crescendo com o tempo - quando integradas. O valor dos dados para o acerto de contas decai com o tempo, com sensores baratos, que fornecem no máximo alguns minutos de dados úteis e sensores avançados, sendo bons por talvez algumas horas.
Como você já descobriu, a melhor maneira de se livrar dos crescentes erros integrados é combinar os dados do sensor com outras fontes independentes de dados que não possuem os mesmos tipos de erros. Por exemplo, o GPS pode fornecer um valor de posição absoluto que não deriva a longo prazo, mas possui um componente de "ruído" relativamente grande. Você pode usar esses dados para estimar os erros de polarização e escala dos seus acelerômetros, o que permite corrigi-los em tempo real. Também permite cancelar a "caminhada aleatória" criada pelo ruído do sensor. Um filtro Kalman é um método comum usado para modelar o sistema (incluindo os termos de erro do sensor) e combinar os dados para obter uma estimativa ideal do estado do sistema a qualquer momento.
Outro exemplo é usar o "vetor de gravidade", medido pelos acelerômetros, para cancelar a deriva angular dos giroscópios. O truque aqui é saber exatamente quando você tem um vetor de gravidade válido; ou seja, o sistema não está acelerando em nenhuma direção. Várias heurísticas (por exemplo, "atualização zero") são usadas para fazer isso. Um magnetômetro também pode ser usado para medir erros de giroscópio, mesmo se você não souber a direção absoluta do campo magnético - desde que você possa assumir que é constante.
O sensor óptico é outra maneira de obter uma estimativa de velocidade, ângulo ou posição sem desvio, mas o processamento de imagem necessário pode exigir muitos ciclos de CPU (ou FPGA), e o desenvolvimento desse sistema é bastante complicado.
fonte
Você perguntou o que mais poderia ser adicionado. Um magnetômetro de 3 eixos deve ser útil. O campo magnético da Terra tende a se mover substancialmente mais devagar do que o usuário médio (felizmente).
Veja a fabulosa MPU6000 / 6050
Uma versão fornece interface SPI e IIC, a outra apenas CII.
Ele contém um giroscópio de 3 eixos + um acelerômetro de 3 eixos, além de entradas para permitir a integração do sinal do magnetômetro externo de 3 eixos.
O IC contém um 'processador de movimento digital' que integra os sinais do conjunto de sensores 3 x 3. Ainda não entendi a funcionalidade precisa fornecida, mas a intenção é processar as três fontes de sinal separadas em um sistema útil de análise de movimento
Folha de dados aqui
O IC custa cerca de US $ 10/1 da Digikey e uma placa de avaliação custa cerca de US $ 50 + do fabricante. Ou você pode comprar uma placa completa da China - eles vendem aqui por cerca de US $ 6 no varejo em 1's - IC e PCB montados.
Ainda não descobri como isso acontece ou se são reais ou .... Recebi um ontem, mas não poderei jogar com ele por um tempo. ('Whiles' variam grandemente em magnitude, de muito pequeno a grande demais, às vezes). Existem vários artigos na web sobre como usá-los com, por exemplo, Arduinos.
Qual a precisão ?:
Provavelmente há muita discussão sobre isso na web.
Se eu li a folha de dados corretamente (e não é um tipo de dispositivo com o qual estou muito familiarizado), a
Tabela 6.1 na página 12 sugere que o giroscópio possui um desvio de +/- 20 graus / segundo no máximo a 25 ° C e mais uma vez - Faixa de temperatura de 40 a + 85C. Supondo que uma taxa real de 20 graus / segundo seja uma volta completa em 18 segundos. No entanto, o magnetômetro e o acelerômetro fornecem acesso a vetores de referência externos (gravidade e campo magnético da Terra) e os sinais destes podem ser usados para derivar a taxa de desvio de giroscópio a curto e longo prazo e compensar. Isso pode fazer parte do que o seu "processador de movimento" faz.
O erro do acelerômetro parece estar abaixo de +/- 5%.
Eu esperaria (e pode estar muito errado), que o uso do acelerômetro e magnetômetro para reduzir os erros de desvio do giroscópio para essencialmente zero a longo prazo permita que você use os sinais do giroscópio para navegação em segundos ou minutos. O GPS também fornece sinais de velocidade e a combinação de posição e velocidade dos GPs com a unidade 9DOF parece altamente útil.
Wooly: O texto acima parece mais confuso do que eu gostaria. Espero saber mais sobre isso nas próximas semanas. Eu ficaria interessado em saber o que você descobriu e, se eu aprender, coisas úteis tentarão reportar.
.
Dependendo da sua aplicação, você poderá depositar temporariamente um receptor e GPS de referência em um local conveniente. Isso pode ser extremamente compacto - GPS + bateria + TX. Uma vez depositado, ele sabe onde está e pode transmitir correções com base em onde o sistema diz que está. O uso da mesma constelação de satélites é 'provavelmente uma boa ideia'. Se o usuário e o GPS de referência estiverem no mesmo ponto em que é depositado, tanto melhor, mas esse sistema tende a funcionar mesmo que esteja sempre espacialmente separado.
Não saber qual é o seu caso torna difícil dizer. Mas a resolução relativa de amostra para amostra é tipicamente muito superior ao que é alcançado em minutos ou horas. Realizei testes em que dirigi por uma rota urbana e tracei as coordenadas do GPS e depois repeti o exercício várias horas depois. Os dois caminhos estavam em alguns casos separados por vários metros, mas, digamos, dirigindo em linha reta ao longo de uma rua urbana, o lote era uma linha reta com "ruído" em ambos os lados de uma linha reta de talvez menos de um metro. (Isso foi há alguns anos atrás - é fácil tentar você mesmo. Acabei de gravar dados de uma saída RS232 serial do GPS (normalmente 4800 baud) e, nesse caso, os plotamos no Excel como um gráfico XY.
O GPS diferencial pode ser usado pelo qual um receptor estacionário local de localização fixa fornece correções de erros com base em onde ele sabe e onde o sistema agora o diz. Existem muitos fornecedores desses sistemas, mas o conceito é simples e fácil de implementar se com um orçamento apertado.
fonte
Algo que não está coberto nessas respostas ainda é a sua aplicação específica, que na verdade já foi abordada pelo menos uma dúzia de vezes antes por pessoas muito inteligentes. As duas palavras-chave aqui são cinemática inversa e filtros Kalman.
Agora, deve ficar claro qual é a fonte dos erros do seu aplicativo e como corrigi-los. Porém, ao lidar com sensores essencialmente fixos a um ser humano, você pode diminuir o intervalo de posições espaciais e angulares dos seus sensores aplicando cinemática inversa à equação. Isso basicamente significa que você acompanha as posições relativas de tantas articulações quanto possível e aplica um modelo cinemático do corpo humano. Por exemplo, o comprimento dos braços das pessoas não varia ao longo do tempo, nem sua amplitude de movimento muda consideravelmente. Ossos não dobram (em circunstâncias normais). Tudo isso pode ser usado para restringir as posições do seu sensor.
A outra solução é usar o maior número possível de sensores ortogonais. Ortogonal no sentido de: usar princípios de medição fundamentalmente diferentes. Usando o máximo possível de entrada do sensor, você pode usar o chamado filtro Kalman para trabalhar com a maior precisão possível, considerando os dados em que estão os sensores. Os filtros Kalman não são uma entidade mágica que mostra a melhor resposta, no entanto. São modelos matemáticos que precisam ser ajustados e modificados para seu aplicativo específico, e pode ser um incômodo fazer com que funcionem bem. Mas permite, de uma maneira indireta, combinar de outra maneira muito difícil correlacionar dados do sensor. As entradas para esse tipo de filtro podem ser qualquer coisa: sensores de posição, aceleração e velocidade, mas também, por exemplo, sensores de luz que podem adicionar informações, respondendo a fontes de luz visíveis em determinados ângulos.
Algumas 'luvas de força' com esse princípio de trabalho (cinemática + filtros kalman) foram demonstradas por empresas e universidades. O mais recente que eu vi na TU Eindhoven usou MPU6050s em substratos flexíveis tecidos em uma luva, além de alguns sensores de suporte (acho que no momento são apenas webcams), todos alimentados em um grande filtro Kalman alimentado por Matlab. Funciona com repetibilidade de 1 mm.
fonte
O Problema Fundamental
Isso pode ser resolvido através do estudo da dinâmica de erros de curto prazo de um sistema de navegação inercial. Ele é coberto em detalhes em muitos textos , mas aqui está a versão curta "livre de equações".
A navegação inercial funciona da seguinte maneira:
Conheça com precisão sua posição inicial, velocidade e atitude (ou seja, pitch pitch e yaw).
Use sua nova atitude que você acabou de calcular para girar matematicamente as leituras do acelerômetro para ficar nivelado com a Terra.
Subtraia a gravidade das leituras do acelerômetro de novo nível.
Repita as etapas 2 a 6 pelo tempo que desejar.
Além disso, esse viés se acumulará em atitude, o que fará com que os acelerômetros sejam nivelados incorretamente, o que fará com que a aceleração seja nivelada na direção errada, que será então integrada na direção errada - três níveis de erros.
Isso significa que erros de giroscópio fazem com que os erros de posição cresçam com o cubo do tempo .
Pela mesma lógica, o erro do acelerômetro faz com que os erros de posição cresçam com o quadrado do tempo .
Por esse motivo, você obterá meros segundos de navegação inercial útil (pura) dos sensores MEMS de grau de telefone celular.
Mesmo se você tiver sensores inerciais extremamente bons - digamos, grau de aeronave -, ainda estará fundamentalmente limitado a pouco menos de dez minutos de navegação inercial (pura). O motivo é o passo 3 - a gravidade muda com a altura. Erre sua altura e sua gravidade estará errada, o que faz com que sua altura esteja errada, o que faz com que sua gravidade fique mais errada e assim por diante - crescimento exponencial de erros. Assim, mesmo um sistema de navegação inercial "puro", como os encontrados em jatos militares, geralmente terá algo como um altímetro barométrico. Fonte .
Soluções
Existem produtos de pesquisa e comerciais que podem fazer isso.
Conceitualmente, funciona como visão estéreo - você tem uma linha de base conhecida entre as câmeras e um ângulo diferente para cada marcador, visto de cada câmera. A partir disso, a posição 3D de cada marca pode ser calculada (em relação à câmera). Pode funcionar melhor com mais câmeras.
Usando hardware barato, decawave UWB pode ser útil (10 cm ou mais). Você precisará criar seus próprios algoritmos.
Ao lado do corpo, um sistema GPS terá problemas. A obtenção de um GPS de nível cm depende do rastreamento de fase contínuo dos sinais de GPS (muito, muito fraco), o que é extremamente difícil se a antena estiver próxima ao corpo e o corpo estiver se movendo! Para sistemas somente L1 - independentemente de serem baratos ou caros - o rastreamento deve durar muito tempo (10 min +) e, portanto, é impraticável para esse problema. Um receptor de frequência dupla pode funcionar algumas vezes , mas na verdade não é barato (milhares de dólares).
fonte