组合导航系列文章(十二):滤波器基本原理

2023-05-16

我觉得不错的地方

3. 滤波器估计原理

组合导航中,先验是imu解算的值,观测是gps等传感器给出的值,融合的目的是找到概率最大的那个值。上面介绍的三种方法都是对先验和观测的融合,由于极大似然要求先验为平均分布,而组合导航中,先验和观测都假设为高斯,导致只能用最大后验估计和贝叶斯估计,又由于贝叶斯估计要求观测的全概率(即上面贝叶斯公式里的P(X)),带来了很大的复杂性,因此往往都是使用最大后验估计。Kalman就是最大后验的一种典型实现形式,当然,在线性高斯情况下它和贝叶斯估计是等价的,使用贝叶斯方法同样能推导出kalman,只是在非线性情况下二者不再等价。

 

这篇文章的作者也是深蓝学院《多传感器融合定位》这个课的老师

摘自:https://zhuanlan.zhihu.com/p/150367249

组合导航系列文章(十二):滤波器基本原理

任乾

任乾

保持谦虚的态度,世界是一面镜子

《组合导航系列文章》是《从零开始做自动驾驶定位》系列的第二阶段,从本阶段开始,文章在《泡泡机器人》公众号上首发,知乎用来备份和以后可能出现的必要更正。

泡泡机器人文章链接:组合导航系列文章(十二):滤波器基本原理

 

以下是原文:

1. 概述

滤波器是组合导航的核心,是把惯性导航的解算结果和其他传感器输出的观测结果连接在一起的纽带,只有借助它,才能使二者优势互补,得到一个精确、稳定的导航系统。组合导航中使用的滤波器有很多,常见的有卡尔曼滤波(KF)、扩展卡尔曼滤波(EKF)、迭代扩展卡尔曼滤波(IEKF)、无迹卡尔曼滤波(UKF)、粒子滤波(PF),本篇文章会一一介绍他们的原理,只是在这之前,我们需要回忆一下以前学过的一些参数估计的基础知识。

2. 参数估计思想

理解参数估计思想,重点要区分的是三个方法:极大似然估计、最大后验估计、贝叶斯估计。

 

4. 滤波器改进

以上所有的推导都是在线性高斯假设下进行的,当传递函数为非线性时,这个更新过程便无法进行。这里给出《概率机器人》里面的一张图,对比说明线性和非线性之间的差异。

除了经典kalman以外,其他kalman的改进形式基本都是为了解决这个问题。主要包括这样几种:

1) 扩展kalman(EKF)

面对非线性问题,EKF采用了一种最简单的解决办法,就是把非线性近似成线性,采用的是泰勒展开的方法。由于这种线性只是近似出来的,它的结果自然是有偏的,而且泰勒展开的点是当前估计值,即便是在滤波收敛之前,估计值和真值还有很大差异,它仍然只能采用这种不准确的值去近似。这就造成了一个问题,如果状态模型收敛性很好,就可以形成一个良性循环“当前值处泰勒展开->估计得到更精确值->更精确值处展开->估计进一步精确”,但是如果收敛性不好,状态量的波动比较大,那么良性循环则可能变成恶性循环,导致滤波器发散。

2) 迭代扩展kalman(IEKF)

它比扩展卡尔曼多了个“迭代”,这个“迭代”是在同样也是按照"当前值处展开->估计->估计值处展开->再估计"的循环进行的,它和EKF的那个良性循环的区别在于,这是在一个kalman更新周期内进行的。这样做比单纯的EKF的好处在于,每次的精度损失会更小。

3) 粒子滤波(PF)

粒子滤波强行回避了非线性问题,既然非线性无论怎么近似都有误差,无法根据先验用表达式给出预测的分布的解析表达,那么就回归分布的本源,用统计来做。按照先验的分布随机给出一定数量的值,把这些值按照传递函数运算得到观测的预测,那么我们就可以得到同样数量的预测值,直接对这些值进行概率统计,不就可以得到它的分布了吗。这些值就是粒子,这种用粒子解决估计问题的方法就是粒子滤波。通过原理可以看出,粒子滤波属于贝叶斯估计,而不是最大后验估计,粒子滤波也是这些滤波算法中唯一的一个贝叶斯估计。当然粒子滤波也有它自己的问题,为了得到精确的分布,粒子的数量必须足够多,而且非线性越强,对数量的要求就越高,这意味着计算量的增加。除了计算量以外,更严重的是粒子退化问题,基本上大部分粒子滤波的研究都是为了解决这个问题。

4)无迹kalman(UKF)

UKF既不想做线性化,又不想采取像PF那样暴力的做法,而是采取了一种中庸的思想,只使用少量粒子来找出预测的分布,既然数量比较少,就不能浪费,于是在均值和均值两侧按照一定距离去设计点的位置。

5. 怎么选

有了多种方法,必然会面临怎么选的问题。面对实际问题,很少有绝对的线性,也很少有绝对的高斯,一切只是接近,是否要把它当做非高斯来处理,要看这种接近能达到什么程度。

1) 什么时候用KF

当有高精度惯导时,虽然它的完整模型时非线性的,而且是强非线性,但是由于惯导精度高,可以把状态量都当成小量,这时候就可以把矩阵中的一些三角函数简化,比如 [公式][公式] ,除此之外,还可以把小量之间的相乘直接消掉,即 [公式] ,所以大家看到的高精度惯性导航的状态方程都是线性的,除了一些还未完成初始对准,即失准角比较大的情况。

2) 什么时候用EKF和IEKF

首先是状态误差无法用小量来近似,必须用非线性形式来表达的时候。其次则是在无人机里场出现的,直接用全量而不是误差量进行建模的情况,比如直接用姿态的四元数做状态量,而不再是失准角。同样的,能用EKF的地方都可以用IEKF。

3) 什么时候用PF

首先是状态模型的非线性非常强,但这种在多传感器融合定位中其实还比较少见,多数是能够用雅克比进行展开的。在实际工程中使用PF更多地是因为它的另一个优点,即它不要求噪声是高斯的。在低成本的多传感器融合中,这一点太重要了,如果你仔细看过低精度mems的实验数据,会发现它和高斯真的离得太远了,低成本的观测也是同样问题。由于影响滤波器精度和稳定性的除了模型,还要噪声,因此在这种情况下,优先采用PF有时候会是更合理的选择。

4) 什么时候用UKF

UKF其实用的比较少,这是它的特性决定的,当非线性不强的时候,EKF已经够用,当非线性和非高斯性强的时候,精度又不如PF,所以除非你正好有一定的非线性,但是对运算量的要求又很高,则可以用UKF。Cartographer的早期版本用的就是UKF,只不过现在的新版本已经用图优化来做融合了。

 

 

上一篇:组合导航系列文章(十一):惯性导航误差传播规律

下一篇:组合导航系列文章(十三):构建一个基本的组合导航系统

 

编辑于 07-06

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组合导航系列文章(十二):滤波器基本原理 的相关文章

  • jdbcTemplate.batchUpdate在批量执行的时候,性能差没有效果,看看怎么解决的。

    我用的阿里druid数据库连接池 xff08 其实这个和连接池毛线关系没得 xff09 xff0c 创建jdbctemplate在执行insert 15000条数据时 xff0c 我发现还是30条 xff0c 20条 xff0c 35条这样
  • rabbit-mq 本地环境搭建

    一 xff1a 安装RabbitMQ需要先安装Erlang语言开发包 xff0c 直接下载地址 xff1a http erlang org download otp win64 18 3 exe 尽量安装时不选择C盘 xff0c 避免操作系
  • oracle小数点前面没有0,纠结解惑

    一1 天前台人找到我 xff0c 说我们安装的数据库有问题 xff0c 为什么小数点前面是0就不显示呢 xff0c 我去看了一下 xff0c command窗口要显示 SQL gt create table ml test num numb
  • 网监后台管理系统设计思路

    本次做的是网监系统saas服务平台的后台管理系统 xff0c 不涉及复杂功能逻辑 就是从菜单 模板 系 统 组织架构 角色 用户的设计思路 产品需求 xff1a 在各个省市网监系统的数量不断增长 xff0c 且系统逻辑和功能模块大致相同 x
  • 分类算法 c4.5 详解

    C4 5是一系列用在机器学习和数据挖掘的分类问题中的算法 它的目标是监督学习 xff1a 给定一个数据集 xff0c 其中的每一个元组都能用一组属性值来描述 xff0c 每一个元组属于一个互斥的类别中的某一类 C4 5的目标是通过学习 xf
  • 正则表达式匹配Html代码中图片路劲

    正则表达匹配图片路径 public static string GetHtmlImageUrlList string sHtmlText 定义正则表达式用来匹配 img 标签 Regex regImg 61 new Regex 64 34
  • (GPU版)Pytorch+pycharm+jupyter安装记录(截至23年3月14日)

    由于搞了一台旧主机 xff0c 主机上没有pytorch等软件程序 xff0c 所以重新装一遍 xff0c 顺便记录一下 xff01 一 安装显卡GPU的驱动程序 xff0c 搞定CUDA先 WIN 43 R打开命令行 xff0c 输入命令
  • Alibaba官方最新发布的这份Java学习导图+彩版手册,真不是吹的

    时间飞逝 xff0c 转眼间毕业七年多 xff0c 从事 Java 开发也六年了 我在想 xff0c 也是时候将自己的 Java 整理成一套体系 这一次的知识体系面试题涉及到 Java 知识部分 性能优化 微服务 并发编程 开源框架 分布式
  • linux下使用第三方商店安装应用

    安装 snap store 进行下载 xff0c 相当与第三方应用商店 xff0c 但是往往比某一个官方软件源里面的应用要丰富或更实用 到 snap docs 中选择你的 linux 版本进入安装文档 xff0c 根据指示一步一步安装即可
  • Centos7离线安装sqlserver2017

    Centos7离线安装sqlserver2017 根据操作系统版本选择下载匹配的sqlserver版本 可以在这里找一下https packages microsoft com config 我选择是先在一台有网的机器上下载好rpm安装包之
  • HC-05蓝牙模块配置

    目录 1 连接蓝牙模块a 蓝牙模块通过USB转TTL连接电脑b 打开串口助手 xff0c 波特率设置为38400c 检验是否连接成功 2 配置波特率3 修改密码4 设置主从模式5 设置蓝牙连接模式6 查询自身地址7 添加配对蓝牙地址8 测试
  • Windows沙盒技术调研

    转载自 xff1a 移动云开发者社区 一 Windows沙盒技术介绍 Windows沙盒提供了轻型桌面环境 xff0c 可安全地隔离运行应用程序 沙盒环境中Windows软件保持 34 沙盒 34 状态 xff0c 并独立于主机运行 沙盒是
  • OS + Linux Shell bash / sh / ksh / csh / tcsh / adb shell

    s Android adb shell ADB Android debug bridge Android手机实际是基于Linux系统的 Google提供的ADB工具包带有fastboot exe rar http dl iteye com
  • kali利用CVE_2019_0708(远程桌面代码执行漏洞)攻击win7

    一 漏洞说明 2019年5月15日微软发布安全补丁修复了CVE编号为CVE 2019 0708的Windows远程桌面服务 xff08 RDP xff09 远程代码执行漏洞 该漏洞在不需身份认证的情况下即可远程触发 危害与影响面极大 目前
  • 数据库系统原理1

    第一章 数据库管理技术发展的不同阶段形成不同的特点 数据描述经历了三个阶段对应于三个数据模型 第二章 数据库系统的生命周期 xff0c 书中可能和我们学习软工的时候有些出入 xff0c 其实就是不同时间有不同的理解 xff0c 横看成岭侧成
  • ssh详解

    SSH ssh secure shell protocol 22 tcp 安全的 具体的软件实现 xff1a OpenSSH ssh协议的开源实现 xff0c CentOS dropbear xff1a 另一个开源实现 SSH协议版本 v1
  • spring框架的简单配置步骤——小马同学@Tian

    spring框架配置步骤 1 导入jar包 本教程使用spring5 1 5 xff0c 在pom xml中进行导入依赖 Maven方式 xff1a span class token tag span class token tag spa
  • PSReadLine - Powershell 的强化工具

    PSReadLine Powershell 的强化工具 UPDATE 2022 3 4 根据其 Github README 的说明 xff0c If you are using Windows PowerShell on Windows 1
  • 美化 PowerShell

    美化 PowerShell UPDATE 2022 3 4 本文使用的 oh my posh 基于 V2 版本 xff0c 而更新且功能更强大的新版本已经发布 xff0c 如需使用请参考其官方文档 1 准备工作 Step1 下载并安装 Po
  • nltk下载语料库

    1 首先我们使用命令pip list查看是否安装了nltk模块 xff0c 如果没有 xff0c 则执行命令pip3 install nltk进行安装 2 之后 xff0c 我们在Jupyter Notebook中进行语料库的安装 impo

随机推荐

  • Spark scala和java的api使用

    Spark scala和java的api使用 1 利用scala语言开发spark的worcount程序 xff08 本地运行 xff09 package com zy spark import org apache spark rdd R
  • 解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题

    原因 xff1a NVIDIA显卡驱动损坏 解决方案 xff1a 重启进入命令行模式卸载原有NVIDIA驱动程序重新安装NVIDIA驱动后重启 xff0c 问题解决 Step1 Ubuntu系统开机进入命令行模式 系统启动后 xff0c 在
  • C++ 遍历注册表项下的所有键和值

    include 34 stdafx h 34 include lt time h gt include lt windows h gt include lt iostream gt include lt stdio h gt include
  • 9月10日美团网2014校招研发笔试哈尔滨站

    1 链表翻转 给出一个链表和一个数k xff0c 比如链表1 2 3 4 5 6 xff0c k 61 2 xff0c 则翻转后2 1 4 3 6 5 xff0c 若k 61 3 翻转后3 2 1 6 5 4 xff0c 若k 61 4 x
  • 2014校园招聘京东软件开发类笔试(完整版)

    时间 xff1a 2013 9 10 2013 10 8 地点 xff1a 四川大学 天津大学 职位 xff1a 软件开发工程师岗 语言 xff1a java 1 A 2 C 3 D 4 B 5 A 二 1 B 三1 D 2 B 3 C 4
  • Win8.1电脑声音可以外放但是插入耳机没有声音

    今天早上正准备学习英语 xff0c 发现耳机插入电脑没有声音 xff0c 于是开始找百度 xff0c 一步一步剥茧抽丝去查找问题来源 问题 xff1a 点击喇叭出现如下图片 xff1a 平常只有右半个图现在却有两个图标了 步骤 xff1a
  • 在线购物系统问题描述&领域词汇表

    在线购物问题描述 v2 0 时间 2017年 4月19日星期三 参与者在线客户能够通过网站完成在线购物 xff0c 顶层用况包括商品信息浏览 购物 咨询 用户注册 xff0c 用户登录 用户反馈 浏览商品用况可以用于客户寻找和浏览想要看的商
  • 在线购物领域类图

  • 在线购物系统用况分析

    一 系统用况图 1 用况图 2 xff08 1 xff09 用况图综述 系统主要是使顾客方便安全地购物 xff0c 已注册顾客可以通过系统查找 浏览 购买商品 xff0c 并且能够进行评价商品 与相应的商家沟通 或者向网站管理人员反馈问题
  • 被做成类似通信图的分析类图

    实验二博客 xff1a http blog csdn net simonruyang article details 70332294 一 注册 1 图形如下 2 文字说明 xff08 1 xff09 类图综述 目的 xff1a 让未注册顾
  • 顺序图实验记录,又懒又差劲,好懒好懒

    实验二博客 xff1a http blog csdn net simonruyang article details 70332294 一 注册 1 图形如下 2 文字说明 xff08 1 xff09 类图综述 目的 xff1a 让未注册顾
  • 承上的状态机图,又是烂图一副

    1 图形文档如下 2 文字说明 此状态机图反映了系统面向顾客从注册到购物完成的整体的状态变迁以及状态内部发生的事件 xff0c 一共有六个状态 xff0c 状态间转移如上图所示 2 1 ViewItems 中的事件 2 2 Register
  • 让Windows秒变Mac主题,还原度高达99%

    小伙伴们注意 xff1a 公众号的推送机制不再按照时间前后推送了 xff0c 微信公众号信息流乱序 君哥建议大家把科技毒瘤君公众号置顶 xff08 设为星标 xff09 xff0c 以便第一时间看到推送 xff0c 非常感谢 xff0c 方
  • 阿里Arthas(阿尔赛斯)-java诊断工具使用入门

    1 下载官方测试程序启动 doda 64 host166 game curl O https arthas aliyun com math game jar doda 64 host166 game java jar math game j
  • LHL 华为开发者大会有感 之 什么是HMS

    华为移动服务 同义词 HMS xff08 Huawei Mobile Services的英文缩写 xff09 一般指华为移动服务 华为移动服务 xff08 HMS xff09 全称为Huawei Mobile Services xff0c
  • EF Core之自动历史记录

    EF Core之自动历史记录 有的场景下需要记录特定表的增删改操作 xff0c 以便追溯 传统的做法是在增删改的方法里同步做记录 xff0c 很繁琐 在这里我们可以配合EF Core的DBContext做一个全局管控 全局管控自然就要有固定
  • SQL Server 2012 导出数据及分离MDF、LDF

    最近在设计数据库时看到自己设计的数据库和师哥师姐给我们的不一样 xff0c 于是就查了一下把数据库导出写了下来 分离数据库步骤 这是师哥师姐给我们的数据库格式 xff0c 如下 xff1a 那么如何生成MDF和LDF格式的数据库呢 xff1
  • kindeditor异步加载时无法显示编辑框

    事情是这样的 xff0c 我在A页面的div通过 jQuery load 方法载入一个页面B时 xff0c B页面带有编辑框 textarea xff0c 现在想让这个 textarea 显示为一个 kindeditor的富文本编辑区域 x
  • VR游戏设计之三大特性

    2016 年 9 月 23 24 日 xff0c 由 CSDN 和创新工场联合主办的 MDCC 2016 移动开发者大会 中国 xff08 Mobile Developer Conference China xff09 将在北京 国家会议中
  • 组合导航系列文章(十二):滤波器基本原理

    我觉得不错的地方 3 滤波器估计原理 组合导航中 xff0c 先验是imu解算的值 xff0c 观测是gps等传感器给出的值 xff0c 融合的目的是找到概率最大的那个值 上面介绍的三种方法都是对先验和观测的融合 xff0c 由于极大似然要