Estoy tratando de rastrear partes del cuerpo en relación con el torso de una persona. Veo algunas preguntas sobre el uso de acelerómetros y giroscopios MEMS para calcular los muertos, y confirman mis sospechas de que varios factores limitan en gran medida su utilidad para este tipo de aplicaciones, pero estoy buscando una aclaración de estos límites:
¿Cuáles son exactamente estos límites?
Otras respuestas han abordado por qué existen estos límites. Naturalmente, las especificaciones de las partes en el sistema en cuestión y lo que se considera un "error aceptable" para el sistema cambiarán los límites exactos, pero ¿hay un solo orden de magnitud en el tiempo o la distancia que pueda esperar que funcione el cálculo muerto? Soy consciente de que a largas distancias (unas pocas yardas más o menos) el error se vuelve demasiado grande para la mayoría de los propósitos prácticos, pero ¿qué pasa a unos pocos pies?
¿Qué puedo hacer para mejorar estos límites?
Actualmente estoy buscando usar un acelerómetro y un giroscopio. ¿Qué otros sensores puedo agregar al sistema para mejorar la tasa de error? Sé que en distancias más largas se puede usar un GPS, pero dudo que cualquier GPS de grado de electrónica de consumo tenga una resolución lo suficientemente buena como para ayudar en mi caso.
Además, un consenso general parece que la única forma de mejorar estos límites más allá del punto de sensores mejorados es proporcionar una referencia no sujeta a error. Algunos sistemas resuelven esto usando cámaras y marcadores. ¿Qué tipo de puntos de referencia puede proporcionar un dispositivo portátil / portátil?
He visto el uso de ondas de radio para medir distancias largas con precisión, pero no puedo decir si dicho sistema podría ser preciso en una escala tan pequeña (en términos de distancia medida) utilizando componentes "listos para usar".
Respuestas:
Las fuentes de error incluyen desplazamiento cero (sesgo) y errores de escala (que tienden a variar lentamente) y ruido. Los precios de los sensores MEMS varían de menos de $ 10 a más de $ 1000, y la magnitud de los términos de error cubre un amplio rango, dependiendo de la calidad del sensor.
El gran problema es que generalmente se requiere integración para pasar del valor del sensor (aceleración, velocidad angular) al valor deseado (posición, ángulo). Todas las fuentes de error están compuestas, creciendo con el tiempo, cuando se integran. El valor de los datos para el cómputo muerto decae con el tiempo, con sensores baratos que le brindan a lo sumo unos pocos minutos de datos útiles y sensores de alta calidad que son buenos por unas pocas horas.
Como ya ha encontrado, la mejor manera de deshacerse de los crecientes errores integrados es combinar los datos del sensor con otras fuentes de datos independientes que no tienen el mismo tipo de errores. Por ejemplo, el GPS puede darle un valor de posición absoluto que no se desvía a largo plazo, pero que tiene un componente de "ruido" relativamente grande. Puede usar estos datos para estimar el sesgo y los errores de escala de sus acelerómetros, lo que le permite corregirlos en tiempo real. También le permite cancelar la "caminata aleatoria" creada por el ruido del sensor. Un filtro de Kalman es un método común utilizado para modelar el sistema (incluidos los términos de error del sensor) y combinar los datos para obtener una estimación óptima del estado del sistema en cualquier momento.
Otro ejemplo es usar el "vector de gravedad", medido por los acelerómetros, para cancelar la deriva angular de los giroscopios. El truco aquí es saber exactamente cuándo tiene un vector de gravedad válido; es decir, el sistema no está acelerando en ninguna dirección. Se utilizan varias heurísticas (por ejemplo, "actualización cero") para lograr esto. Un magnetómetro también se puede usar para medir errores de giroscopio, incluso si no conoce la dirección absoluta del campo magnético, siempre que pueda suponer que es constante.
La detección óptica es otra forma de obtener una estimación de velocidad, ángulo o posición sin deriva, pero el procesamiento de imagen que se requiere puede requerir muchos ciclos de CPU (o FPGA), y el desarrollo de dicho sistema es bastante complicado.
fuente
Usted preguntó qué más se podría agregar. Un magnetómetro de 3 ejes debería ser útil. El campo magnético de la Tierra tiende a moverse sustancialmente más lento que el usuario promedio (afortunadamente).
Mira el fabuloso MPU6000 / 6050
Una versión proporciona interfaz SPI e IIC, la otra solo IIC.
Contiene un giroscopio de 3 ejes + un acelerómetro de 3 ejes más entradas para permitirle integrar la señal de un magnetómetro externo de 3 ejes.
El IC contiene un 'procesador de movimiento digital' que integra las señales del conjunto de sensores 3 x 3. Todavía no he entendido la funcionalidad precisa proporcionada, pero la intención es procesar las 3 fuentes de señal separadas en un útil sistema de análisis de movimiento.
Hoja de datos aquí
El IC cuesta alrededor de $ 10/1 de Digikey y una placa de evaluación es de alrededor de $ 50 + del fabricante. O bien, puede comprar una placa completa en China: se venden aquí por aproximadamente $ 6 en tiendas minoristas de EE. UU. En 1's, IC y PCB ensamblados.
Todavía no he resuelto cómo sucede eso o si son reales o ... Ayer recibí uno, pero no podré jugar con él por un tiempo. ('Whiles' varían mucho en magnitud, desde muy pequeño hasta a veces muy grande, por desgracia). Hay una serie de artículos en la web sobre su uso con, por ejemplo, Arduinos.
¿Qué tan exacto ?:
Probablemente hay mucha discusión sobre esto en la web.
Si leí la hoja de datos correctamente (y no es un tipo de dispositivo con el que estoy demasiado familiarizado), la
Tabla 6.1 en la página 12 sugiere que el giroscopio tiene una deriva de +/- 20 grados / segundo máximo a 25 C y una vez más - Rango de temperatura de 40 a + 85 ° C. Suponiendo una velocidad real de 20 grados / segundo que es un turno completo en 18 segundos. Sin embargo, tanto el magnetómetro como el acelerómetro proporcionan acceso a vectores de referencia externos (gravedad y campo magnético de la tierra) y las señales de estos pueden usarse para derivar la tasa de deriva giroscópica a corto y largo plazo y compensarla. Esto bien puede ser parte de lo que hace su "procesador de movimiento".
El error del acelerómetro parece estar típicamente por debajo de +/- 5%.
Esperaría (y podría estar muy equivocado), que usar el acelerómetro y el magnetómetro para recortar los errores de deriva del giroscopio a cero esencialmente a largo plazo le permitiría usar las señales del giroscopio para la navegación durante segundos a minutos. El GPS también proporciona señales de velocidad y la combinación de posición de GP + velocidad con la unidad 9DOF suena muy útil.
Wooly: Lo anterior suena más flexible de lo que me gustaría. Espero saber un poco más sobre esto en las próximas semanas. Me interesaría saber lo que descubres y, si aprendo cosas útiles, intentaré informar.
.
Dependiendo de su aplicación, puede depositar temporalmente un GPS de referencia y un receptor en una ubicación conveniente. Esto podría ser extremadamente compacto: GPS + batería + TX. Una vez depositado, sabe dónde está y puede transmitir correcciones en función de dónde dice el sistema que está. El uso de la misma constelación de satélites es "probablemente una buena idea". Si el usuario y el GPS de referencia están en el mismo punto cuando está depositado, mucho mejor, pero este sistema tiende a funcionar incluso si siempre están separados espacialmente.
No saber cuál es su caso hace que sea difícil decirlo. Pero la resolución relativa de la muestra a la muestra de GPS es típicamente muy superior a lo que se logra en minutos u horas. Realicé pruebas en las que conduje por una ruta urbana y tracé las coordenadas del GPS y luego repetí el ejercicio varias horas después. Los dos caminos estaban en algunos casos separados por varios metros, pero cuando se dice que conducen en línea recta a lo largo de una calle urbana, la trama era una línea recta con "ruido" a ambos lados de una línea recta de quizás menos de un metro. (Eso fue hace algunos años, es fácil probarlo usted mismo. Acabo de registrar datos de una salida de RS232 serie de GPS (4800 baudios típicamente) y en ese caso lo graficé en Excel como un gráfico XY.
Se puede utilizar un GPS diferencial mediante el cual un receptor local fijo de ubicación fija proporciona correcciones de errores en función de dónde sabe y dónde dice el sistema ahora. Hay muchos proveedores de dichos sistemas, pero el concepto es simple y fácil de implementar si con un presupuesto ajustado.
fuente
Algo que aún no está cubierto en estas respuestas es su aplicación específica, que en realidad ha sido abordada al menos una docena de veces por personas muy inteligentes. Las dos palabras clave aquí son cinemática inversa y filtros de Kalman.
Por ahora debería estar claro cuál es la fuente de errores para su aplicación y cómo solucionarlos. Pero cuando se trata de sensores que están esencialmente fijos a un humano, puede disminuir el rango de posiciones espaciales y angulares de sus sensores aplicando cinemática inversa a la ecuación. Básicamente, esto significa que realiza un seguimiento de las posiciones relativas de la mayor cantidad posible de articulaciones en el cuerpo y aplica un modelo cinemático del cuerpo humano. Por ejemplo, la longitud de los brazos de las personas no varía con el tiempo, ni su rango de movimiento cambia apreciablemente. Los huesos no se doblan (en circunstancias normales). Todo esto puede usarse para restringir las posiciones de su sensor.
La otra solución es utilizar tantos sensores ortogonales como sea posible. Ortogonal en el sentido de: usar principios de medición fundamentalmente diferentes. Usando la mayor cantidad posible de información del sensor, puede usar el llamado filtro de Kalman para trabajar de la manera más precisa posible dada la información donde se encuentran sus sensores. Sin embargo, los filtros de Kalman no son una entidad mágica que ofrece la mejor respuesta. Son modelos matemáticos que deben ajustarse y modificarse para su aplicación específica, y puede ser una molestia hacer que funcionen bien. Pero sí le permite, de una manera indirecta, combinar datos de sensores muy difíciles de correlacionar. Las entradas para este tipo de filtros pueden ser cualquier cosa: sensores de posición, aceleración y velocidad, pero también, por ejemplo, sensores de luz que pueden agregar información respondiendo a fuentes de luz que son visibles en ciertos ángulos.
Empresas y universidades han demostrado por igual algunas 'powergloves' con este principio de funcionamiento (cinemática + filtros kalman). El más reciente que vi en TU Eindhoven usó MPU6050 en sustratos flexibles tejidos en un guante, así como algunos sensores de soporte (creo que en este momento son solo cámaras web) todos alimentados en un gran filtro Kalman alimentado por Matlab. Funciona con una repetibilidad de 1 mm.
fuente
El problema fundamental
Esto puede abordarse estudiando la dinámica de error a corto plazo de un sistema de navegación inercial. Está cubierto en detalle en muchos textos , pero aquí está la versión corta "sin ecuaciones".
La navegación inercial funciona de la siguiente manera:
Conozca con precisión su posición inicial, velocidad y actitud (es decir, balanceo y guiñada).
Use su nueva actitud que acaba de calcular para rotar matemáticamente las lecturas de su acelerómetro para nivelarlas con la tierra.
Resta la gravedad de tus lecturas de acelerómetro de nuevo nivel.
Repita los pasos 2-6 durante el tiempo que desee.
Además, ese sesgo se acumulará en la actitud, lo que hará que los acelerómetros se nivelen incorrectamente, lo que hará que la aceleración se nivele en la dirección incorrecta, que luego se integrará en la dirección incorrecta: tres niveles de errores.
Esto significa que los errores de giroscopio hacen que los errores de posición crezcan con el cubo del tiempo .
Por la misma lógica, el error del acelerómetro hace que los errores de posición crezcan con el cuadrado del tiempo .
Debido a esto, obtendrá meros segundos de navegación inercial útil (pura) de los sensores MEMS de grado para teléfonos móviles.
Incluso si tiene sensores de inercia extremadamente buenos, por ejemplo, grado de aeronave, entonces está fundamentalmente limitado a un poco menos de diez minutos de navegación inercial (pura). La razón es el Paso 3: la gravedad cambia con la altura. Obtenga su altura incorrecta y su gravedad será incorrecta, lo que hace que su altura sea incorrecta, lo que hace que su gravedad sea más incorrecta, etc. - crecimiento de error exponencial. Por lo tanto, incluso un sistema de navegación inercial "puro" como los que se encuentran en los aviones militares generalmente tendrá algo así como un altímetro barométrico. Fuente .
Soluciones
Hay productos de investigación y comerciales que pueden hacer esto.
Conceptualmente, funciona como visión estereoscópica: tiene una línea base conocida entre cámaras y un ángulo diferente para cada marcador visto desde cada cámara. A partir de esto, se puede calcular la posición 3D de cada marca (en relación con la cámara). Puede funcionar mejor con más cámaras.
Usando hardware barato, decawave UWB podría ser útil (rango de 10 cm más o menos). Tendrá que desarrollar sus propios algoritmos.
Al lado del cuerpo, un sistema GPS tendrá problemas. Obtener un GPS a nivel de cm se basa en el seguimiento continuo de fase de las señales GPS (muy, muy débiles), lo cual es extremadamente difícil si la antena está al lado del cuerpo, ¡y el cuerpo se mueve! Para los sistemas solo L1, independientemente de cuáles sean baratos o caros, el seguimiento tiene que ser durante mucho tiempo (10 minutos o más) y, por lo tanto, no es práctico para este problema. Un receptor de doble frecuencia puede funcionar a veces , pero estos realmente no son baratos (miles de dólares).
fuente