卡尔曼

SLAM中的EKF,UKF,PF原理简介

拥有回忆 提交于 2020-02-27 05:17:01
这是我在知乎上问题写的答案,修改了一下排版,转到博客里。 原问题: 能否简单并且易懂地介绍一下多个基于滤波方法的SLAM算法原理? 目前SLAM后端都开始用优化的方法来做,题主想要了解一下之前基于滤波的方法,希望有大神能够总结一下各个原理(EKF,UKF,PF,FastSLAM),感激不尽。 作者:半闲居士 链接:https://www.zhihu.com/question/46916554/answer/103411007 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   我怎么会写得那么长……如果您有兴趣可以和我一块把公式过一遍。   要讲清这个问题,得从状态估计理论来说。先摆上一句名言: 状态估计乃传感器之本质。(To understand the need for state estimation is to understand the nature of sensors.)   任何传感器,激光也好,视觉也好,整个SLAM系统也好,要解决的问题只有一个: 如何通过数据来估计自身状态。 每种传感器的测量模型不一样,它们的精度也不一样。换句话说,状态估计问题,也就是“ 如何最好地使用传感器数据 ”。可以说,SLAM是状态估计的一个特例。 1. 离散时间系统的状态估计   记机器人在各时刻的状态为 ,其中 是离散时间下标。在SLAM中

卡尔曼滤波器中的Q,R

心已入冬 提交于 2020-02-01 19:07:07
卓老师,我想问一个关于卡尔曼滤波的问题,希望您能解答一下。之前我用的互补滤波效果也还好,但在用卡尔曼滤波的时候出现了一些问题:就是如何整定卡尔曼滤波的Q、R这两个参数,这两个参数分别是角度数据置信度与角速度数据置信度。我看别人用的这两个参数都非常小,比如别人Q都是零点零零几,而我用的时候发现Q零点几跟随效果很差,我把Q调到1跟随效果才差不多。但是Q和R不都是协方差吗,它们可以取到1及以上的值吗?即Q和R有没有取值范围,以及这两个参数整定方法是什么?还是我理解有问题,希望卓大或者车友可以解答一下。 回复:在智能车竞赛中,Kalman滤波算法常常被用来计算直立车模倾角和转动角速度。算法利用陀螺仪给出的转速度量和加速度传感器给出的倾角观测量完成计算。除了Kalman滤波器算法之外,还可以使用互补滤波器进行帮助计算。 如果不考虑系统状态的时变性和系统噪声的时变性,上述两种方法本质上是相同的。 下图显示了对于被测物体位置使用Kalman滤波算法来估计物体实际位置的示意图。 通常情况下所使用的Kalman滤波器是离散时间系统形式的。我们真正想得到的物理量表示成系统状态中的某些分量。对于系统状态的估计(滤波结果)所使用的信息来源于两个方面,一个是对系统状态演变模型的了解,包括系统转移矩阵和输入控制矩阵,输入孔质量等,另一方面来自于对系统状态的观测量。 但这两方面的信息都会有某种不确定性

自主移动机器人同时定位与地图创建(SLAM)方法概述

孤街醉人 提交于 2020-01-23 16:29:24
1.引言: 机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点。移动机器人的定位和地图创建是自主移动机器人领域的热点研究问题。对于已知环境中的机器人自主定位和已知机器人位置的地图创建已经有了一些实用的解决方法。然而在很多环境中机器人不能利用全局定位系统进行定位,而且事先获取机器人工作环境的地图很困难,甚至是不可能的。这时机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(SLAM) 问题,最先是由SmithSelf 和Cheeseman在1988年提出来的,被认为是实现真正全自主移动机器人的关键。 SLAM问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和传感器数据进行自身定位,同时建造增量式地图。 在SLAM中,机器人利用自身携带的传感器识别未知环境中的特征标志,然后根据机器人与特征标志之间的相对位置和里程计的读数估计机器人和特征标志的全局坐标。这种在线的定位与地图创建需要保持机器人与特征标志之间的详细信息。近几年来,SLAM的研究取得了很大的进展,并已应用于各种不同的环境,如:室内环境、水下、室外环境。 2.SLAM的关键性问题 2.1地图的表示方式 目前各国研究者已经提出了多种表示法

视听融合综述(二)Audiovisual Fusion: Challenges and New Approaches

蹲街弑〆低调 提交于 2019-12-11 16:24:27
分享一篇视听融合研究综述,2015年发表在Proceedings of the IEEE上。该期刊创刊于1913年,是IEEE最古老的杂志之一。主要刊登一些综述和科学前沿的调查研究(review, survey, and tutorial)不刊载具体的研究成果。本文回顾了至2015年在视听融合方面的研究成果,并讨论了该领域的主要挑战,重点是两种模态的不同步以及训练和测试的问题。 题目:Audiovisual Fusion: Challenges and New Approaches Katsaggelos A K, Bahaadini S, Molina R. Audiovisual fusion: Challenges and new approaches[J]. Proceedings of the IEEE, 2015, 103(9): 1635-1653. 发表时间:2015 作者单位:Dept. of Electr. Eng. & Comput. Sci., Northwestern Univ., Evanston, IL, USA 权威期刊:Proceedings of the IEEE 原文链接: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7194741 本文内容是该综述的3、4两节

卡尔曼滤波器:用R语言中的KFAS建模时间序列

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。咨询链接:http://y0.cn/teradat 博文链接: https://blog.csdn.net/qq_19600291/article/details/90519319 于时间序列预测,ARIMA等传统模型通常是一种流行的选择。虽然这些模型可以证明具有高度的准确性,但它们有一个主要缺点 - 它们通常不会解释“冲击”或时间序列的突然变化。让我们看看我们如何使用称为 卡尔曼滤波器 的模型来潜在地缓解这个问题。 我们以货币市场为例。货币对可能会有整体上升趋势,然后在抛售期间大幅下跌。传统的时间序列模型不一定能够立即解决这个问题,并且在考虑到趋势的突然变化之前可能需要几个时期。 因此,我们希望使用一个确实能够解释这种冲击的时间序列模型。让我们来看一个称为 卡尔曼滤波器 的便捷模型。 卡尔曼滤波器是一种状态空间模型,可以更快地调整冲击到时间序列。让我们看一下如何使用一个例子。 2015年1月,当瑞士国家银行决定从瑞士法郎取消瑞士法郎时,货币市场遭受了历史上最大的冲击之一。结果,瑞士法郎飙升,而其他主要货币则暴跌。 让我们看看卡尔曼滤波器如何调整这种冲击。 首先,让我们下载2015年1月的USD / CHF数据: 我们正在将货币数据转换为数据框,然后转换为日志格式以根据回报构建我们的时间序列。 现在

算法(2)——卡尔曼滤波:1.线性卡尔曼滤波

戏子无情 提交于 2019-11-30 12:03:59
%% ========== Kalman滤波用在一维温度数据测量系统中 ========== %% function Linear_Kalman %% ========== 初始数据 ========== %% N = 120; % 采样点的个数 CON = 25; % 室内温度的理论值 %% ========== 对状态和测量初始化 ========== %% Xexpect = CON * ones(1,N); % 设置期望的温度 X = zeros(1,N); % 房间各时刻真实温度值 Xkf = zeros(1,N); % Kalman滤波处理的状态,也叫估计值 Z = zeros(1,N); % 温度测量值 P = zeros(1,N); % 预设协方差空间 %% ========== 赋初值 ========== %% X(1) = 25.1; % 假设房间温度初始值为25.1摄氏度 P(1) = 0.01; % 初始值的协方差 Z(1) = 24.9; % 房间初始测量值 Xkf(1) = Z(1); % 将初始测量值作为滤波器的初始估计状态 %% ========== 噪声 ========== %% Q = 0.01; % 输入白噪声的方差阵 R = 0.25; % 观测白噪声的方差阵 W = sqrt(Q) * randn(1,N); %

卡尔曼滤波器及其扩展的个人学习笔记~

为君一笑 提交于 2019-11-29 19:48:14
Kalman Filter 本质:线性滤波算法(只适用于线性且满足高斯分布的系统!!!) 核心思想: 根据 上一时刻(状态) 的“ 预测量 ”和“ 预测误差 ”,以及 当前时刻(状态) 的“ 观测量 (测量量)”和“ 测量误差 ”,来对当前的“真实值”进行最优估计,计算得到 当前的“最优量” 。 突出观点:计算考虑“误差”,且分为“预测误差”和“测量误差”,同时误差独立存在,始终不受测量数据的影响。 举个例子: 在航海中,船长通常以 前一时刻的船位为基准 ,根据航向、船速、和海流等多种因素 推算下一个船位(预测量) ,但是并不能轻易认为当前船位就一定在推算的船位上,还要选择适当的方法,通过仪器的到 另一个推算的船位(测量量) 。观测和推算的这两个船位一般不重合,需要通过分析和判断 选择一个可靠的船位 ,作为当前的“真实”船位。 描述数学化: 公式化: 简单场景实践: 实践: https://github.com/GengMingjin2/Learning_Algorithm/tree/master/EKF/KF Extend Kalman Filter: 本质:KF的非线性扩展,线性滤波算法(非线性的高斯分布系统!!!) (一个很优秀的course:https://simondlevy.academic.wlu.edu/kalman-tutorial/)

卡尔曼滤波器

♀尐吖头ヾ 提交于 2019-11-28 10:46:38
假设有个小车在道路上向右侧匀速运动,我们在左侧安装了一个测量小车距离和速度传感器,传感器每1秒测一次小车的位置s和速度v,如下图所示。 我们用向量xt来表示当前小车的状态,该向量也是最终的输出结果,被称作状态向量(state vector): 由于测量误差的存在,传感器无法直接获取小车位置的真值,只能获取在真值附近的一个近似值,可以假设测量值在真值附近服从高斯分布。 如下图所示,测量值分布在红色区域的左侧或右侧,真值则在红色区域的波峰处。 由于是第一次测量,没有小车的历史信息,我们认为小车在1秒时的状态x与测量值z相等,表示如下: 公式中的1表示第1秒。 预测是卡尔曼滤波器中很重要的一步,这一步相当于使用历史信息对未来的位置进行推测。 根据第1秒小车的位置和速度,我们可以推测第2秒时,小车所在的位置应该如下图所示。 会发现,图中红色区域的范围变大了,这是因为预测时加入了速度估计的噪声,是一个放大不确定性的过程。 根据小车第一秒的状态进行预测,得到预测的状态xpre: 其中,Pre是Prediction的简称;时间间隔为1秒,所以预测位置为距离+速度*1;由于小车做的是匀速运动,因此速度保持不变。 在第2秒时,传感器对小车的位置做了一次观测,我们认为小车在第2秒时观测值为z2,用向量表示第2秒时的观测结果为: 很显然,第二次观测的结果也是存在误差的