¿Cómo determinar la posición a partir de la entrada del giroscopio y el acelerómetro?

Tengo un acelerómetro de 3 ejes y un giroscopio de 2 ejes. Pretendo medir algo que solo se mueve en el eje X y Z. Escuché sobre el uso de filtros de Kalman para suavizar los vectores de aceleración, pero no puedo encontrar un buen tutorial para un principiante completo en el tema. Además, sé que puedo duplicar la integración de la aceleración para obtener la posición, pero ¿cómo hago esto con un número finito de vectores de aceleración muestreados? Apreciaría enlaces a buenos tutoriales para principiantes sobre estos dos temas.

Suena como esta publicación de blog con la que me topé hoy: starlino.com/imu_kalman_arduino.html No tengo conexión con ese sitio, solo pensé que parecía relevante para lo que estás preguntando.
En este artículo se puede encontrar una serie de tutoriales sobre cómo usar e interconectar los sensores del acelerómetro. intorobotics.com/… aquí hay tutoriales disponibles para mediciones de 2 ejes

Respuestas (5)

Aquí hay un tutorial sobre cómo implementar una matriz de coseno de dirección para una IMU: http://gentlenav.googlecode.com/files/DCMDraft2.pdf

Eche un vistazo a las páginas de ArduIMU: http://code.google.com/p/ardu-imu/wiki/Theory

Aquí hay un par de proyectos de código abierto que hacen esto. Leer el código debería dar algunas pistas:

http://code.google.com/p/gluonpilot/source/browse/trunk/Firmware/#Firmware/rtos_pilot%3Fstate%3Dcerrado

http://code.google.com/p/sf9domahrs/

Bueno, el filtro de Kalman es una especie de magia que funciona misteriosamente. :)

Empecé primero con filtros digitales . Bien explicado para empezar. Y fácilmente comprensible. Estos filtros simples funcionan muy bien para el balanceo y el cabeceo de cualquier sistema. Solo necesita ajustar la relación Precisión vs Respuesta experimentando. El truco es [Precisión = 1 - Respuesta].

Darle una oportunidad.

Luego, para comprender el filtro de Kalman, deberá seguir los siguientes pasos:

  1. Probabilidad
  2. ley de bayes
  3. Luego, deberá aprender a modelar escenarios simples para adaptarlos al filtro de Kalman.
  4. Actualmente estoy aquí, así que encontrar qué hacer ... seguramente te lo haré saber.

Y debe compartir si se encuentra con algo como esto.

... doble integración de aceleración para obtener posición

En teoría (siempre que tenga sensores y medidas perfectos) puede hacer eso, pero en la práctica no puede. El problema es que el acelerómetro tendrá una fuerza constante de 1G causada por la gravedad cuando el objeto está quieto (cero G en caso de caída libre), pero esto no se mide exactamente como 1.00000000...G. Al mover el objeto, tendrá un vector como la suma de 1G de gravedad y la aceleración del movimiento (que suele ser mucho menor que 1G) y sus medidas acumularán demasiado ruido con el tiempo para ser útiles si intenta integrar las medidas. aceleración menos 1G de gravedad.

Empecé a construir un quad hace casi 6 meses, tuve muchos problemas con la determinación del ángulo correcto :)

En primer lugar, debe probar esta presentación: http://web.mit.edu/scolton/www/filter.pdf Es realmente completa y podría ayudarlo a tener una mejor idea de lo que realmente quiere, prácticamente funcionó. para mi.

Supongo que depende de ti, pero implementar el filtro de Kalman no solo requiere un conocimiento bastante sólido en matemáticas, teoría de sistemas y, en este caso, física, sino que también es muy exigente con respecto a la carga de la CPU. En caso de que tenga en mente usar, digamos un Atmega328 registrado a 16Mhz, es posible que tenga problemas para usar este tipo de filtro. Es realmente efectivo si está utilizando un DSP para que pueda filtrar su entrada acc.

En general, mi consejo es: intente usar el filtro complementario de primer orden o incluso el filtro complementario de segundo orden en caso de que no esté satisfecho con los resultados. Si su sistema está libre de vibraciones de alta frecuencia, debería funcionar muy bien. Aparte de eso, el enlace de JustJeff es el lugar perfecto para comenzar en caso de que te quedes atascado con la implementación :)

Todo lo mejor, Dan

Tu enlace está muerto. Investigué un poco y encontré el documento nuevamente: googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdf Al menos se supone que es lo mismo, tal vez quieras volver a verificar.
Si, es exactamente lo mismo :)
el link esta muerto otra vez :(
@KyranF creo que lo encontré de nuevo :) portal.ts-muenchen.de/Dateien/filter.pdf
@Dan agradable, este es exactamente el mismo documento que usé para diseñar mi firmware cuando hice un mini segway en la universidad. youtu.be/zOFlJJj8ppA

También soy un novato y también estoy buscando alguna solución para mi trabajo de navegación. igual que tu, tengo una placa configurada con acelerómetro de 3 ejes y giroscopio 2D. hasta ahora he leído muchos materiales sobre esto, así mismo decido adoptar el filtro kalman para mi manejo de señales. Puede ser que no tenga alguna sugerencia para ti, pero quiero compartir contigo algo que había visto antes. hay algunos enlaces que apuntan a ellos, espero que te sean útiles.

  1. Introducción del filtro de Kalman
  2. Caja de herramientas de navegación de robot CAS
  3. Caja de herramientas de navegación inercial de código abierto
  4. Código fuente de Un proyecto sobre navegación

limitado a mi reputación, solo tengo autoridad para publicar menos de 2 enlaces. entonces los otros dos que quiero publicar de la siguiente manera:

Si bien este puede ser un conjunto útil de enlaces para el OP, esta publicación sería valiosa si también agregara resúmenes del contenido relevante de esos enlaces, específicos a la pregunta que el OP ha publicado. Tenga en cuenta que cuando los enlaces finalmente se vuelvan inválidos debido a la rotura del enlace, esta publicación no tendrá ningún valor. Gracias.