Pregunta

Me interesa, ¿cómo es la entrada dual en una configuración de fusionar sensor en un filtro de Kalman modelado?

Digamos por ejemplo que tiene un acelerómetro y un giroscopio y desea presentar el "nivel del horizonte", como en un avión, una buena demostración de algo como esto aquí.

¿Cómo se cosecha en realidad los dos sensores de propiedades positivos y minimizar los negativos?

Este es el modelo de la matriz de observación modelo (generalmente simbolizado por H mayúscula)?


Nota: Esta pregunta también se le preguntó sin ninguna respuesta en math.stackexchange.com

¿Fue útil?

Solución

Por lo general, el problema de fusión de sensores se deriva de las Teorema de Bayes. En realidad, usted tiene que su estimación (en este caso el nivel del horizonte) será una suma ponderada de sus sensores, que está en la cual al modelo de sensor. Para los sensores duales, tiene dos opciones comunes: modelar un sistema de dos sensores y obtener la ganancia de Kalman para cada sensor (utilizando el modelo del sistema como el predictor), o ejecutar dos etapas de corrección utilizando diferentes modelos de observación. Usted debe echar un vistazo a bayesianos predictores (un poco más general que el filtro de Kalman) que se deriva precisamente de minimizar la varianza de una estimación, dado dos diferentes fuentes de información. Si usted tiene una suma ponderada, y minimizar la varianza de la suma, para los dos sensores, se obtiene la ganancia de Kalman.

Las propiedades del sensor puede ser "visto" en dos partes del filtro. En primer lugar, usted tiene la matriz de error para sus observaciones. Esta es la matriz que representa el ruido en la observación de sensores (que se supone que es cero ruido gaussiano media, que no es una suposición demasiado grande, dado que durante la calibración, se puede lograr un ruido de media cero).

La otra matriz importante es la matriz de observación de covarianza. Esta matriz le da una idea de lo bueno que es el sensor al que le da la información (información que significa algo "nuevo" y no depende de los otros sensores de lectura).

Sobre "la cosecha de las características buenas", lo que debe hacer es hacer una calibración buena y caracterización de ruido (es que está bien escrito?) De los sensores. La mejor manera de conseguir un filtro de Kalman para converger es tener un buen modelo de ruido para sus sensores, y que es 100% experimental. Trate de determinar la varianza para su sistema (te siempre hojas de datos de confianza).

Espero que ayude un poco.

Otros consejos

La tasa medidas giroscópicos de cambio de ángulo (por ejemplo, en radianes por segundo), mientras que de la lectura de acelerómetro se puede calcular el ángulo de sí mismo. Aquí es una forma sencilla de combinar estas mediciones:

En cada giroscopio lectura recibida:

angle_radians+=gyro_reading_radians_per_sec * seconds_since_last_gyro_reading

En cada acelerómetro lectura recibida:

angle_radians+=0.02 * (angle_radians_from_accelerometer - angle_radians)

La constante es 0,02 para el ajuste - se selecciona el equilibrio entre el rechazo de ruido y capacidad de respuesta (no se puede tener ambas cosas al mismo tiempo). También depende de la precisión de los dos sensores, y en el que se reciben los intervalos de tiempo nuevas lecturas.

Estas dos líneas de código implementar un simple filtro (escalar) Kalman 1-dimensional. Se supone que

  • la gyro tiene muy bajo nivel de ruido en comparación con acelerómetro (cierto con la mayoría de los sensores de nivel de consumidor). Por lo tanto hacemos ruido giroscopio no modelo en absoluto, pero en lugar de utilizar giroscopio en el modelo de transición de estados (por lo general denotado por F).
  • acelerómetro lecturas se reciben en general intervalos tiempo regulares y el acelerómetro nivel de ruido (por lo general R) es constante
  • angle_radians ha sido inicializado con una estimación inicial (f.ex por angle_radians_from_accelerometer promedio de más de algún tiempo)
  • por lo tanto también estimación de la covarianza (P) y óptimo de ganancia de Kalman (K) son constantes, lo que significa que no es necesario para mantener covarianza estimación en una variable en absoluto.

Como se ve, se simplifica este enfoque. Si los supuestos anteriores no se cumplen, usted debe aprender algo de teoría filtro de Kalman, y modificar el código en consecuencia.

línea de horizonte es * G'(u, v, f) = 0, donde G es un vector de gravedad, imagen v u y centrado coordenadas y f la distancia focal. Ahora pros y los contras de sensores: giroscopio es súper rápido y preciso pero derivas, acelerómetro es menos preciso pero (si calibrado) tiene polarización cero y no deriva (dado ninguna aceleración excepto la gravedad). Miden cosas diferentes - acelerómetro mide la aceleración y por lo tanto la orientación con respecto al vector de gravedad, mientras que las medidas de la velocidad de rotación del giroscopio y por lo tanto el cambio de orientación. Para convertirlo en una orientación tiene que integrar sus valores (por suerte que pueda ser muestreada a altas fps como 100-200). por tanto, el filtro de Kalman que supone que es lineal no es aplicable a giroscopio. por ahora podemos fusión de sensores simplemente simplificar como una suma ponderada de las lecturas y predicciones.

Se puede combinar dos lecturas - acelerómetro y la predicción giroscopio y el modelo integrado usando pesos que son inversamente proporcionales a los datos de varianzas. También tendrá que utilizar la brújula de vez en cuando desde el acelerómetro no le dice mucho sobre el acimut, pero supongo que es irrelevante para el cálculo de una línea de horizonte. El sistema debe ser sensible y preciso y para este propósito siempre que la orientación cambia rápidamente los pesos para gyro debe ser grande; cuando el sistema se establece y la rotación se detiene los pesos para acelerómetro subirán permitiendo una mayor integración de las lecturas de polarización cero y matando a la deriva de giróscopo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top