zoukankan      html  css  js  c++  java
  • 卡尔曼滤波器及其扩展的个人学习笔记~

    Kalman Filter

    本质:线性滤波算法(只适用于线性且满足高斯分布的系统!!!)

    核心思想:根据上一时刻(状态)的“预测量”和“预测误差”,以及当前时刻(状态)的“观测量(测量量)”和“测量误差”,来对当前的“真实值”进行最优估计,计算得到当前的“最优量”

    突出观点:计算考虑“误差”,且分为“预测误差”和“测量误差”,同时误差独立存在,始终不受测量数据的影响。

    举个例子:

            在航海中,船长通常以前一时刻的船位为基准,根据航向、船速、和海流等多种因素推算下一个船位(预测量),但是并不能轻易认为当前船位就一定在推算的船位上,还要选择适当的方法,通过仪器的到另一个推算的船位(测量量)。观测和推算的这两个船位一般不重合,需要通过分析和判断选择一个可靠的船位,作为当前的“真实”船位。

    描述数学化:

    公式化:

     简单场景实践:

     

     实践:

    https://github.com/GengMingjin2/Learning_Algorithm/tree/master/EKF/KF

     

    Extend Kalman Filter:

    本质:KF的非线性扩展,线性滤波算法(非线性的高斯分布系统!!!)

    (一个很优秀的course:https://simondlevy.academic.wlu.edu/kalman-tutorial/)

    图片中的公式在表达上全部都是按照常规偏导的方式表达,而在真实的应用场景中,更加一般的表达是使用Joccobi矩阵来表达,而其中的每一项都是提前推导完毕后才应用到代码中的,这一点非常重要。

    同时在进行泰勒展开时,上述表达的EKF算法中仅仅在起始点进行了一次线性近似,后续的迭代过程中不再进行线性近似了(这也是为什么最基础的EKF算法的误差比其他几种KF改进算法的误差大的原因,毕竟这仅有的一次线性引入的误差会一直累计下去不断扩大~)

  • 相关阅读:
    数据库常用术语
    灾备模式的基本体系架构
    linux下的c++开发
    视图矩阵的推导-opengl应用
    抓包实例
    以软件推动工业进步 -嵌入式学习网站
    web 前端 转盘界面
    web 汇率
    xml
    高性能网站架构设计之缓存篇(4)- 主从复制
  • 原文地址:https://www.cnblogs.com/bupt213/p/11505280.html
Copyright © 2011-2022 走看看