#kalman-filter #filtering #estimator #aerospace #state-estimation #extended-kalman

no-std kfilter

卡尔曼滤波和扩展卡尔曼滤波的无std实现

6 个版本

0.3.1 2024年8月19日
0.3.0 2024年7月30日
0.2.2 2024年7月29日
0.1.0 2024年7月26日

#36机器人学

Download history 248/week @ 2024-07-23 272/week @ 2024-07-30 58/week @ 2024-08-13

每月578次下载

MIT 许可证

36KB
581 代码行

Kfilter

卡尔曼滤波和扩展卡尔曼滤波的无std实现。

请参阅文档示例了解使用方法。

请参阅这篇博客文章了解库的设计原因。

特性

  • 建模状态转换/预测的系统
    • 线性或非线性
    • 带输入和不带输入
  • 建模传感器/观测的测量
    • 线性或非线性
  • 单测量卡尔曼滤波器(Kalman1M)或多测量/多速率(Kalman)

快速入门

以下示例是一个具有位置测量的位置和速度2状态卡尔曼滤波器。

use kfilter::{Kalman1M, KalmanPredict};
use nalgebra::{Matrix1, Matrix1x2, Matrix2, SMatrix};

// Create a new 2 state kalman filter
let mut k = Kalman1M::new(
    Matrix2::new(1.0, 0.1, 0.0, 1.0),   // F
    SMatrix::identity(),                // Q
    Matrix1x2::new(1.0, 0.0),           // H
    SMatrix::identity(),                // R
    SMatrix::zeros(),                   // x
);
// Run 100 timesteps
for i in 0..100 {
    // predict based on system model
    k.predict();
    // update based on new measurement
    k.update(Matrix1::new(i as f64));
}

依赖关系

~4MB
~79K SLoC