Navegación a estima con acelerómetro y giroscopio. ¿Posible?

Tengo un acelerómetro de 3 ejes y un giroscopio de 3 ejes. Me han encargado desarrollar un sistema de navegación a estima usando este hardware.

Esencialmente, lo que se necesita es que desarrolle un código para rastrear la posición en el espacio 3D del tablero en tiempo real. Entonces, si empiezo con el tablero sobre una mesa y lo levanto 1 m hacia arriba, debería poder ver ese movimiento en la pantalla. Las rotaciones también deben tenerse en cuenta, por lo que si doy la vuelta a la tabla a la mitad del mismo movimiento, aún debería mostrar el mismo resultado de 1 m hacia arriba. Lo mismo debería ser válido para cualquier movimiento complejo durante un período de unos pocos segundos.

Ignorando las matemáticas necesarias para calcular y rotar vectores, etc., ¿es esto posible con un dispositivo de tan bajo costo? Por lo que puedo decir, no podré eliminar la gravedad con una precisión del 100 %, lo que significa que mi ángulo con respecto al suelo estará desactivado, lo que significa que mis rotaciones vectoriales estarán desactivadas, lo que conduce a una medición de posición incorrecta.

También tengo que tener en cuenta el ruido del acelerómetro y el sesgo del giroscopio.

Se puede hacer esto?

Se puede hacer hasta la precisión permitida por los sensores. Los errores de posición se acumularán con el tiempo. Depende de si la precisión es suficiente para su proyecto.
Las matemáticas avanzadas son las que van a hacer posible el proyecto. Deberá usar cuaterniones, un filtro de Kalman y un esquema ZUPT o ZARU. A partir de ahí, sí, puedes rastrearlo con precisión durante varios segundos. Hablo por experiencia directa.
Tengo una cita maravillosa de Lord Kelvin colgada en la pared de mi oficina durante algunas décadas: "Los cuaterniones vinieron de Hamilton... y han sido un mal absoluto para aquellos que los han tocado de alguna manera. El vector es una supervivencia inútil... y nunca ha sido de la más mínima utilidad para ninguna criatura".
@ScottSeidman Los cuaterniones no son tan malos si los piensas en términos de rotaciones alrededor de vectores unitarios. Entonces solo necesita un poco de trigonometría para convertir a/desde la forma de cuaternión.
@JAB, obviamente, ellos (o algún otro enfoque) son necesarios ya que las rotaciones no se desplazan, lo que pone algunos matices bastante interesantes en las matemáticas.

Respuestas (4)

Las respuestas y los comentarios que está recibiendo son excelentes, por supuesto, pero puedo agregar un poco de color.

Por lo que vale, nuestro sistema neurosensorial utiliza prácticamente las mismas herramientas, ¡y no siempre obtiene la respuesta correcta! Tenemos acelerómetros 3D (los órganos otolitos) y "giroscopios" 3D (velocímetros angulares, los canales semicirculares) y, sin embargo, sufrimos todo tipo de ilusiones cuando el sistema no puede obtener la "respuesta" correcta, como la ilusión del ascensor. y la ilusión oculogravia. A menudo, estas fallas ocurren durante aceleraciones lineales de baja frecuencia, que son difíciles de distinguir de la gravedad. Hubo un tiempo en que los pilotos se lanzaban en picado al océano durante los despegues con catapultas en los portaaviones debido a la fuerte percepción del cabeceo resultante de la aceleración de baja frecuencia asociada con el lanzamiento, hasta que los protocolos de entrenamiento les enseñaron a ignorar esas percepciones.

Por supuesto, los sensores fisiológicos tienen algunos cortes de frecuencia y niveles de ruido diferentes a los de los sensores MEMS, pero también tenemos una enorme red neuronal lanzada al problema, aunque poca presión evolutiva para resolver el problema correctamente en estos extremos de baja frecuencia. siempre y cuando los lanzamientos de catapultas sean bastante raros ;-).

Sin embargo, imagínese este problema de "estimación muerta" de sentido común que muchos han experimentado, y creo que verá cómo esto se traslada al mundo MEMS. Te subes a un avión, despegas en América del Norte, aceleras a velocidad de crucero, cruzas el océano, desaceleras y aterrizas en Europa. Incluso eliminando las ambigüedades de traducción de la inclinación del problema, y ​​asumiendo una rotación cero, habría muy pocas esperanzas de una implementación real de una doble integración de los perfiles de aceleración que produzca un perfil de posición en cualquier lugar lo suficientemente preciso como para decirle que ha llegado a Europa. . Incluso si tuviera un paquete de giroscopio/acelerómetro de 6 ejes muy preciso sentado en su regazo durante el viaje, eso también tendría sus problemas.

Así que ese es un extremo. Hay mucha evidencia que sugiere que para los comportamientos cotidianos, los animales utilizan una suposición simple de que las aceleraciones de baja frecuencia que se detectan probablemente sean causadas por reorientaciones con respecto a la gravedad. Una combinación de giroscopios y acelerómetros que tienen respuestas de frecuencia más amplias que nuestro oído interno puede resolver el problema mucho mejor, por supuesto, pero seguirá teniendo problemas extremos debido al ruido de fondo, los umbrales y demás.

Por lo tanto, para épocas cortas con aceleraciones no triviales, la navegación a estima con la instrumentación adecuada no es un problema tan grave. A largo plazo, con aceleraciones pequeñas y aceleraciones de baja frecuencia, la navegación a estima es un gran problema. Para cualquier situación dada, debe averiguar en qué parte de ese espectro se encuentra su problema particular y qué tan precisas son sus necesidades de navegación a estima para determinar si lo mejor que puede hacer es lo suficientemente bueno. A eso lo llamamos ingeniería de procesos.

Gracias por esa respuesta esclarecedora. Sin embargo, me deja preguntándome algunas cosas: 1) ¿qué quiere decir con aceleraciones de baja frecuencia? 2) Si el problema se redujera de la posición 3D al desplazamiento lateral (ignorar Z), ¿es más fácil? y 3) ¿Qué pasa con un movimiento lento en el agua de mar, donde se reduce el efecto de la gravedad? Cualquier sugerencia para leer material sobre estos cálculos sería apreciada.
En realidad, los sistemas de navegación intertial de estilo antiguo tendrían una precisión de unas pocas millas después de un vuelo largo. Deben haber sido extremadamente precisos. (Vivían en una caja bastante grande). La tecnología se desarrolló en la década de 1950 para guiar los misiles balísticos intercontinentales.

Los principales problemas con la navegación a estima que encontré mientras realizaba un proyecto de diseño senior similar al suyo es que un acelerómetro solo mide la aceleración. Tienes que integrar una vez para obtener la velocidad más una constante C. Luego tienes que integrar de nuevo para obtener la posición + Cx + D. Eso significa que una vez que calculas la posición a partir de los datos de un acelerómetro, terminas con una compensación, pero también tienes un error que crece linealmente con el tiempo. Para el sensor del MEM que utilicé, en 1 segundo, calculó que estaba al menos a un metro de distancia de donde realmente estaba. Para que esto sea útil, generalmente debe encontrar una manera de poner a cero los errores con mucha frecuencia para evitar la acumulación de errores. Algunos proyectos pueden hacer esto, pero muchos no.

Los acelerómetros dan un buen vector de gravedad que no aumenta en error con el tiempo y las brújulas electrónicas dan orientación sin acumular errores, pero en general el problema de navegación a estima no ha sido resuelto por las toneladas de dinero gastadas por la marina en toneladas de sensores en los barcos. . Son mejores de lo que puedes hacer, pero la última vez que leí, todavía se encontraban desviados por 1 km cuando viajaban 1000 km. En realidad, eso es bastante bueno para la navegación a estima, pero sin su equipo, no podrá lograr nada parecido.

Seguramente el error es el cuadrado de la distancia/tiempo? El error de velocidad será lineal, por lo que el desplazamiento el cuadrado. Lo que es interesante, y no abordado, es cuán buenos son esos aceleradores baratos.
@Tuntable Esperemos que tenga un acelerómetro que no sea tan malo como para tener una compensación de aceleración constante significativa . Si tiene uno que es tan malo, entonces sí, terminará con un error cuadrático con distancia/tiempo.

También tendrá que lidiar con el sesgo en los acelerómetros y el ruido en los giroscopios.

Y la gravedad no debería introducir errores en las medidas de los ángulos; por el contrario, el vector de gravedad proporciona una "referencia absoluta" que le ayuda a poner a cero el sesgo acumulado de los ángulos de "cabeceo" y "balanceo".

Sí, lo que quiere hacer es posible, pero el rendimiento deficiente de los dispositivos MEMS de bajo costo significa que los errores se acumularán rápidamente, tanto los cambios de sesgo como la "caminata aleatoria" generada por el ruido (tanto en los acelerómetros como en los giroscopios de velocidad) hará que los resultados se aparten de la realidad en segundos o minutos.

Para solucionar esto, debe incorporar sensores adicionales en su sistema que no sufran este tipo de errores. Como mencioné anteriormente, usar el ángulo del vector de gravedad es una forma de corregir algunos de los errores del giroscopio, pero debe saber cuándo tiene una medición de gravedad precisa (los sistemas no se aceleran de otra manera) antes de poder usar eso.

Otra forma de corregir la deriva angular es incorporar un magnetómetro para medir el campo magnético de la Tierra. Los magnetómetros tienen errores relativamente grandes, pero no sufren derivas a largo plazo.

La corrección de los errores de posición creados por los componentes de deriva de las lecturas del acelerómetro requiere una referencia de posición absoluta de algún tipo. El GPS se usa comúnmente (cuando está disponible), pero también puede usar otros sensores, como barómetros (para la altitud), odómetros (si tiene ruedas en el suelo), sensores ultrasónicos o de rango infrarrojo, o incluso sensores de imagen.

Independientemente de la combinación de sensores que termine usando, todos estos datos deben "fusionarse" en un modelo de software autoconsistente del estado del sistema, que incluye no solo la posición y actitud actuales, sino también estimaciones del sesgo actual. , factor de escala y niveles de ruido de los propios sensores. Un enfoque común es utilizar un filtro de Kalman, que se puede demostrar que proporciona una estimación "óptima" (es decir, la mejor estimación disponible) del estado del sistema para un conjunto determinado de lecturas del sensor.

La respuesta corta es "no exactamente". La respuesta larga es que puede formular afirmaciones como "Dadas las lecturas de mi giroscopio, estoy 95 % seguro de que el dispositivo se ha girado entre 28 y 32 grados desde mi última lectura".

El problema es que terminas recopilando datos sobre una ecuación diferencial ruidosa. Para un giroscopio angular que mide la velocidad angular, tiene el diff eq ruidoso

d θ ( t ) d t = r ( t )
y en el caso de un acelerómetro
d 2 pag ( t ) d t 2 = r ( t )
donde r ( t ) es el valor de su sensor en el tiempo t .

Estas ecuaciones diferenciales "ruidosas" generalmente se denominan "ecuaciones diferenciales estocásticas", donde se supone que el ruido es el ruido blanco generado a través de una caminata aleatoria. Las matemáticas se pueden generalizar a otras situaciones en las que el ruido no proviene de una caminata aleatoria. En cualquier caso particular, el ruido tendrá una distribución que puede determinarse experimentalmente, cuyos parámetros dependerán de su dispositivo y aplicación específicos. Debido a la acumulación de ruido, independientemente de lo que haga para obtener buenas estimaciones durante períodos de tiempo relativamente largos, siempre deberá calibrar periódicamente en una posición conocida. Ejemplos de referencias fijas son las bases de operaciones, las lecturas de la brújula y la gravedad.

Si decide seguir esta vía, debe decidir algunas cosas:

  • ¿Cuál es un nivel aceptable de error? ¿Quiere estar 95% seguro de que está dentro de un grado después de 2 segundos o quiere estar 80% seguro de que está dentro de 5 grados después de 2 segundos?

  • Tome algunas lecturas de su giroscopio/acelerómetro. Esto se puede utilizar para calcular la distribución empírica del ruido que estima el ruido real. Use esto para resolver su ruidosa ecuación diferencial y calcular sus intervalos de confianza.

  • De lo anterior, debe quedar claro cómo la precisión de lectura (varianza) de la hoja de datos afecta la solución de su ruidosa ecuación diferencial. También quedará claro cómo afecta a sus intervalos de confianza.

  • Elija un dispositivo con parámetros aceptables para obtener los intervalos de confianza que deseaba en el primer paso. Puede encontrar que los parámetros de precisión del dispositivo que desea/necesita no coinciden con lo que está disponible o su presupuesto. Por otro lado, puede que te sorprendan los resultados que obtienes con dispositivos más baratos.

El problema (o un problema) radica en que el acelerómetro es sensible a más de p(t). También es sensible a cambios en theta alrededor de ciertos ejes.
Estoy de acuerdo. Es por eso que siempre es mejor usar vectores al hacer cualquier análisis de un sistema multiparamétrico. La generalización de los procesos estocásticos con valores vectoriales del caso de una sola variable es trivial en comparación con el resto de los problemas.