11 votos

Cálculo del tiempo muerto con acelerómetro y giroscopio. ¿Es posible?

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

Esencialmente lo que se necesita es que yo desarrolle algún código para rastrear la posición en el espacio 3d del tablero en tiempo real. Así que si empiezo con el tablero en una mesa y lo levanto 1m hacia arriba, debería ser capaz de ver ese movimiento en la pantalla. También hay que tener en cuenta las rotaciones, por lo que si doy la vuelta al tablero a mitad del mismo movimiento, debería seguir mostrando el mismo resultado de 1 metro hacia arriba. Lo mismo debería ocurrir con cualquier movimiento complejo durante un periodo de varios segundos.

Ignorando las matemáticas necesarias para calcular y rotar vectores, etc., ¿es esto posible con un dispositivo de tan bajo coste? Por lo que sé, no podré eliminar la gravedad con una precisión del 100%, lo que significa que mi ángulo con respecto al suelo estará mal, lo que significa que mis rotaciones de vectores estarán mal, 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?

2 votos

Se puede hacer hasta la precisión que permitan los sensores. Los errores de posición se acumulan con el tiempo. Depende de si la precisión es suficiente para su proyecto.

2 votos

Las matemáticas avanzadas son las que van a hacer posible el proyecto. Tendrás que usar cuaterniones, un filtro de Kalman y un esquema ZUPT o ZARU. A partir de ahí, sí, puedes hacer un seguimiento preciso durante varios segundos. Hablo por experiencia directa.

0 votos

Tengo una maravillosa cita de Lord Kelvin colgada en la pared de mi oficina desde hace algunas décadas: "Los cuaterniones vinieron de Hamilton... y han sido un mal sin mezcla 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".

11voto

shash Puntos 668

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

Por si sirve de algo, nuestro sistema neurosensorial utiliza prácticamente las mismas herramientas y no siempre acierta. Disponemos de acelerómetros 3D (los órganos otolíticos) y de "giroscopios" 3D (velocímetros angulares, los canales semicirculares), y sin embargo sufrimos todo tipo de ilusiones cuando el sistema no es capaz de obtener la "respuesta" correcta, como la ilusión del ascensor y la ilusión oculográfica. A menudo estos fallos se producen durante aceleraciones lineales de baja frecuencia, que son difíciles de distinguir de la gravedad. Hubo una época en la que los pilotos se precipitaban al mar durante los despegues con catapulta en los portaaviones debido a la fuerte percepción de cabeceo resultante de la aceleración de baja frecuencia asociada al lanzamiento, hasta que los protocolos de formación les enseñaron a ignorar esas percepciones.

Es cierto que los sensores fisiológicos tienen unos cortes de frecuencia y unos suelos 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 catapulta sean bastante raros ;-).

Sin embargo, imagina este problema de sentido común de "cálculo muerto" que muchos han experimentado, y creo que verás cómo esto se traslada al mundo de los MEMS. Uno se sube a un avión, despega en Norteamérica, acelera hasta alcanzar la velocidad de crucero, cruza el océano, desacelera y aterriza en Europa. Incluso eliminando las ambigüedades de la inclinación y la traslación del problema, y suponiendo que la rotación es nula, habría muy pocas esperanzas de que una integración doble de los perfiles de aceleración diera lugar a un perfil de posición lo suficientemente preciso como para decir que se ha llegado a Europa. Incluso si tuvieras un paquete de giroscopio/acelerómetro de 6 ejes muy preciso sentado en tu regazo durante el viaje, eso también tendría sus problemas.

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

Así que, para épocas cortas con aceleraciones no triviales, el cálculo muerto con la instrumentación adecuada no es un problema tan grave. Para periodos largos, con pequeñas aceleraciones y aceleraciones de baja frecuencia, el cálculo muerto es un gran problema. En cualquier situación, hay que averiguar en qué punto del espectro se encuentra el problema en cuestión y cuál es la precisión necesaria para determinar si lo mejor que se puede hacer es suficiente. A esto lo llamamos ingeniería de procesos.

0 votos

Gracias por esta respuesta tan esclarecedora. Sin embargo, me deja con algunas dudas: 1) ¿A qué te refieres con aceleraciones de baja frecuencia? 2) Si el problema se redujera de la posición 3D al desplazamiento lateral (ignorando Z), ¿es más fácil? y 3) ¿Qué pasa con un movimiento lento en el agua del mar, donde el efecto de la gravedad se reduce? Se agradecerá cualquier indicación de material de lectura sobre estos cálculos.

0 votos

En realidad, los antiguos sistemas de navegación intercial tenían una precisión de unos pocos kilómetros después de un largo vuelo. Debían de ser 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.

10voto

Jun Puntos 55

Los principales problemas de la técnica de cálculo a ojo de buen cubero que descubrí al realizar un proyecto de diseño similar al tuyo es que un acelerómetro sólo 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, acabas con un desplazamiento, pero también tienes un error que crece linealmente con el tiempo. En el caso del sensor del MEM que utilicé, en el plazo de 1 segundo, se calculó que estaba al menos a un metro de distancia de donde realmente estaba. Para que esto sea útil, por lo general hay que encontrar una manera de poner a cero los errores muy a menudo para evitar la acumulación de errores. Algunos proyectos son capaces de hacerlo, 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 error, pero en general el problema de la navegación a estima no ha sido resuelto por toneladas de dinero gastado por la marina en toneladas de sensores en los barcos. Son mejores que lo que se puede hacer, pero lo último que leí es que todavía se encontraban desviados por 1km cuando viajaban 1000km. Eso es bastante bueno para el cálculo a ojo de buen cubero, pero sin su equipo, no podrás conseguir nada parecido.

0 votos

¿Seguro que el error es el cuadrado de la distancia/tiempo? El error de velocidad será lineal, por lo que el desplazamiento será el cuadrado. Lo que es interesante, y no se aborda, es lo buenos que son esos aceleradores baratos.

0 votos

@Tuntable Ojalá tengas un acelerómetro que no sea tan malo como para tener un significativo desplazamiento de la aceleración constante. Si tienes uno tan malo, entonces sí, terminarás con un error cuadrado con la distancia/tiempo.

7voto

GSerg Puntos 33571

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

Y la gravedad no debería introducir errores en las mediciones de los ángulos; al contrario, el vector 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 quieres hacer es posible, pero el escaso rendimiento de los dispositivos MEMS de bajo coste hace que los errores se acumulen rápidamente: tanto los cambios de sesgo como el "paseo aleatorio" generado por el ruido (tanto en los acelerómetros como en los giroscopios de velocidad) harán que los resultados se aparten de la realidad en cuestión de segundos o minutos.

Para solucionarlo, es necesario incorporar a su sistema sensores adicionales que no sufran este tipo de errores. Como he mencionado anteriormente, el uso del ángulo del vector de gravedad es una forma de corregir algunos de los errores del giroscopio, pero hay que saber cuándo se tiene una medición precisa de la gravedad (los sistemas no están siendo acelerados) antes de poder utilizarlo.

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 la 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. Normalmente se utiliza el GPS (cuando está disponible), pero también se pueden utilizar otros sensores, como barómetros (para la 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 se acabe utilizando, todos estos datos deben "fusionarse" en un modelo de software autoconsistente del estado del sistema, que incluya no sólo la posición y la actitud actuales, sino también estimaciones del sesgo actual, el factor de escala y los niveles de ruido de los propios sensores. Un enfoque común es utilizar un filtro de Kalman, que 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 de los sensores.

4voto

SomeEE Puntos 923

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

El problema es que acabas recogiendo datos sobre una ecuación diferencial ruidosa. Para un giroscopio angular que mide la velocidad angular tienes la ecuación diferencial ruidosa $$\frac{d\theta(t)}{dt} = r(t)$$ y en el caso de un acelerómetro $$\frac{d^2p(t)}{dt^2} = r(t)$$ donde \$r(t)\$ es el valor de su sensor en el momento \$t\$ .

Estas ecuaciones diferenciales "ruidosas" suelen recibir el nombre de "ecuaciones diferenciales estocásticas", en las que se supone que el ruido es el ruido blanco generado a través de un paseo aleatorio. Las matemáticas pueden generalizarse a otras situaciones en las que el ruido no procede de un paseo aleatorio. 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 se haga para obtener buenas estimaciones durante periodos de tiempo relativamente largos, siempre será necesario calibrar periódicamente con una posición conocida. Ejemplos de referencias fijas son las bases de operaciones, las lecturas de la brújula y la gravedad.

Si decides seguir esta vía, tienes que decidir algunas cosas:

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

  • Toma algunas lecturas de tu giroscopio/acelerómetro. Esto puede utilizarse para calcular la distribución empírica del ruido que estima el ruido real. Usa esto para resolver tu ecuación diferencial de ruido y calcular tus intervalos de confianza.

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

  • Elija un dispositivo con parámetros aceptables para obtener los intervalos de confianza que quería en el primer paso. Es posible que los parámetros de precisión del dispositivo que desea/necesita no se ajusten a lo que está disponible y/o a su presupuesto. Por otro lado, puede que le sorprendan los resultados que obtenga con dispositivos más baratos.

0 votos

El problema (o un problema) radica en que el acelerómetro es sensible a más que p(t). También es sensible a los cambios en theta alrededor de ciertos ejes.

0 votos

Estoy de acuerdo. Por eso siempre es mejor utilizar vectores cuando se hace cualquier análisis de un sistema multiparamétrico. La generalización de los procesos estocásticos con valores vectoriales a partir del caso de una sola variable es trivial en comparación con el resto de las cuestiones.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X