#kalman-filter #square-root #bayesian #linear #kalman #discrete #no-std

no-std bayes_estimate

贝叶斯估计库。卡尔曼滤波、信息、平方根、信息根、无味滤波器和UD滤波器。使用nalgebra进行数值和维度通用的实现。提供快速数值稳定的估计解决方案。

27个版本

0.16.0 2024年8月1日
0.15.0 2023年12月30日
0.14.0 2023年12月30日
0.13.0 2023年2月28日
0.8.0 2021年3月27日

#24 in 机器人

Download history 2/week @ 2024-05-16 3/week @ 2024-05-23 2/week @ 2024-05-30 3/week @ 2024-06-06 2/week @ 2024-06-13 1/week @ 2024-07-25 123/week @ 2024-08-01 4/week @ 2024-08-08

每月128次下载
用于fast-slam

MIT许可证

99KB
2K SLoC

Bayes+Estimate是Rust的贝叶斯估计库。

贝叶斯估计是一种用于数据融合的概率技术。该技术将系统的简明数学表述与对该系统的观察相结合。使用概率表示系统的状态,似然函数表示它们之间的关系。以这种形式,可以应用贝叶斯推理并进一步推导出相关的概率。有关概率论、贝叶斯定理和贝叶斯推理的信息,请参阅维基百科。

对于离散系统,贝叶斯公式导致一个自然迭代的数据融合解决方案。对于动态系统,存在一类解决方案,称为离散滤波器,将系统的观测输出与系统的动态模型相结合。估计器通过系统的每次观测计算系统的状态估计。常用的线性估计器如卡尔曼滤波器。

Bayes+Estimate是Rust的开源库。该库实现了用于离散系统贝叶斯估计的广泛数值算法。

以下线性估计器针对线性或线性化模型实现

  • 协方差经典的扩展卡尔曼滤波器。
  • 信息表示状态的反形式,允许使用信息的加性属性。
  • 信息根信息因式分解形式,以获得更好的数值。
  • ud UdU'协方差因式分解形式,以获得更好的数值。
  • 无味使用'无味'变换以更好地处理非线性模型。

对于不适用于线性化模型的场合,实现了采样重要性重采样估计器

  • sir采样重要性重采样(或加权自助)估计器。

状态噪声模型已经逻辑分离,并由其结构定义。预测和观察由定义不同模型估计操作的特性行为表示。估计器实现它们的状态表示并提供操作的数值实现。

估计器操作提供了一致的实施方案,这使得数值稳定的估计器得以实现。对于线性估计器,可以通过倒数条件数计算估计条件。对于爵士估计器,可以计算样本似然条件。

该库支持no_std操作。

这项工作基于我的Bayes++ C++贝叶斯估计库。请参阅http://bayesclasses.sourceforge.net/Bayes++.html

版权(c)2020 Michael Stevens

许可协议

所有Bayes+Estimate源代码文件均受本页所给许可条件的版权保护。版权声明遵循MIT许可协议。这绝不限制您使用我们的源代码进行的任何商业用途。只要您尊重版权和许可条件,Michael Stevens就愿意让您以任何方式使用它。

在此特此免费许可,任何获得本软件及其相关文档副本(“软件”)的人,可以不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向软件提供的人这样做,前提是符合以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是关于适销性、特定用途的适用性或非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是基于合同、侵权或其他方式,源于、产生于或与软件的使用或其他方式有关。

依赖项

~4MB
~75K SLoC