# filter_box_py **Repository Path**: smallblackqaq/filter_box_py ## Basic Information - **Project Name**: filter_box_py - **Description**: filter_box的python版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # filter_box_py Pure-math EKF/IMM/MCKF toolkit aligned with the C++ filter_box design ## Examples - EKF(CV) example: examples/example_ekf_cv.py - EKF(nonlinear) example: examples/example_ekf_nonlinear.py - IMM example: examples/example_imm.py - MCKF example: examples/example_mckf.py Run from repository root after installing this subproject: ```bash python -m pip install -e ./filter_box_py python filter_box_py/examples/example_ekf_cv.py python filter_box_py/examples/example_ekf_nonlinear.py python filter_box_py/examples/example_imm.py python filter_box_py/examples/example_mckf.py ``` ## Python 版 filter_box(与 C++ 设计理念一致) - 保持 EKF、IMM 和 MCKF 的分层结构 - 强调函数注入(过程函数、观测函数、雅可比) - 默认不加入应用层特化(如角度归一化、限幅等) 目录: - [filter_box_py/ekf.py](filter_box_py/ekf.py): 通用 EKF - [filter_box_py/imm.py](filter_box_py/imm.py): 基于 EKF 的 IMM - [filter_box_py/mckf.py](filter_box_py/mckf.py): 基于最大相关熵准则的鲁棒滤波器 - [examples/example_ekf_cv.py](examples/example_ekf_cv.py): 线性 CV 场景 EKF 用法 - [examples/example_ekf_nonlinear.py](examples/example_ekf_nonlinear.py): 非线性场景 EKF 用法 - [examples/example_imm.py](examples/example_imm.py): IMM 五步骤用法 - [examples/example_mckf.py](examples/example_mckf.py): MCKF 用法(含离群值) ### 安装(推荐 conda + 可编辑安装) ```bash conda activate starlight-filter pip install -e . ``` ### 运行示例 ```bash python examples/example_ekf_cv.py python examples/example_ekf_nonlinear.py python examples/example_imm.py python examples/example_mckf.py ``` ### IMM 建议调用顺序 每个时刻建议按以下顺序: 1. `interact()` 2. `predict(...)` 3. `compute_weight(...)` 4. `correct(...)` 5. `get_est()`(可选)