Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加扩展卡尔曼滤波模块,并添加相关文档 #81

Merged
merged 1 commit into from
Apr 26, 2024
Merged

增加扩展卡尔曼滤波模块,并添加相关文档 #81

merged 1 commit into from
Apr 26, 2024

Conversation

zhaoxi-scut
Copy link
Member

@zhaoxi-scut zhaoxi-scut commented Apr 22, 2024

Pull Request 合并请求准备清单

详情参见此处

  • 我同意在 Apache 2 开源许可下为本项目做贡献
  • 此 pull request 是在正确的分支上提出的
  • 此 pull request 有对应的错误报告或其他待改进的内容
  • 我本地的 RMVL 进行了单元测试、性能测试,有对应的测试数据
  • 我提交的 feature 有很好的文档记录,并且可以使用 CMake 项目构建示例代码

具体内容

  • 重构 kalman.hpp,将功能拆解为 rm::KalmanFilterStaticDatarm::KalmanFilter 两个模板类,不影响使用
  • 移除系统输入 $B\pmb u$
  • 增加扩展卡尔曼滤波模块
  • 增加 kalman.hpp 的单元测试,包含
    1. 一维匀速运动的 2 状态量 1 观测量的卡尔曼滤波(后文简称 KF21
    2. 二维匀速运动的 KF42
    3. 二维匀速圆周运动的 EKF53
  • Close 增加扩展卡尔曼滤波功能 #80

本地单元测试结果(含 ctest

[==========] Running 12 tests from 3 test suites.
[----------] Global test environment set-up.
...

[----------] 3 tests from KalmanTest
[ RUN      ] KalmanTest.kf
[       OK ] KalmanTest.kf (0 ms)
[ RUN      ] KalmanTest.kf2
[       OK ] KalmanTest.kf2 (0 ms)
[ RUN      ] KalmanTest.ekf
[       OK ] KalmanTest.ekf (0 ms)
[----------] 3 tests from KalmanTest (0 ms total)

...

[----------] Global test environment tear-down
[==========] 12 tests from 3 test suites ran. (2 ms total)
[  PASSED  ] 12 tests.

@zhaoxi-scut zhaoxi-scut added the feature 新特性、新功能 label Apr 22, 2024
@zhaoxi-scut zhaoxi-scut added this to the 1.3.0 milestone Apr 22, 2024
@zhaoxi-scut
Copy link
Member Author

zhaoxi-scut commented Apr 22, 2024

需要添加与 cv::Kalmanfilter 对比的性能测试

@zhaoxi-scut
Copy link
Member Author

基准测试

内容

  • 使用 4 状态量,2 观测量的无系统输入的卡尔曼滤波器进行测试,对比 rm::KalmanFilter 模板类与 cv::KalmanFilter 类在解决同样问题时的性能差异

结果

--------------------------------------------------------------------------------
Benchmark                                      Time             CPU   Iterations
--------------------------------------------------------------------------------
KalmanFilter42 -   RMVL/iterations:10     419014 ns       368469 ns           10
KalmanFilter42 - OpenCV/iterations:10    9010059 ns      8972453 ns           10

@zhaoxi-scut zhaoxi-scut removed this from the 1.3.0 milestone Apr 26, 2024
@zhaoxi-scut zhaoxi-scut merged commit 3818d58 into cv-rmvl:master Apr 26, 2024
3 checks passed
@zhaoxi-scut zhaoxi-scut deleted the ekf-dev branch April 26, 2024 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 新特性、新功能
Projects
None yet
Development

Successfully merging this pull request may close these issues.

增加扩展卡尔曼滤波功能
1 participant