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

31

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

    
pregunta Steven

5 respuestas

16

Aquí hay un tutorial sobre cómo implementar una matriz de coseno de dirección para una IMU: enlace

Echa un vistazo a las páginas de ArduIMU: enlace

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

enlace

enlace

    
respondido por el Toby Jaffey
8

Bueno, el filtro de Kalman es un tipo de magia que funciona misteriosamente. :)

Comencé primero con Filtros digitales . Bien explicado para empezar. Y es fácil de entender. Estos filtros simples funcionan bien para el balanceo y inclinación de cualquier sistema. Solo es necesario ajustar la relación de precisión frente a respuesta mediante la experimentación. El truco es [Precisión = 1 - Respuesta].

Inténtalo.

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

  1. probabilidad
  2. ley de Bayes
  3. Luego, tendrá que aprender a modelar escenarios simples para la adaptación esos en el filtro de Kalman.
  4. Actualmente estoy aquí, así que encontrar qué hacer ... seguramente te permitirá saber.

Y debes compartir si te encuentras con algo como esto.

    
respondido por el Rick2047
7
  

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

En teoría (siempre que tenga sensores y mediciones perfectos) puede hacerlo, 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 como exactamente 1.00000000 ... G. Cuando mueva el objeto, tendrá un vector como la suma de la gravedad 1G y la aceleración del movimiento (que suele ser mucho menor que 1G) y sus mediciones acumularán demasiado ruido a lo largo del tiempo para que sea útil si intenta integrar medidas Aceleración menos gravedad 1G.

    
respondido por el hlovdal
6

Comencé 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: enlace Es realmente completo y podría ayudarlo a tener una mejor idea de lo que realmente quiere, ya que el truco me sirvió.

Supongo que depende de usted, pero implementar el filtro de Kalman no solo requiere conocimientos muy sólidos 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 CPU. En caso de que tenga en mente el uso, digamos que un Atmega328 con reloj a 16Mhz puede tener problemas al usar este tipo de filtro. Es realmente efectivo si está usando un DSP, por lo que puede filtrar por debajo la entrada de datos.

En general, mi consejo es: intente utilizar el filtro complementario de primer orden o tal vez 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 que deberían funcionar bien. Aparte de que el enlace de JustJeff es el lugar perfecto para comenzar en caso de que te quedes con la implementación :)

Todo lo mejor, Dan

    
respondido por el Dan
1

También soy un novato y también busco alguna solución para mi trabajo de navegación. Igual que tú, tengo una placa configurada con acelerómetro de 3 ejes y giroscopio 2D. Hasta ahora he leído muchos materiales acerca de esto, así mismo decido adoptar el filtro kalman para mis transacciones de señales. puede que no tenga ninguna sugerencia para usted, pero quiero compartir algo con usted que había visto antes. Hay algunos enlaces que apuntan a ellos, espero que te sean útiles.

  1. Introducción al filtro de Kalman
  2. Caja de herramientas de navegación del 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. así que los otros dos quiero publicar como abajo:

    
respondido por el DarkHorse

Lea otras preguntas en las etiquetas