卡尔曼滤波原理和使用

news2024/9/17 7:33:16
随着传感技术,机器人,自动驾驶等不断发展,对控制系统的精度以及稳定性要求越来越高。卡尔曼滤波作为一种状态最优估计方法,应用也越来越普遍、
对于Kalman Filter的理解,用过都知道“黄金五条”公式,且通过“预测”和“更新”两个过程对系统进行最优估计。

简单来说,卡尔曼滤波就是将观测值(指从系统中获得的实际测量值,如:传感器测量值,GPS定位值等)和控制量(系统中的外部输入,如:控制器输出的控制指令,系统的的运动状态等)
进行融合。得到对系统状态(描述某一时刻的状态量或状态向量,它由系统内部的各种物理量,状态变量组成。如:对于飞行器来说,系统状态可以包括飞行器的位置,速度,姿态,加速度等信息)的估计值。来进行预测。

卡尔曼滤波:用来估计系统状态的算法,它通过测量结果和预测结果进行加权平均,来得到更准确的状态估计值。
包括两个方面:状态预测和状态更新。
状态预测:第一步预测系统的状态。这个预测是基于系统的上一个状态和控制输入(如果有的话)计算出来的。预测结果包含了系统的状态和状态估计的不确定性(协方差矩阵)。
状态更新:第二步是将测量结果与预测结果进行加权平均,来得到更准确的状态估计值。加权平均的权重是由预测结果的不确定性和测量结果的不确定性共同决定的。如果预测结果的不确定性很小,那么
预测结果占主导地位;如果测量结果的不确定性很小,那么测量结果会占主导地位。

提出背景:
火箭在发生过程中需要时刻预测自己的状态(位置,速度),我们可以用一些传感器获得这两个量,但由于存在电离层和大气层的干扰,传感器的测量值有时误差会很大,我们需要一种方法,预测一个新的更加准确的,且不完全依赖传感器返回值的状态信息。
事实上,如果传感器的返回值非常离谱,那我们完全有理由不相信此时的数据,因为火箭需要符合某个运动方程,即使存在一些干扰,火箭的状态也应该是在某个合理的范围内。
思路:把传感器观测值和理论预测值做加权平均。既不完全相信传感器,也不完全相信理论模型。

假设我们只需要观测一个值,即设计一个一维Kalman Filter。
由于理论模型和观测都存在相应干扰,假设二值均服从正态分布(生活中几乎到处都是正态分布)

理论模型值的概率分布和观测值的概率分布只能通过大量数据采样得到,这要求我们在应用上述方法进行滤波前,应该通过大量观察对理论模型和观测模型的分布有一个准确的了解。实际工程我们一般假设传感器具有某个确定分布的,这个分布可以对传感器进行一段时间的观测得到(如 slam中经常会让系统静止两小时以计算传感器的分布)。而系统方差是会随着我们每一次进行卡尔曼融合而改变的(因为状态矩阵a的影响),所以我们需要持续的计算系统方差---迭代。

我们能做的就是系统运行开始后计算每一次的理论值方差,根据这个方差和传感器方差计算出融合权重,每次都要重新计算--迭代。

每进行一次观测,就需要对两个分布的方差重新计算(一般传感器的方差不重新计算,设为定值),迭代下去。
因为是迭代的,考虑第k个时刻,当前的最优估计值应该由根据之前时刻状态由运动模型计算出来的理论值,和tk时刻的传感器测量值,融合计算出tk时刻的卡尔曼预测值。

注意:状态更新每次都需要上一时刻的真实状态作为输入,而我们无法获得真实的输入,只能拿上一时刻有卡尔曼理论预测出来的作为输入计算理论值。

状态转移矩阵(系统模型矩阵):表示系统在一个离散时间步长内从一个状态转移到下一个状态时的线性关系,是一个方阵。描述了系统的动态特性,它将当前时刻的状态向量与下一个时刻的状态向量之间的关系进行描述。在卡尔曼滤波中,状态转移矩阵F是通过系统的物理模型或者观测到的数据来估计或确定的。它可以包括系统的动态方程,控制输入,噪声等因素。

控制输入矩阵:是在系统状态转移过程中考虑外部控制输入对系统状态变化的影响而引入放入一个矩阵,表示了系统状态变化对外部控制输入的响应关系。作用:增强卡尔曼滤波算法对外部控制的建模能力,提高状态估计的准确性。通过调整控制输入矩阵,可以对系统的控制策略进行优化,以达到更好的状态估计效果。

状态协方差矩阵:是卡尔曼滤波算法中用于描述对系统状态估计的不确定的矩阵。它表示状态向量各个状态变量之间以及同一个状态变量在不同时刻之间的协方差关系。
例:假设一个简单系统,其状态向量包含两个状态变量:位置和速度,用x表示位置,v表示速度,则状态向量为X=[x;v];
状态协方差矩阵是一个与状态向量维度一致的对称矩阵,它表示了位置和速度之间以及同一个状态变量在不同时刻之间的协方差关系,假设状态协方差矩阵为P,则P的元素可以表示为:
P = [Pxx Pxv;
Pvx Pvv] 其中,Pxx表示位置x的方差,Pvv表示速度v的方差,Pxv和Pvx表示位置x和速度v之间的协方差。
例:我们考虑一个移动的物体,通过传感器测量物体的位置和速度。初始时刻,我们对物体的位置和速度没有任何信息,因此可以将状态协方差矩阵P初始化为一个较大的值,表示对状态估计不确定较高。
随着时间的推移,我们通过状态转移方程和测量方程,不断更新状态估计和状态协方差矩阵。例:在一个时间步骤中,根据物体的运动模型和先前的状态估计,可以预测物体下一时刻的位置和速度,并更新状态协方差矩阵。
在更新状态协方差矩阵时,如果物体在该时间被传感器测量到了位置和速度的值,我们可以使用测量结果来修正状态协方差矩阵。通过卡尔曼增益的计算。。。。

一 .入门
1.引入
2.适用系统:线性高斯系统
线性:y=kx+b  z=ax+by  w=u^2
满足(叠加性和其次性)
1.叠加性 y=ax1+bx2;
2.其次性 kx-->ky

高斯:噪声满足正态分布

3.宏观意义:滤波即加权
理想状态:信号*1+噪声*0;
                   低频 1  高频0    低通滤波
                   估计() 观察()  卡尔曼滤波
                        修正


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch实战13:基于pytorch实现YOLOv1(长长文)

基于pytorch实现YOLOv1(长长文) 前言 ​ 本篇文章的目的是记录自己实现yolo v1的过程,在此过程中,参考了许多开源的代码和博客,赞美大佬们。 参考文献和代码 YOLO v1代码参考:(读书人的事情&…

华为OD机试真题 Python 实现【猜字谜】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述补充说明:四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明一、题目描述 小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如nesw,玩家需要猜出谈底库中正确的单词。猜中的要求如 对于某个谜面和…

武汉抖音seo,抖音关键词排名

抖音seo怎么做 抖音作为一款热门的社交娱乐应用,其SEO关键词排名对于提升内容曝光和用户流量非常重要。 1. 关键词研究:在进行SEO关键词排名时,首先需要进行关键词研究,了解用户在抖音上搜索的热门关键词。可以通过使用相关的关…

如何使用ArcGIS自定义图框样式

GIS制图过后,一般都会涉及到出图,大家肯定都希望自己的出图成果越美观越好,除了图本身之外,还可以从周边的一些修饰入手,比如图框,那么今天就给大家讲解一下如何自定义ArcGIS图框风格,希望能对大…

Docker-Dockerfile-DockerCompose的那些事

文章目录 一、Docker背景1.1 环境不一致1.2 隔离性1.3 弹性伸缩1.4 学习成本 二、Docker介绍2.1 Docker的由来2.2 Docker的思想 三、Docker的安装3.1 下载Docker依赖的环境3.2 指定Docker镜像源3.3 安装Docker3.4 Docker服务启停3.5 Docker容器运行解析3.6 Docker运行流程解析3…

暑期学JavaScript【第五天】

BOM Browser Object Model, 浏览器对象模型 DOM是BOM的一部分 1.navigator 用于判断当前的用户端。 用navigator.userAgent获取 2. location location.href www.baidu.com, 赋值后,执行直接跳转到百度location.search; 获取地址中?后面部…

maven查看jar的pom引入来源

从idea中点击 Maven Projects,后点击Show Dependencies,如图所示 得到依赖关系图,如下 在页面进行 Ctrl F 搜索需要的 Jar 名称 例:查找 spring-beans 双击框定的地方,就能进入到对应的pom文件 查找依赖关系 1、…

第三方库介绍——tslib库

文章目录 tslib 简介tslib 框架分析tslib 的框架 交叉编译、测试 tslibtslib应用程序 tslib 简介 tslib 是一个触摸屏的开源库,可以使用它来访问触摸屏设备,可以给输入设备添加各种“ filter ”( 过滤器,就是各种处理) 编译 tslib 后&#…

C语言学习准备-编辑器选择

今天继续给大家更新C语言经典案例 今天的案例会比昨天稍微有一些难度,但是同时还是非常经典的案例 本来是想给大家继续更新C语言经典案例,但是有朋友反应C语言编辑器的选择,刚好我自己也是想更换一下C语言的编辑器,跟大家分享一下…

TX Text Control 31.SP3 for Windows Forms Crack

Windows 窗体应用程序的文档处理 将文档编辑、创建和 PDF 生成添加到 Windows 窗体应用程序中。 视窗用户界面 功能齐全的文档编辑器 TX 文本控件是一种完全可编程的丰富编辑控件,可在专为 Visual Studio 设计的可重用组件中为开发人员提供广泛的文字处理功能。它…

力扣 77. 组合

题目来源:https://leetcode.cn/problems/combinations/ C题解(来源): 代码随想录 回溯三部曲:将回溯问题看成一棵N叉树,n为广度,k为深度。 递归函数的返回值以及参数:需提前定义两个…

cookie 和 httpSession

目录 1.认识Cookie对象与HttpSession 1.1概念 1.2会话管理 2.cookie的使用 2.1cookie使用机制 2.2cookie不同属性的含义 2.2修改或者删除Cookie 2.3 Cookie对象的特点 2.4 Cookie对象的创建 2.5 Cookie中数据的获取 2.6 Cookie不支持中文的解决方案 2.7持久化Cooki…

代码随想录算法训练营第五天 | 哈希表系列1(哈希表理论基础--有效的字母异位词--快乐数)

哈希表系列1 哈希表理论基础242 有效的字母异位词读题小记代码随想录的代码力扣的示例代码 基于242的拓展题目--383赎金信我的代码力扣的示例代码代码随想录的代码 49 字母异位词分组力扣中录友的代码我的代码力扣的示例代码 438 找到字符串中所有字母异位词我的代码力扣录友的…

四、交换网络实验2——创建VLAN及端口配置

更多网络基础内容可见: 网络基础学习目录及各章节指引 4.6.2 创建VLAN及端口配置 实验目的 学习VLAN的创建删除 实验工具 Cisco Packet Tracer 实验环境 安装模拟器的Windows系统 实验步骤 第一步,vlan的创建

【实战】 六、用户体验优化 - 加载中和错误状态处理(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(八)

文章目录 一、项目起航:项目初始化与配置二、React 与 Hook 应用:实现项目列表三、TS 应用:JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理1.给页面添加 …

web接口开发与测试——你了解多少

目录 前言 Django快速开发之投票系统 编写接口文档 系统接口测试 总结: 前言 最近一直在学习和整理web开发与接口测试的相关资料。接口测试本身毫无任何难度,甚至有很多工具和类库来帮助我们进行接口测试。大多测试人员很难深入了解web接口测试的原…

自然语言生成:解决低频Tokens退化整个Tokens模型问题

Rare Tokens Degenerate All Tokens:Improving Neural Text Generation via Adaptive Gradient Gating for Rare Token Embeddings 摘要 最近的研究发现,大规模神经语言模型学到的Token embeddings(令牌嵌入)具有退化的各向异性和狭锥形状。…

MobileNet

MobileNet 文章目录 MobileNet单词重要不重要 摘要MobileNetV1Motivation深度可分离卷积逐通道卷积(Depthwise Convolution)逐点卷积(Pointwise Convolution)参数对比计算量对比 V2Inverted ResidualsLinear BottlnecksModel Arch…

使用docker进行upload-labs靶场的安装搭建

由于我是在kali上搭建,默认没有docker服务,这里就从按照docker开始讲解 一、docker按装 1、Linux内核版本查看 #如果你是kali可直接从第四步开始 #安装docker要求内核版本kerner>3.10 #为此,先检查当前Linux系统的内核版本 uname -a2…

分析Spring Boot项目启动慢原因之 《一》打印bean耗时

分析Spring Boot项目启动原因之 一 打印bean耗时 由于项目比较久远,积累的代码犹如屎山,然后项目启动也特别慢,然后产生想要优化一下启动速度,故写了一个Bean启动时的耗时分析:package com.tekrally.assetManagement.u…