You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Israel Herrera Gonzalez 9c5967435e first commit 4 days ago
README.md first commit 4 days ago
carKF.py first commit 4 days ago

README.md

Juego de utilizando filtro de kalman

Este proyecto implementa una simulación visual del Filtro de Kalman aplicado al seguimiento de un vehículo en 2D. El usuario puede controlar la “posición real” del carro con las flechas del teclado, mientras el sistema:

  • Genera mediciones ruidosas (sensores).
  • Predice la siguiente posición usando el modelo dinámico.
  • Corrige la estimación aplicando el Filtro de Kalman.

En el juego podemos visualizar:

  • Trayectoria real (verde)
  • Mediciones ruidosas (rojo)
  • Estimación de Kalman (azul)
  • Elipse de incertidumbre (radio proporcional a la covarianza)

Objetivo del proyecto

Este programa fue creado como demostración educativa para mostrar cómo el Filtro de Kalman:

  1. Fusiona información del modelo con mediciones ruidosas
  2. Reduce la incertidumbre del sistema
  3. Proporciona una estimación más precisa que los datos del sensor

Requisitos:

  • Python 3.8+
  • Pygame
  • NumPy

Instalación rápida:

pip install pygame numpy

Ejecucion

python carKF.py

Se controla mediante las flechas del teclado.

🧠 ¿Cómo funciona el filtro de Kalman en esta simulación?

El estado del carro se modela como:

x = \begin{bmatrix} x \ y \ v_x \ v_y \end{bmatrix}

El modelo dinámico (movimiento con velocidad constante):

x_{k+1} = A x_k + w_k

Donde:

A = \begin{bmatrix} 1 & 0 & dt & 0 \ 0 & 1 & 0 & dt \ 0 & 0 & 1 & 0 \ 0 & 0 & 0 & 1 \end{bmatrix}

Las mediciones simuladas solo observan la posición:

z_k = \begin{bmatrix} x \ y \end{bmatrix} + v_k

Matrices de ruido: • Ruido del proceso: Q = 0.01 I • Ruido del sensor (muy ruidoso): R = 25 I