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.
84 lines
1.6 KiB
Markdown
84 lines
1.6 KiB
Markdown
# 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:
|
|
|
|
```python
|
|
pip install pygame numpy
|
|
```
|
|
|
|
## Ejecucion
|
|
|
|
```python
|
|
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
|
|
|