Skip to content

一个学习项目,尝试复刻Keisuke Fujii《Extended Kalman Filter》论文中的EKF算法,用于二维平面UAV点目标轨迹预测仿真。

License

Notifications You must be signed in to change notification settings

biubushy/ekf-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EKF-2D-UAV-Tracker

Extended Kalman Filter for 2D UAV Trajectory Prediction

一个学习项目,尝试复刻Keisuke Fujii《Extended Kalman Filter》论文中的EKF算法,用于二维平面UAV点目标轨迹预测仿真。

Tests Python License

特性

  • 严格遵循论文数学公式,确保物理真实性
  • 完整实现EKF预测-滤波-平滑流程 (Eq.2.9-2.35)
  • 逆卡尔曼滤波支持站点排除 (Eq.2.36-2.38)
  • 多种运动模型(恒速/匀加速/圆周)
  • 单图输出可视化结果(12种图表)
  • 命令行接口,支持参数化仿真
  • 高性能:>1000步/秒处理速度

安装

# 克隆项目
git clone https://github.com/Biubushy/ekf-tracker.git
cd ekf-tracker

# 使用uv安装依赖
uv sync

快速开始

# 基本仿真(100步,恒速运动)
uv run ekf-tracker simulate

# 自定义仿真参数
uv run ekf-tracker simulate --steps 200 --dt 0.1 --smooth

# 圆周运动轨迹
uv run ekf-tracker simulate --trajectory circular --steps 100 --smooth

# 指定噪声参数
uv run ekf-tracker simulate --process-noise 0.5 --measurement-noise 1.0

# 可复现结果
uv run ekf-tracker simulate --seed 42 --smooth

# 查看帮助
uv run ekf-tracker --help

项目结构

ekf_tracker/
├── core/              # EKF核心算法
│   ├── predictor.py   # 预测步骤 (Eq.2.9, 2.13, 2.14)
│   ├── filter.py      # 滤波步骤 (Eq.2.18, 2.21, 2.23)
│   ├── smoother.py    # 平滑步骤 (Eq.2.34, 2.35)
│   └── inverse.py     # 逆滤波 (Eq.2.36, 2.37)
├── models/            # 物理模型
├── simulation/        # 仿真逻辑
├── visualization/     # 可视化
└── cli.py             # 命令行入口

tests/
├── unit/              # 公式验证测试
├── integration/       # 流程测试
└── validation/        # 统计验证

论文参考

本项目严格复刻以下论文的EKF算法实现:

Fujii K. Extended Kalman Filter[J]. Reference Manual, 2013, 14: 41.

论文PDF已包含在项目中:paper/Extended Kalman Filter.pdf

实现的公式

模块 公式 说明
预测 Eq.2.9, 2.13, 2.14 状态预测、协方差传播
滤波 Eq.2.17, 2.18, 2.21, 2.23 卡尔曼增益、状态更新
平滑 Eq.2.34, 2.35 RTS平滑器
逆滤波 Eq.2.36, 2.37, 2.38 站点排除

开发

# 运行测试
uv run pytest

# 代码格式化
uv run ruff format ekf_tracker/

# 代码检查
uv run ruff check ekf_tracker/

许可证

MIT License - 详见 LICENSE

作者

Biubushy - @Biubushy


⭐ 如果这个项目对你有帮助,欢迎 Star!

About

一个学习项目,尝试复刻Keisuke Fujii《Extended Kalman Filter》论文中的EKF算法,用于二维平面UAV点目标轨迹预测仿真。

Topics

Resources

License

Stars

Watchers

Forks

Languages