Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Particle Filter

  • También llamado: sequential Monte Carlo, SMC, bootstrap filter
  • Categoría: State estimation & navigation › Localisation
  • Etiquetas: state-estimation, localization, bayesian-filtering, probabilistic-robotics, monte-carlo

Un método de estimación de estado que representa una creencia como un conjunto de muestras ponderadas, que se mueven con un modelo de movimiento, se ponderan según la verosimilitud del sensor y se remuestrean.

Definición

Filtro de partículas (particle filter) es un estimador bayesiano recursivo que representa la distribución de probabilidad sobre el estado de un sistema con un conjunto de muestras, llamadas partículas, cada una con un peso. El enfoque también se conoce como Monte Carlo secuencial (sequential Monte Carlo); su forma más citada, el filtro bootstrap, la publicaron Gordon, Salmond y Smith en 1993. En robótica se convirtió en estándar gracias a la localización de Monte Carlo (Monte Carlo localization), desarrollada por Dellaert, Fox, Burgard y Thrun, y se trata en profundidad en Probabilistic Robotics.

Cada actualización tiene tres pasos. En el paso de predicción, cada partícula se mueve según el modelo de movimiento, con ruido añadido para reflejar la incertidumbre de la odometría o del control. En el paso de actualización, cada partícula se pondera según lo bien que la última medida del sensor concuerda con el estado que representa. En el paso de remuestreo, se extrae un nuevo conjunto de partículas en proporción a los pesos, de modo que las hipótesis probables se duplican y las improbables desaparecen. La estimación puede leerse de la media ponderada, de la mejor partícula o de un grupo de partículas.

A diferencia del filtro de Kalman y sus extensiones, un filtro de partículas no supone que la creencia sea gaussiana. Puede mantener varias hipótesis separadas a la vez, como un robot que podría estar en uno de dos pasillos idénticos, o un objeto sujeto en una mano que podría estar en varias poses coherentes con los contactos percibidos hasta el momento. El coste es computacional: el número de partículas necesario crece rápidamente con la dimensión del estado, y si muy pocas partículas caen cerca del estado real, el filtro puede colapsar en una respuesta errónea. Por eso los filtros prácticos usan remuestreo de baja varianza, remuestrean solo cuando cae el tamaño efectivo de la muestra, adaptan el número de partículas e inyectan partículas aleatorias para recuperarse de los fallos.

Por qué importa

Muchos problemas de estimación en robótica son no lineales y ambiguos, con creencias que tienen varios picos en lugar de uno. El filtro de partículas los maneja directamente, y por eso es la base de la localización 2D estándar en robots móviles y una herramienta habitual para estimar la pose de objetos a partir del contacto y el tacto.

Aplicaciones clave

  • Localización de robots móviles frente a un mapa conocido (localización de Monte Carlo)
  • Estimación de la pose de un objeto en la mano a partir de la propiocepción y del contacto táctil
  • Seguimiento de personas y objetos en escenas abarrotadas u ocluidas
  • SLAM con filtros de partículas Rao–Blackwellizados como FastSLAM y GMapping
  • Localización global y recuperación cuando un robot se mueve sin que lo sepa

En la práctica

Un robot de almacén que ejecuta la pila de navegación de ROS suele localizarse con AMCL, un paquete de localización de Monte Carlo adaptativa. Al arrancar, el operador da una pose inicial aproximada y se reparten unos pocos miles de partículas a su alrededor. A medida que el robot avanza, la odometría de las ruedas mueve las partículas y cada barrido lidar las vuelve a ponderar frente al mapa de ocupación almacenado; la nube se estrecha alrededor de la pose real en unos pocos metros de recorrido. Los ingenieros ajustan los parámetros de ruido de la odometría para que coincidan con la transmisión real, fijan el número mínimo y máximo de partículas y observan la nube de partículas en RViz: una nube que se divide en dos grupos en un pasillo repetitivo es señal de que el filtro sigue dos hipótesis y necesita un rasgo distintivo para resolverlas.

Ideas erróneas comunes

  • Más partículas siempre resuelven los problemas de precisión — las partículas necesarias crecen rápidamente con la dimensión del estado, así que los problemas de alta dimensión necesitan mejores distribuciones de propuesta o más estructura, no solo más muestras
  • Un filtro de partículas es solo un filtro de Kalman más lento — representa creencias no gaussianas y con varios picos que los filtros de tipo Kalman no pueden representar
  • Remuestrear en cada paso es siempre lo mejor — remuestrear con demasiada frecuencia descarta diversidad; muchos filtros remuestrean solo cuando el tamaño efectivo de la muestra cae por debajo de un umbral
  • El filtro siempre se recuperará de una estimación errónea — una vez que las partículas han colapsado lejos del estado real no pueden volver a menos que se inyecten partículas aleatorias

Quién debería saberlo

  • Ingenieros de localización y navegación de robots móviles
  • Desarrolladores de estimación de estado y SLAM
  • Investigadores en manipulación que estiman la pose de objetos mediante el tacto
  • Estudiantes de robótica que estudian robótica probabilística

Tecnologías relacionadas

  • Localización de Monte Carlo (Monte Carlo Localization, AMCL)
  • Filtro de Kalman (Kalman Filter)
  • FastSLAM
  • Muestreo por importancia (Importance Sampling)
  • Mapa de rejilla de ocupación (Occupancy Grid Map)

Términos relacionados

  • Extended Kalman Filter
  • SLAM
  • Odometry
  • Sensor Fusion
  • LIDAR
  • Partially Observable Markov Decision Process (POMDP)

Proyectos relacionados

  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • OpenVINS: The reference open platform for visual-inertial state estimation research
  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • GLIM: GPU-accelerated 3D lidar SLAM framework for any range sensor, from AIST

Vídeos

  • Understanding the Particle Filter | | Autonomous Navigation, Part 2: MATLAB
  • Particle Filter - 5 Minutes with Cyrill: Cyrill Stachniss

Wikipedia

  • Filtro de partículas

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.