Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Parámetros de filtro de partículas

A es un estimador de estado Bayesiano recursivo que utiliza partículas discretas para aproximar la distribución posterior del estado estimado.filtro de partículas

Para utilizar el filtro de partículas correctamente, debe especificar parámetros como el número de partículas, la ubicación de la partícula inicial y el método de estimación de estado. Además, si tiene un modelo de movimiento y sensor específico, especifique estos parámetros en la función de transición de estado y la función de probabilidad de medición, respectivamente. Los detalles de estos parámetros se detallan en esta página. Para obtener más información sobre el flujo de trabajo del filtro de partículas, consulte.Flujo de trabajo de filtro de partículas

Número de partículas

Para especificar el número de partículas, utilice el método.initialize Cada partícula es una hipótesis del estado actual. Las partículas se distribuyen por el espacio de estado en función de una media y una covarianza especificadas, o bien en los límites de estado especificados. Dependiendo de la propiedad, ya sea la partícula con el peso más alto o la media de todas las partículas se toma para determinar la mejor estimación de estado.StateEstimationMethod

El número predeterminado de partículas es 1000. A menos que el rendimiento sea un problema, no utilice menos de 1000 partículas. Un mayor número de partículas puede mejorar la estimación, pero sacrifica la velocidad de rendimiento, porque el algoritmo tiene que procesar más partículas. Ajustar el número de partículas es la mejor manera de afectar el rendimiento de los filtros de partículas.

Estos resultados, que se basan en el ejemplo, muestran la diferencia en la precisión de seguimiento cuando se utiliza 100 partículas y 5000 partículas.Estimar la posición del robot en un bucle usando filtro de partículas

Ubicación inicial de la partícula

Al inicializar el filtro de partículas, puede especificar la ubicación inicial de las partículas mediante:

  • La media y la covarianza

  • Límites estatales

El estado inicial se define como una media con una covarianza en relación con el sistema. Esta media y covarianza se correlacionan con la ubicación inicial y la incertidumbre de su sistema. El objeto distribuye partículas en función de su covarianza alrededor de la media dada.ParticleFilter El algoritmo utiliza esta distribución de partículas para obtener la mejor estimación del estado, por lo que una inicialización precisa de partículas ayuda a converger a la mejor estimación de estado rápidamente.

Si se desconoce un estado inicial, puede distribuir uniformemente sus partículas a través de los límites de un estado determinado. Los límites del estado son el límite de su estado. Por ejemplo, al estimar la posición de un robot, los límites del estado se limitan al entorno que el robot realmente puede habitar. En general, una distribución uniforme de las partículas es una forma menos eficiente de inicializar las partículas para mejorar la velocidad de convergencia.

La gráfica muestra cómo la especificación de media y covarianza puede agrupar partículas de forma mucho más eficaz en un espacio en lugar de especificar los límites de estado completos.

Función de transición de estado

La función de transición de estado, de un filtro de partículas ayuda a evolucionar las partículas al siguiente estado.StateTransitionFcn Se utiliza durante el paso de predicción de la.Flujo de trabajo de filtro de partículas En el objeto, la función de transición de estado se especifica como una función de devolución de llamada que toma los objetos anteriores, y cualquier otro parámetro necesario, y genera la ubicación prevista.ParticleFilter La sintaxis del encabezado de función es:

function predictParticles = stateTransitionFcn(pf,prevParticles,varargin)

De forma predeterminada, la función de transición de estado asume un modelo de movimiento Gaussiano con velocidades constantes. La función utiliza una distribución gaussiana para determinar la posición de las partículas en el siguiente paso de tiempo.

Para su aplicación, es importante tener una función de transición de estado que describa con precisión cómo espera que el sistema se comporte. Para evolucionar con precisión todas las partículas, debe desarrollar e implementar un modelo de movimiento para su sistema. Si las partículas no se distribuyen alrededor del siguiente estado, el objeto no encuentra una estimación precisa.ParticleFilter Por lo tanto, es importante entender cómo su sistema puede comportarse de modo que usted pueda rastrearlo con precisión.

También debe especificar el ruido del sistema en.StateTransitionFcn Sin ruido aleatorio aplicado al sistema pronosticado, el filtro de partículas no funciona como se pretendía.

Aunque puede predecir muchos sistemas en función de su estado anterior, a veces el sistema puede incluir información adicional. El uso de en la función le permite introducir cualquier parámetro adicional que sea relevante para predecir el siguiente estado.varargin Cuando usted llama, usted puede incluir estos parámetros usando:predict

predict(pf,param1,param2)

Debido a que estos parámetros coinciden con la función de transición de estado que definió, llamar esencialmente llama a la función como:predict

predictParticles = stateTransitionFcn(pf,prevParticles,param1,param2)

Las partículas de salida, a continuación, se utilizan por el para corregir las partículas, o se utiliza en el siguiente paso de predicción si no se requiere la corrección.predictParticlesFunción de probabilidad de medición

Función de probabilidad de medición

Después de predecir el siguiente estado, puede usar las mediciones de los sensores para corregir el estado pronosticado. Al especificar un en el objeto, puede corregir los objetos pronosticados mediante la función.MeasurementLikelihoodFcnParticleFiltercorrect Esta función de probabilidad de medición, por definición, da un peso para las hipótesis del estado (sus partículas) en base a una medida dada. Esencialmente, le da la probabilidad de que la medida observada realmente coincida con lo que observa cada partícula. Esta probabilidad se usa como un peso en las partículas pronosticadas para ayudar a corregirlas y obtener la mejor estimación. Aunque el paso de predicción puede ser preciso para un pequeño número de pasos intermedios, para obtener un seguimiento preciso, utilice observaciones del sensor para corregir las partículas con frecuencia.

La especificación de la es similar a la.MeasurementLikelihoodFcnStateTransitionFcn Se especifica como un identificador de función en las propiedades del objeto.ParticleFilter La sintaxis del encabezado de función es:

function likelihood = measurementLikelihoodFcn(pf,predictParticles,measurement,varargin)

La salida es la probabilidad de cada partícula pronosticada basada en la medida dada. Sin embargo, también puede especificar más parámetros en.varargin El uso de en la función le permite introducir cualquier parámetro adicional que sea relevante para corregir el estado pronosticado.varargin Cuando usted llama, usted puede incluir estos parámetros usando:correct

correct(pf,measurement,param1,param2)

Estos parámetros coinciden con la función de probabilidad de medición definida:

likelihood = measurementLikelihoodFcn(pf,predictParticles,measurement,param1,param2)

La función utiliza la salida para el remuestreo de partículas y da la estimación de estado final.correctlikelihood

Política de remuestreo

El remuestreo de partículas es un paso vital para el seguimiento continuo de objetos. Le permite seleccionar partículas basadas en el estado actual, en lugar de utilizar la distribución de partículas dada en la inicialización. Al remuestrear continuamente las partículas alrededor de la estimación actual, puede obtener un seguimiento más preciso y mejorar el rendimiento a largo plazo.

Cuando se llama, las partículas utilizadas para la estimación de estado se pueden remuestrear en función de la propiedad especificada en el objeto.correctResamplingPolicyParticleFilter Esta propiedad se especifica como un objeto.robotics.ResamplingPolicy La propiedad en ese objeto indica al filtro de partículas qué método utilizar para el remuestreo.TriggerMethod

Puede desencadenar el remuestreo en un intervalo fijo o cuando se alcanza una relación de partículas efectiva mínima. El método de intervalo fijo remuestrea en un número determinado de iteraciones, que se especifica en la propiedad.SamplingInterval La relación de partículas efectiva mínima es una medida de lo bien que el conjunto actual de partículas se aproxima a la distribución posterior. El número de partículas efectivas se calcula mediante:

En esta ecuación, es el número de partículas, y es el peso normalizado de cada partícula.Nw La relación de partículas efectiva se Neff / .NumParticles Por lo tanto, la relación de partículas efectiva es una función de los pesos de todas las partículas. Después de que los pesos de las partículas alcancen un valor lo suficientemente bajo, no están contribuyendo a la estimación del estado. Este valor bajo desencadena el remuestreo, por lo que las partículas están más cerca de la estimación de estado actual y tienen pesos más altos.

El método de estimación estatal

El paso final del flujo de trabajo del filtro de partículas es la selección de una sola estimación de estado. Las partículas y sus pesos muestreados a través de la distribución se utilizan para dar la mejor estimación del estado real. Sin embargo, puede usar la información de partículas para obtener una estimación de estado único de varias maneras. Con el objeto, puede elegir la mejor estimación basada en la partícula con el peso más alto o tomar una media de todas las partículas.ParticleFilter Especifique el método de estimación en la propiedad como (predeterminado) o.StateEstimationMethod'mean''maxweight'

Debido a que puede estimar el estado de todas las partículas de muchas maneras, también puede extraer cada partícula y su peso del uso de la propiedad.robotics.ParticleFilterParticles

Consulte también

| | |

Ejemplos relacionados

Más acerca de