卡尔曼滤波

卡尔曼滤波的理解以及参数调整

匿名 (未验证) 提交于 2019-12-03 00:39:02
卡尔曼滤波器是一种最优线性状态估计方法(等价于“在最小均方误差准则下的最佳线性滤波器”),所谓状态估计就是通过数学方法寻求与观测数据最佳拟合的状态向量。 在移动机器人导航方面,卡尔曼滤波是最常用的状态估计方法。直观上来讲,卡尔曼滤波器在这里起了数据融合的作用,只需要输入当前的测量值(多个传感器数据)和上一个周期的估计值就能估计当前的状态,这个估计出来的当前状态综合考量了传感器数据(即所谓的观察值、测量值)和上一状态的数据,为当前最优估计,可以认为这个估计出来的值是最可靠的值。由于我们在SLAM中主要用它做位置估计,所以前面所谓的估计值就是估计位置坐标了,而输入的传感器数据包括码盘推算的位置、陀螺仪的角速度等(当然可以有多个陀螺仪和码盘),最后输出的最优估计用来作为机器人的当前位置被导航算法以外的其他程序所调用。 列举一下卡尔曼滤波的优点:采用递归方法解决线性滤波问题,只需要当前的测量值和前一个采样周期的估计值就能够进行状态估计,不需要大量的存储空间,每一步的计算量小,计算步骤清晰,非常适合计算机处理。 首先明确卡尔曼滤波器的前提假设: 信息过程的足够精确的模型,是由白噪声所激发的线性、离散和有限维动态系统(可以是时变的); 每次测量信号都包含着附加的白噪声分量。 满足上述条件就可以使用卡尔曼滤波器。 x k = A x k 1 + B u k 1 + w k 1 x k xk

不敏卡尔曼滤波(UKF)

匿名 (未验证) 提交于 2019-12-03 00:19:01
不敏卡尔曼滤波对状态向量的概率密度函数(PDF)进行近似化,表现为一系列选取好的采样点。这些采样点完全体现了高斯密度的真实均值和协方差。当这些点经过任何非线性系统的传递后,得到的后验均值和协方差。当这些点经过任何非线性系统的传递后,得到的后验均值和协方差都能精确到二阶(即对系统的非线性强度不敏感)。由于不需要对线性系统进行线性化,并可以很容易地应用于非线性系统的状态估计,因此,UKF方法在许多方面都得到了广泛应用,如模型参数估计、人手或头的方位跟踪、飞行器的状态或参数估计、目标的方位跟踪等。 不敏变换不需要对非线性状态和测量模型进行线性化,而是对状态向量的PDF进行近似化。近似化后的PDF仍然是高斯的,但他表现为一系列选取好的采样的。 文章来源: 不敏卡尔曼滤波(UKF)

无损卡尔曼滤波(UKF)

匿名 (未验证) 提交于 2019-12-02 23:57:01
一、UKF 滤波简介 以 UT 变换 为基础,采用 卡尔曼滤波器框架 ,采样形式为 确定性采样 。在减少采样粒子点数的同时保证逼近精度。 二、无损(迹)变换 ( Unscented Transformation ) 来源:博客园 作者: 一抹烟霞 链接:https://www.cnblogs.com/long5683/p/11453090.html

卡尔曼滤波的原理、理解与仿真

匿名 (未验证) 提交于 2019-12-02 23:36:01
转载 : https://zhuanlan.zhihu.com/p/49298236 卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而且由于观测包含系统的噪声和干扰的影响,所以最优估计也可看做是滤波过程。 1 卡尔曼滤波的原理与理解 1.1 预测 假设有一辆小车,其在t时刻的位置为 P t P_t P t (假设其在一维直线上运动,则位置可以用数轴上的点表示),速度为 v t v_t v t 。 因此在t时刻小车的状态可用向量表示为 x t = [ p t , v t ] T x_t=\left[ p_t ,v_t\right]^T x t = [ p t , v t ] T 。 但是我们并没有捕捉到一切信息,可能存在外部因素会对系统进行控制,带来一些与系统自身状态没有相关性的改变。如汽车司机可能会操纵油门,让汽车加速。 假设由于油门的设置或控制命令,我们知道了期望的加速度为 u t u_t u t (加速度理解为外部的控制量),则可由运动学公式从t-1时刻推出其在t时刻的速度与位置如下: 进一步的可以将其写成向量形式: 即: 令 则通过变量代换可以得到状态转移公式: 其中: 矩阵 F t F_t F t 为状态转移矩阵,表示如何从上一状态来推测当前时刻的状态; B t B_t B t 为控制矩阵,表示控制量 u t u_t u t

深度解析卡尔曼滤波在IMU中的使用

泪湿孤枕 提交于 2019-12-01 21:52:13
卡尔曼滤波主要分两个步骤,预测加校正。预测是基于上一时刻的状态对当前状态进行估计,校正是根据当前状态的观测与上一时刻的估计进行综合分析,估计出系统的最优状态值,然后下一时刻接着重复这个过程;卡尔曼不断的进行迭代,它不需要大量的粒子状态输入,只需要过程量,因此它的速度很快,非常适合线性系统的状态估计。 众所周知卡尔曼滤波在处理 IMU 传感器数据融合中作用巨大,但在实际实现起来并非那么容易;本文从 MPU6050 入手,分析卡尔曼滤波的使用。 本篇文章需要你在夜深人静的时候、先去冲一杯咖啡、准备一张纸、一支笔…… 卡尔曼滤波 从来没有坐下来认真的计算卡尔曼滤波的公式由来以及它背后更深层次的原理,为什么在处理加速度以及陀螺仪的数据融合中卡尔曼滤波就那么的有效。但是对于大多数人来说,可能更感兴趣的是如何正确的去使用它,卡尔曼滤波的那五个公式到底怎么使用。 开始之前需要你具备一定的矩阵乘法、矩阵变换等知识,大家都知道矩阵乘法的重要性,不夸张的说,不懂矩阵乘法根本做不了复杂的模型。当然本篇涉及到的矩阵乘法没那么复杂,如果忘记了请翻大学时的课本脑补,或参考以下网站: http://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29 http://www.mathwarehouse.com

浅析卡尔曼滤波算法

泪湿孤枕 提交于 2019-11-30 22:56:29
一个算法并不是能适用于任何场景,在使用线性卡尔曼滤波器前,它有两个假设限定了它的应用场景,即: 系统是线性的 系统和测量噪声是高斯白噪声 什么是高斯白噪声?即噪声满足正态分布,表述如下: 高斯白噪声在时间尺度上是互不相关的,即上一时刻的噪声状态并不能决定下一时刻的噪声状态; 噪声在所有频率上具有相等的功率,即功率谱密度服从均匀分布; 4. 分析过程 4.1 基本方程 先直接扔出卡尔曼滤波的经典5个方程(来自于参考文献): 预测(估计)状态方程 更新方程 以上5个方程以矩阵运算形式代表了线性卡尔曼滤波算法的一般形式(不同文献的数学表达方式略有不同)。第一眼看到这几个方程里面的F、K、H之类的变量以及符号肯定是蒙圈的,即使了解了符号代表的意义,在实际过程中怎么使用可能也不是很清楚。 ### 4.2 方程的解释 【注:此节不会完整的再验算一次推导过程,因为篇幅有限,我只能根据我的理解,解释捋清推导过程的一个基本脉络,并解释参考文献中稍微有点绕的地方】 上述算法的一般方程来自于参考文献3,文中以获取机器人的位置和速度这两个变量为例,推导出了(二维)矩阵形式的一般方程,所以结合案例,总结一下方程中各变量符合所代表的意义。 #### 4.2.1 预测(估计)状态方程 【注:以下表述中“预测”和“估计”表示一个意思】 预测状态方程是依据被测对象的数据模型建立的,如例子中所示

YOLOv3目标检测、卡尔曼滤波、匈牙利匹配算法多目标追踪

早过忘川 提交于 2019-11-28 05:26:17
我先上下结果图吧,效果勉强还行,在这里我只训练了行人,官网的weights是coco数据集训练的,有80类; 1、YOLOV3目标检测 关于yolov3的原理我在这里就不解释了,可谷歌学术自行阅读,说实话yolov3的效果着实不错,但是源码是C的,不依赖其他任何库,看的云里雾里,在这里我用的darknet训练的,利用tensorflow+keras进行测试的; 关于tensorflow+keras版本yolov3,可参照 https://github.com/qqwweee/keras-yolo3 测试 (1)获取训练好的权重 wget https://pjreddie.com/media/files/yolov3.weights (2)转换 Darknet YOLO 模型为 Keras 模型 python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 转换过程如图 (3)运行目标检测测试代码 python yolo.py 此时即可看到目标检测的效果 2、卡尔曼滤波追踪 关于卡尔曼滤波的理论这里不打算讲了,就是那个5个基本的公式,这里直接给出公式: 公式1:X(k|k-1) = FX(k-1 | k-1) + BU(k) + W(k) 公式2:P(k|k-1) = FP(k-1|k-1)F’ + Q(k) 公式3:X

slam技术面试问题(二)

匆匆过客 提交于 2019-11-26 20:53:33
14.特征匹配(稀疏)和稠密匹配区别 1)稀疏匹配可以快速地求解相机的位姿; 2)稠密匹配可以建立完整地图,但是速度慢、效率低,并且像素梯度不明显的地方对运动估计没有什么贡献。 15.EKF与BA的区别 1)EKF只估计当前时刻的机器人位姿,无法纠正历史的机器人位姿;然而BA更加倾向于使用所有的历史数据,因此它利用了更多的信息; 2)EKF在工作点附近用一阶泰勒展开近似整个函数,但是在工作点较远处不一定成立;然而非线性优化每迭代一次,状态发生改变后,重新对新的估计点做泰勒展开,因此在状态变化较大时也能适用; 3)EKF的可扩展性和鲁棒性更强。(多传感器融合) 16.单目、双目、深度相机的对比 1)单目相机具有尺度不确定性; 2)基线距离越大,测量距离越远,可以用于室内和室外; 3)测量范围窄,噪声大,易受日光干扰,主要用于室内。 17.常用的边缘检测算子和优缺点 边缘检测一般分为三步,分别是滤波、增强、检测。基本原理都是用高斯滤波器进行去噪,之后在用卷积内核寻找像素梯度。常用有三种算子:canny算子,sobel算子,laplacian算子。 1)sobel算子是一阶导数算子,对噪声具有平滑作用,抗噪声能力强,计算量较大,但定位精度不高,得到的边缘比较粗,适用于精度要求不高的场合。 2)canny算子抗噪能力强,它使用两种不同的阈值分别检测强边缘和弱边缘