• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

SLAM后端优化中卡尔曼滤波的直观通俗解释

人工智能 郑纯然 2501次浏览 0个评论

先讨论滤波器的概念,滤波的意思是,让机器人在某个正确位置上对应的概率越高越好。也就是可以理解为:把错误位置上的概率滤低,把正确位置处的概率滤高。 假设一个机器人小R在如下场景中出现,他刚开始不知道自己在哪(小R还没看到他眼前的门),因此他在这个场景中任何位置的概率是相等的。如果此时纵坐标为机器人小R在对应位置处的概率,横坐标表示各个位置,应该是一条均匀分布的直线。  
SLAM后端优化中卡尔曼滤波的直观通俗解释   突然,机器人看到了眼前这个门,这里假设机器人提前知道一共有三个门,因此小R现在知道自己可能在任意一个门前,即三个门分别对应着一个正态分布。此时的概率波形可以理解为先验概率。  
SLAM后端优化中卡尔曼滤波的直观通俗解释   小R继续向前走到第二个门前,他通过自己身上安装的里程计发现自己走了d个单位。  
SLAM后端优化中卡尔曼滤波的直观通俗解释   根据之前的概率分布,小R可以预测到,自己的位置应该向右平移了d个单位。那么可以将之前的概率分布向右平移d个单位,得到此时通过传感器得到的概率分布。此时的概率波形可以理解为似然概率。  
SLAM后端优化中卡尔曼滤波的直观通俗解释     小R突然发现自己看到了第二扇门前,仅根据当前的观测,小R知道自己在三个门前的概率相同,又可以得到之前的三个正态分布。根据传感器预测得到的分布和根据先验信息得到的分布得:  
SLAM后端优化中卡尔曼滤波的直观通俗解释   两个波形信号可以做个卷积融合得到:  
SLAM后端优化中卡尔曼滤波的直观通俗解释   这样小R在第二扇门处(正确位置)的概率就变大了,在其他位置处的概率就变小了,进而达到了滤波的目的。 以上即是普通滤波器的直观解释,同样地,可以类比到卡尔曼滤波上。 我们假设机器人的状态 
[公式] 为 
[公式] 即位置和速度。根据运动学公式可得:
[公式] 向量化可得:
[公式]   这样便引出了预测模型
[公式] 由式(1)可知,新的最优状态估计是根据上一时刻最优估计预测得到的,并加上已知外部控制量的修正(比如控制油门加速)。
[公式] 由式(2)可知,新的不确定性由上一时刻不确定性预测得到,并加上外部环境的干扰。这时我们对系统的变化有了模糊的估计,更新的状态(均值)和不确定性(协方差)分别如式(1)和(2),预测的过程相当于之前的波形向右平移d个单位的过程。   此时结合传感器数据会如何再来谈谈测量模型,利用传感器我们可以猜到系统当前的状态,但由于传感器存在噪声,传感器读数(均值)和噪声(方差)为 
[公式] 。这里有一点需要注意:传感器读数的单位和比例可能与式(1)中追踪的状态的单位和比例不一样。我们将用矩阵 
[公式] 来为传感器建模,可将预测模型的均值和方差改为
[公式] 。   这时我们已经得到了两个高斯分布,类似于之前机器人小R在当前时刻得到的两个分布,将两个高斯分布融合的过程网上有很多推导,这里不多赘述,直接利用结果。 先计算卡尔曼增益 
[公式] ,如式(3)。
[公式]   然后计算后验概率的分布:
[公式] 式中:
[公式] 表示实际的观测, 
[公式] 表示预测,观测和预测的差异乘上卡尔曼增益 
[公式] ,再加上原来的预测,得到融合后的结果。此过程类似于之前两个波形卷积。
[公式] 得到的新的最优估计可以放到下一时刻不断迭代。   以上就是经典卡尔曼滤波器的五个公式,给出了线性高斯系统的最优无偏估计。我们可以用这些公式对任何线性系统建立精确的模型,对于非线性系统来说,我们使用扩展卡尔曼滤波,区别在于EKF多了一个把预测和测量部分进行线性化的过程。   此时再看这个高赞无公式推导的回答来回顾全局,一切豁然开朗:无公式直白解释卡尔曼滤波


  假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办? 取平均。 再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗? 加权平均。(乘卡尔曼增益 
[公式] 怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处省略若干数学公式),你可以得到一个“最优”的权重。 接下来,重点来了:假设你只有一个传感器,但是你还有一个数学模型(指的是上文中的预测模型)。模型可以帮你算出一个值,但也不是那么准。怎么办? 把模型算出来的值,和传感器测出的值,(就像两个传感器那样),取加权平均。 OK,最后一点说明:你的模型其实只是一个步长的,也就是说,知道x(k),我可以求x(k+1)。问题是x(k)是多少呢?答案:x(k)就是你上一步卡尔曼滤波得到的、所谓加权平均之后的那个、对x在k时刻的最佳估计值。 于是迭代也有了。 这就是卡尔曼滤波。 (无公式)  


利用滤波方法进行传感器融合方面的经典论文推荐:

  • [1] Bloesch M, Omari S, Hutter M, et al. Robust visual inertial odometry using a direct EKF-based approach[C]//2015 IEEE/RSJ international conference on intelligent robots and systems (IROS). IEEE, 2015: 298-304.
  • [2] Qiu X, Zhang H, Fu W, et al. Monocular Visual-Inertial Odometry with an Unbiased Linear System Model and Robust Feature Tracking Front-End[J]. Sensors, 2019, 19(8): 1941.
  • [3] Xiong X, Chen W, Liu Z, et al. DS-VIO: Robust and Efficient Stereo Visual Inertial Odometry based on Dual Stage EKF[J]. arXiv preprint arXiv:1905.00684, 2019.
  • [4] Bloesch M, Burri M, Omari S, et al. Iterated extended Kalman filter based visual-inertial odometry using direct photometric feedback[J]. The International Journal of Robotics Research, 2017, 36(10): 1053-1072.

 


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明SLAM后端优化中卡尔曼滤波的直观通俗解释
喜欢 (0)

您必须 登录 才能发表评论!

加载中……