Error de integración doble del acelerómetro

Quería usar un acelerómetro o IMU para medir la velocidad y el desplazamiento durante un período de aproximadamente 1 minuto o 400 m. A partir de esta respuesta que encontré en stackoverflow, el error se propaga a una velocidad de t 2 (sin considerar la rotación), entonces 60 2 = 3600 .

La densidad de ruido del acelerómetro ADXL335 es de aproximadamente 200 m gramo / H z , entonces @500Hz obtenemos

200 500 = 87.67 m gramo   ( o r     87.67 × 10 6 metro / s 2 )

Obtener el error durante los 60 segundos: 87.67 × 10 6 × 3600 = 0.32 metro .

Esto parece sospechosamente optimista, ¿estoy en lo cierto o estoy haciendo malos cálculos?

Te has olvidado de sacar la raíz cuadrada de 500Hz. y 1e-6 g NO es 1e-6 m/s^2. g es igual a 9,81 m/s^2.
Un poco más de un año después, ¿produjiste algún resultado prometedor o se decidió que se trataba de una tontería? Si es así estoy en la misma misión...
@Jacksonkr Abandoné la idea y recientemente volví a hacerlo. Por ahora solo estoy usando el acelerómetro para mediciones simples como detectar si una persona está activa o inactiva, la aceleración de un puñetazo o patada y contar el número de pasos de alguien. Ya os contaré si logro encontrar alguna manera de saber la velocidad o el desplazamiento. Por ahora, el trabajo más cercano que pude encontrar, abierto al público, fue este, usando una IMU, un algoritmo de fusión de sensores y corrigiendo la deriva integral cada vez que el pie toca el suelo (v=0m/s): x-io. co.uk/seguimiento-de-la-marcha-con-x-imu
@RuiLima Me topé con ese video en mi investigación y es el metraje más prometedor (juego de palabras) que he visto hasta ahora. ¡Impresionante! Gracias por el enlace y he destacado tu código de github. Sin duda, me pondré en contacto con usted a través de su sitio web si encuentro algo prometedor.

Respuestas (3)

He intentado hacer esto, con el acelerómetro/giroscopio de un iPhone, y puedo decirte empíricamente que habrá muchos órdenes de magnitud de error más que eso.

Su declaración "sin considerar la rotación" es importante, ya que este es un factor muy importante. Una de sus dificultades será eliminar el vector de gravedad de la integración. Si el acelerómetro se inclina aunque sea ligeramente, la gravedad introducirá un gran error en cada eje.

En mi experimento, estaba tratando de convertir un iPhone en un cursor 3D que el usuario puede agitar en su mano para modelar en 3D. Se desplazaría en direcciones aleatorias a una velocidad de centímetros por segundo. Un montón de filtrado de paso bajo ayudó un poco a esto, pero aún estaba lejos.

Mi punto es que, incluso si su acelerómetro tiene poco ruido, en el mundo real este es un problema muy difícil de resolver ya que hay muchas otras fuentes de 'ruido'.

Le recomiendo que compre una IMU producida comercialmente si desea tener alguna posibilidad de lograr esto en más de 400 m. Me impresionará si puede hacer que un acelerómetro funcione solo, en una distancia de 400 m con menos de ± 1 km de error.

¿Necesito preformar la fusión del sensor entre el acelerómetro y el giroscopio?
@equidna Sí. Pero el ruido en los sensores seguirá siendo horrible. Los buenos acelerómetros cuestan más que un teléfono inteligente completo. La combinación de sensores adicionales puede ayudar, pero aún se limitará a obtener la dirección con una estimación aproximada de la velocidad. Dependiendo de la plataforma, puede tener acceso a funciones listas para usar, por ejemplo, Motion API en WP8 (retirado en 8.1 por alguna razón).
Solo para asegurarse: ¿solo no funciona el uso de filtros para eliminar la gravedad y el ruido de impacto del acelerómetro?
@equidna: Para caminar, aparentemente hay algunas buenas heurísticas para hacer la fusión de sensores. Ver el artículo ais.informatik.uni-freiburg.de/publications/papers/… El truco es la técnica de "Actualización de velocidad cero" (ZUPT): "En cada paso durante la marcha normal, existe la llamada fase quieta, una período de tiempo en el que el pie no se mueve en relación con el suelo. Ojeda et al. demostraron que el valor de la velocidad debe restablecerse cuando se detecta la fase inmóvil. Descubrimos experimentalmente que la mejor indicación para la fase inmóvil se puede obtener observando el giroscopio datos."
He leído algunos trabajos sobre eso: youtube.com/watch?v=6ijArKE8vKU . Pero mi intención era usar el sensor para correr y no para caminar.

He estado trabajando seriamente (cientos de horas) en un problema relacionado periódicamente durante casi tres décadas sin éxito, por lo que la descripción de "Fool's Errand" en mi caso parece ser empíricamente adecuada.

Incluso si se conocen perfectamente las condiciones tanto al principio como al final de la integración, las variaciones inconsistentes en los errores de lectura individuales impiden un cálculo preciso de las condiciones en los puntos intermedios.

Por supuesto, si los errores de lectura fueran constantes, o si ocurrieran en proporción constante a las lecturas, entonces su cálculo exacto (y compensación) podría lograrse fácilmente. Incluso si las lecturas simplemente se ajustaran a alguna distribución de probabilidad conocida, entonces podría lograrse una aproximación cercana y una compensación razonable.

Pero, por desgracia, ninguna de estas posibilidades simplificadoras parece ser cierta. Entonces, al igual que aquellos que buscan la inmortalidad en pos de la conjetura de Goldbach, nosotros, los incansables investigadores del enigma del error de doble integración, continuaremos nuestra (estúpida) búsqueda de su llave dorada.

Como mínimo, para el movimiento horizontal, su medición requiere que el eje del acelerómetro sea perfectamente horizontal. Cualquier desviación vertical producirá un error aparente debido a que el acelerómetro mide parte del campo gravitacional terrestre. ¿Y qué tan cerca tiene que estar? Tomemos como referencia el número de ruido del acelerómetro de 87,7 ug. Luego, para un ángulo de desviación A, el error medido será sin A, y debe resolver para A = arcsen (.0000877). Esto, por supuesto, es fácil de hacer, y la respuesta es:

.005 grados.

Entonces, tratar de hacer su medición con un solo eje del acelerómetro requiere una precisión de configuración extraordinaria, y creo que necesita encontrar un enfoque diferente.

Estaba considerando usar un acelerómetro de 3 ejes, luego, después de la medición, hacer una suma vectorial de los valores de 3 ejes a lo largo del marco de tiempo, usar un filtro de paso alto y paso bajo para eliminar el ruido gravitacional y el ruido de impacto (como un pie golpeando el suelo) y luego integre dos veces la aceleración para obtener la velocidad y el desplazamiento. Por los comentarios que estoy recibiendo, parece que es imposible, sin embargo, siento la necesidad de probar esto y verlo con mis propios ojos, por otro lado, no quiero ser un manitas obsesivo trabajando en un callejón sin salida.