Ajuste de cuentas muerto con acelerómetro y giroscopio. ¿Posible?

11

Tengo un acelerómetro de 3 ejes y un giroscopio de 3 ejes. Me encargaron desarrollar un sistema de cálculo muerto usando este hardware.

Esencialmente, lo que necesito es que desarrolle un código para rastrear la posición en el espacio 3d del tablero en tiempo real. Entonces, si comienzo 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 pongo el tablero al revés a la mitad del mismo movimiento, aún debería mostrar el mismo resultado ascendente de 1 m. Lo mismo también debe 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 incluso 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 relativo 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 giroscópico.

Se puede hacer esto?

usuario41883
fuente
2
Se puede hacer hasta la precisión permitida por los sensores. Los errores de posición se acumularán con el tiempo. Si la precisión es suficiente para su proyecto depende.
Wouter van Ooijen
1
Las matemáticas avanzadas son las que harán posible el proyecto. Tendrá que usar quaternions, 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.
Samuel
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 sin mezclar para aquellos que los han tocado de alguna manera. El vector es una supervivencia inútil ... y nunca ha sido de la menor utilidad para ninguna criatura ".
Scott Seidman
@ScottSeidman Quaternions no son tan malos si piensas en ellos en términos de rotaciones alrededor de los vectores unitarios. Entonces solo necesita un poco de trigonometría para convertir a / desde la forma de cuaternión.
JAB
@JAB, obviamente, ellos (o algún otro enfoque) son necesarios ya que las rotaciones no se conmutan, lo que pone algunos matices bastante interesantes en las matemáticas.
Scott Seidman

Respuestas:

11

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

Por lo que vale, nuestro sistema neurosensorial utiliza las mismas herramientas, ¡y no siempre obtiene la respuesta correcta! Tenemos acelerómetros 3D (los órganos otolíticos) y "giroscopios" 3D (velocitómeros angulares, canales semicirculares) y, sin embargo, sufrimos todo tipo de ilusiones cuando el sistema no puede obtener la "respuesta" correcta, como la ilusión del elevador y la ilusión oculogravic. A menudo, estas fallas ocurren durante aceleraciones lineales de baja frecuencia, que son difíciles de distinguir de la gravedad. Hubo un momento en que los pilotos se zambullían en el océano durante los despegues de catapultas en portaaviones debido a la fuerte percepción del tono 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.

De acuerdo, los sensores fisiológicos tienen algunos límites de frecuencia y niveles de ruido diferentes que los sensores MEMS, pero también tenemos una gran red neuronal lanzada al problema, aunque poco en forma de presión evolutiva para resolver el problema correctamente en estos extremos de baja frecuencia, siempre y cuando los lanzamientos de catapulta sean bastante raros ;-).

Sin embargo, imagínense este problema de "cálculo muerto" de sentido común que muchos han experimentado, y creo que verán cómo esto se traslada al mundo MEMS. Sube a un avión, despega en América del Norte, acelera a velocidad de crucero, cruza el océano, desacelera y aterriza en Europa. Incluso eliminando las ambigüedades de traslación de inclinación del problema, y ​​suponiendo que la rotación sea cero, habría muy pocas esperanzas de una implementación real de una doble integración de los perfiles de aceleración que arroje 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.

Entonces ese es un extremo. Hay mucha evidencia que sugiere que para los comportamientos cotidianos, los animales usan 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 aún tendrá problemas extremos debido al ruido de fondo, los umbrales y demás.

Entonces, para épocas cortas con aceleraciones no triviales, el ajuste de cuentas con la instrumentación correcta no es un problema tan grave. A largo plazo, con pequeñas aceleraciones y aceleraciones de baja frecuencia, el ajuste de cuentas muerto es un gran problema. Para cualquier situación dada, necesita averiguar en qué parte de ese espectro se encuentra su problema particular, y cuán precisas son sus necesidades de cálculo para determinar si lo mejor que puede hacer es lo suficientemente bueno. A eso lo llamamos ingeniería de procesos.

Scott Seidman
fuente
Gracias por esa respuesta esclarecedora. Sin embargo, me deja preguntándome algunas cosas: 1) ¿qué quieres decir con aceleraciones de baja frecuencia? 2) Si el problema se redujera de la posición 3D al desplazamiento lateral (ignore 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.
achennu
En realidad, los sistemas de navegación intertial de estilo antiguo tendrían una precisión de unas pocas millas después de un largo vuelo. 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 a los ICBM.
Aplicable el
9

Los principales problemas con el cálculo muerto que encontré al hacer un proyecto de diseño senior similar al suyo es que un acelerómetro solo mide la aceleración. Debe integrar una vez para obtener la velocidad más una constante C. Luego debe integrar nuevamente para obtener la posición + Cx + D. Eso significa que una vez que calcula la posición a partir de los datos de un acelerómetro, termina con un desplazamiento, pero también tiene Un error que crece linealmente con el tiempo. Para el sensor del MEM que utilicé, en 1 segundo, se calculó a sí mismo al menos a un metro de donde estaba realmente. Para que esto sea útil, generalmente tiene que encontrar una forma de poner a cero los errores muy a menudo 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 cálculo no ha sido resuelto por toneladas de dinero gastado por la marina en toneladas de sensores en barcos . Son mejores que lo que puedes hacer, pero lo último que leí, todavía se encontraron a 1 km de distancia cuando viajaban 1000 km. En realidad, eso es bastante bueno para el cálculo de muertos, pero sin su equipo, no podrás lograr nada parecido a eso.

Horta
fuente
¿Seguramente el error es el cuadrado de la distancia / tiempo? El error de velocidad será lineal, por lo que el desplazamiento del cuadrado. Lo interesante y no abordado es lo buenos que son esos aceleradores baratos.
Aplicable el
@Tuntable Esperemos que tenga un acelerómetro que no sea tan malo que tenga un desplazamiento de aceleración constante significativo . Si tiene uno que es tan malo, entonces sí, terminará con un error cuadrado con distancia / tiempo.
horta
7

También tendrá un sesgo en los acelerómetros y ruido en los giroscopios para tratar también.

Y la gravedad no debería introducir errores en las mediciones de ángulo; por el contrario, el vector de gravedad proporciona una "referencia absoluta" que lo ayuda a poner a cero el sesgo acumulado de los ángulos de "inclinación" y "balanceo".

Sí, lo que quiere hacer es posible, pero el bajo rendimiento 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) 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) 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 deriva 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 altitud), odómetros (si tiene ruedas en el suelo), sensores de alcance ultrasónicos o infrarrojos, o incluso sensores de imagen.

Independientemente de la combinación de sensores que termine utilizando, 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 dado de lecturas de sensores.

Dave Tweed
fuente
4

La respuesta corta es "no exactamente". La respuesta larga es que puede formular declaraciones 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 recolectando datos sobre una ecuación diferencial ruidosa. Para un giroscopio angular que mide la velocidad angular, tiene la ruidosa diferencia eq y en el caso de un acelerómetro donde es el valor de su sensor en el tiempo .d2p(t)

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

Estas ecuaciones diferenciales "ruidosas" usualmente 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 se puede determinar experimentalmente, cuyos parámetros dependerán de su dispositivo y aplicación específicos. Debido a la acumulación de ruido, no importa lo que haga para obtener buenas estimaciones en períodos de tiempo relativamente largos, siempre tendrá que calibrar periódicamente a una posición conocida. Ejemplos de referencias fijas son bases de inicio, lecturas de brújula y gravedad.

Si decide seguir esta avenida, debe decidir algunas cosas:

  • ¿Cuál es un nivel de error aceptable? ¿Desea 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 usar 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 a su ruidosa ecuación diferencial. También quedará claro cómo afecta sus intervalos de confianza.

  • Elija un dispositivo con parámetros aceptables para que obtenga los intervalos de confianza que desea 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 y / o su presupuesto. Por otro lado, es posible que se sorprenda de los resultados que obtiene para dispositivos más baratos.

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