SLAM(七)-卡尔曼滤波

SLAM(七)-卡尔曼滤波

  • 一、卡尔曼滤波(KF)
  • 二、扩展卡尔曼滤波(EKF)
  • 三、误差状态卡尔曼滤波(ESKF)

参考《概率机器人》、《Principles of GNSS,lnertial and Multisensor lntegrated Navigation Systems
(Second Edition)》

一、卡尔曼滤波(KF)

卡尔曼滤波(KF,kalman filter)是一种线性滤波方法。
状态方程:噪声为Rt
在这里插入图片描述
观测方程:
在这里插入图片描述
预测更新:
在这里插入图片描述

1、如果 P/R小,相应的卡尔曼增益会很小并且状态估计收敛到真值的速度会更慢 对应到
系统的变化,状态估计过程会变慢 相反,如果 P/R 太大,卡尔曼增益会非常
大,这将使滤波更侧重于最近的观测值,从而会因为观测噪声对状态估计产生了
太大的影响而导致滤波不稳,或产生估计偏差。有时,通过系统模型状态估计与
观测噪声会形成正反馈,并最终导致滤波器的迅速发散,远离真值。这里假设观测是比较准的,预测步方差P过大/观测噪声过小,类似于比例因子K比较大,超调量会比较大,容易振荡;预测步方差P过小/观测噪声过大,K较小,收敛速度比较慢

在这里插入图片描述

二、扩展卡尔曼滤波(EKF)

《概率机器人》P40
扩展卡尔曼滤波(EKF,extend kalman filter)是一种非线性滤波方法。先将非线性状态转移和观测方程使用一阶泰勒展开线性化,然后使用卡尔曼方法预测和更新即可。
非线性方程:
在这里插入图片描述
线性化后:
在这里插入图片描述

预测:
在这里插入图片描述

三、误差状态卡尔曼滤波(ESKF)

误差传播
1)惯性传感器误差,即陀 螺和加速度计的噪声、零偏、比例因子误差和交轴耦合等各类误差。
2)导航初始化误差,包括位置、速度和姿态等参数的初值误差。
3)重力误差,主要是重力模型误差和位置误差带来的重力计算误差等
4)算法和计算误差
基于扰动方法推导误差状态方程和观测方程
状态方程推导
1)首先将有误差的变量建模为误差状态δx=x_true - x,x_true为真值,x为估计值,姿态误差需要单独定义,在计算或得到变量 x 的过程中是否引入含有误差的变量,或者误差幅度是否可以小到忽略不计。
2)求解误差状态δx导数,得到连续状态的状态转移函数,其导数与x_true 和x导数差相等,根据x导数解析解,x_true误差变量加上扰动δx,x导数不变,再将两者相减得到误差状态转移方程;姿态根据q_true导数解析解和扰动方差2种不同的求导方式,然后取等号进行求解
3)离散化:δx导数=(δx_k-δx_k-1)/δt,根据中值法、欧拉法不同方法离散化,如VINS推导;或采用如下图牛小骥团队《组合导航》课程方式离散化。注意一般给定的是连续状态的噪声,需要转为离散化误差状态噪声再套卡尔曼公式,噪声为一段时间的累积

在这里插入图片描述
观测方程:
4)观测误差更新方程不需要求导,将观测减去估计值构建,需要把观测噪声转为误差观测状态噪声,得到误差状态协方差更新方程与状态协方差不同,噪声是某个时刻的
在这里插入图片描述
5)状态反馈:使用误差状态δx_k更新当前状态

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

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

相关文章

Electron 应用太重?试试 PakePlus 轻装上阵

Electron 作为将 Web 技术带入桌面应用领域的先驱框架,让无数开发者能够使用熟悉的 HTML、CSS 和 JavaScript 构建跨平台应用。然而,随着应用规模的扩大,Electron 应用的性能问题逐渐显现——内存占用高、启动速度慢、安装包体积庞大&#xf…

Vue.js组件安全工程化演进:从防御体系构建到安全性能融合

——百万级流量场景下的安全组件架构与源码级解决方案 文章目录 总起:安全工程化的组件革命 分论: 一、现存组件架构的七宗罪与安全改造路径   1.1 组件生态安全赤字现状   1.2 架构级安全缺陷深度剖析   1.3 性能与安全的死亡螺旋 二、百万级…

MCP+cursor使用嘴操作数据库(不用编写SQL语句实现CURD)

文章目录 1.如何进行相关配置2.如何添加MCP server3.如何进行相关的操作3.0数据的查询3.1数据的插入3.2数据的修改3.3多表连接查询 1.如何进行相关配置 这个跟昨天的高德地图的配置非常的相似,因此这个地方我就不进行过多的这个说明了,就是新加一个全聚…

效率工具- git rebase 全解

一、前言 对于git rebase 一直不太了解,这几天想着提高下git提交质量,就发现了这个好用的指令,顺便记录一下,好加深记忆 贴出官方文档以便大家进一步学习 Git 二、rebase是作用 rebase 官方解释为变基,可以理解为移动你的分支根节点,维护一个更好的提交记录。rebase把你当前…

小爱音箱接入大模型DeepSeek及TTS

简介 相信看过钢铁侠的朋友们,都梦想拥有一个像贾维斯这样全能的人工智能管家。而现在随着AI的发展,这个愿景将随我们越来越近。现阶段,我们可以将小爱音箱接入DeepSeek,将其从“人工智障”进化成上知天文,下懂地理的半…

软件架构评估利器:质量效用树全解析

质量效用树是软件架构评估中的一种重要工具,它有助于系统地分析和评估软件架构在满足各种质量属性方面的表现。以下是关于质量效用树的详细介绍: 一、定义与作用 质量效用树是一种以树形结构来表示软件质量属性及其相关效用的模型。它将软件的质量目标…

[IEEE TIP 2024](cv即插即用模块分享)IdeNet信息增强模块 性能提升必备!

论文地址:https://ieeexplore.ieee.org/document/10661228 代码地址:https://github.com/whyandbecause/IdeNet 什么是伪装目标检测(COD)? 伪装目标检测(Camouflaged Object Detection, COD)是…

biblatex 的 Biber 警告​​:tex文件运行无法生成参考文献和目录

原因​​:使用了 biblatex 管理参考文献,但未运行 biber 生成参考文献数据。 ​​解决​​:更新 LaTeX Workshop 配置 修改你的 settings.json,添加 biber 工具并更新编译流程: {"latex-workshop.latex.tools&…

thingsboard3.9.1编译问题处理

问题1: [ERROR] Failed to execute goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke (default) on project http: Execution default of goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke failed: Plugin org.thingsboard:gradle-maven-plugin:1.…

深入浅出Redis 缓存使用问题 | 长文分享

目录 数据一致性 先更新缓存,后更新数据库【一般不考虑】 先更新数据库,再更新缓存【一般不考虑】 先删除缓存,后更新数据库 先更新数据库,后删除缓存【推荐】 怎么选择这些方案?采用哪种合适? 缓存…

Express中间件(Middleware)详解:从零开始掌握(2)

1. 请求耗时中间件的增强版 问题:原版只能记录到控制台,如何记录到文件? 改进点: 使用process.hrtime()是什么?获取更高精度的时间支持将日志写入文件记录更多信息(IP地址、状态码)工厂函数模式使中间件可配置 con…

如何设置Ubuntu服务器版防火墙

在Ubuntu服务器中,默认使用 ufw(Uncomplicated Firewall)作为防火墙管理工具。它是对iptables的简化封装,适合快速配置防火墙规则。以下是设置防火墙的详细步骤: 1. 安装与启用 ufw 安装(通常已预装&…

畅游Diffusion数字人(23):字节最新表情+动作模仿视频生成DreamActor-M1

畅游Diffusion数字人(0):专栏文章导航 前言:之前有很多动作模仿或者表情模仿的工作,但是如果要在实际使用中进行电影级的复刻工作,仅仅表情或动作模仿还不够,需要表情和动作一起模仿。最近字节跳动提出了一个表情+动作模仿视频生成DreamActor-M1。 目录 贡献概述 核心动…

模型开发中的微调是干什么

在模型开发中,微调(Fine-tuning) 是指利用预训练模型(Pre-trained Model)的参数作为初始值,在特定任务或数据集上进一步调整模型参数的过程。它是迁移学习(Transfer Learning)的核心…

vue3中,element-plus中el-select隐藏下拉箭头

需求&#xff1a;el-select需要隐藏下拉箭头 <el-select v-model"apply.dataType" readonly><el-option :key"1" label"样品检相同项目" :value"1" /><el-option :key"2" label"样品检不同项目" :…

英语学习4.9

cordial 形容词&#xff1a; 热情友好的&#xff0c;诚恳的 表示一个人态度温和、亲切&#xff0c;给人温暖和善的感觉。 令人愉快的&#xff0c;和睦的 形容关系融洽、氛围和谐。 例句​​&#xff1a; The two leaders had a ​​cordial​​ but formal discussion. &am…

类似东郊到家的上门按摩预约服务系统小程序APP源码全开源

&#x1f525; 为什么上门按摩正在席卷全国&#xff1f; 万亿蓝海市场爆发 2024年中国按摩市场规模突破8000亿&#xff0c;上门服务增速达65% 90后成消费主力&#xff0c;**72%**白领每月至少使用1次上门按摩&#xff08;数据来源&#xff1a;艾媒咨询&#xff09; 传统痛点…

驱动学习专栏--写在前面

此专栏基于正点原子的文档【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 开发板为luckfox的rv1106开发板&#xff0c;之前参加过一个CM1相机的开源项目&#xff0c;与其吃灰不如作为一个学习的工具来发挥余热 所以文档中的一些东西需要对应的在rv1106平台上做修改&#xff…

第二篇:Python函数与模块化编程深度教程

第一章:函数定义与调用 1.1 函数基础架构 1.1.1 函数定义规范 函数定义采用def关键字,遵循PEP8命名规范(小写字母+下划线) def calculate_circle_area(radius):"""计算圆的面积""" # 文档字符串PI = 3.14159return PI * radius ​**​ …

3.1.3.3 Spring Boot使用Filter组件

在Spring Boot中使用Filter组件&#xff0c;可以通过创建一个类实现Filter接口&#xff0c;并使用Component注解将其标记为Spring组件。通过Order注解可以指定过滤器的执行顺序&#xff0c;数字越小优先级越高。在LoggingFilter类中&#xff0c;重写init、doFilter和destroy方法…