sistemas para observadores mpu6050 kalman finanzas filtro etapas control opencv localization robotics kalman-filter

opencv - para - formula filtro kalman



Seguimiento de posiciĆ³n y velocidad usando un filtro kalman (1)

Lo más importante sobre el diseño de un filtro de Kalman no son los datos, sino las estimaciones de errores. Las matrices en ese ejemplo parecen ser elegidas arbitrariamente, pero debes elegirlas usando el conocimiento específico de tu sistema. En particular:

  • La covarianza de error tiene unidades. Es la desviación estándar al cuadrado. Entonces su error de posición está en "longitud al cuadrado" y velocidad en "longitud por tiempo al cuadrado". Los valores en esas matrices serán diferentes dependiendo de si trabaja en m o mm.
  • Está implementando un modelo de "velocidad constante", pero el "processNoiseCov" del ejemplo establece los mismos valores para el ruido de posición y del proceso de velocidad. Esto significa que puede estar equivocado acerca de su posición debido a estar equivocado acerca de su velocidad, y puede estar equivocado porque el objeto se teletransporta de una manera que es independiente de la velocidad . En un modelo CV, cabría esperar que el ruido del proceso de posición fuera muy bajo (básicamente distinto de cero solo por razones numéricas y para cubrir el error de modelado) y el verdadero movimiento desconocido del sistema se atribuiría a una velocidad desconocida. Este problema también interfiere con la capacidad del KF para inferir la velocidad desde la entrada de posición, porque el "error de teletransportación" de la posición no se atribuye al cambio de velocidad.
  • Si está agregando +/- 20 mm de error (realmente debe poner ruido gaussiano si desea simular el comportamiento ideal), tiene una desviación estándar aproximada de 11.5 mm o una varianza de (11.5 mm) ^ 2. Sin saber cuáles son sus unidades (mm o m), no puedo decir cuál debería ser el valor numérico de "measurementNoiseCov", pero no es 0.1 (como en el ejemplo).

Y finalmente, incluso con todo eso correcto, tenga en cuenta que el KF es en última instancia un filtro lineal. Cualquier ruido que pongas aparecerá en la salida, solo escalado por algún factor (la ganancia de Kalman).

Estoy usando un filtro kalman (modelo de velocidad constante) para rastrear la posición y la velocidad de un objeto. Mido x, y del objeto y rastrear x, y, vx, vy. Lo cual funciona pero si se agrega un ruido Gausiano de + - 20 mm a las lecturas del sensor x, y, vx, vy, fluctúa aunque el punto no se mueva solo el ruido. Para una ubicación que sea lo suficientemente buena para mis necesidades, pero la velocidad cambia cuando el punto está estacionario y eso está causando problemas con los cálculos de velocidad de mi objeto. ¿Hay alguna forma de solucionar este problema? también si el cambio a un modelo de aceleración constante mejora en esto? Estoy rastreando un robot a través de una cámara.

Estoy usando la implementación de OpenCV y mi modelo de Kalman es el mismo que [1]

[1] http://www.morethantechnical.com/2011/06/17/simple-kalman-filter-for-tracking-using-opencv-2-2-w-code/