深蓝学院-多传感器融合定位课程-第7章-基于滤波的融合方法I

news2024/11/24 11:40:34

专栏文章:

深蓝学院-多传感器融合定位课程-第1章-概述_goldqiu的博客-CSDN博客

深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I_goldqiu的博客-CSDN博客

深蓝学院-多传感器融合定位课程-第3章-3D激光里程计II_goldqiu的博客-CSDN博客

深蓝学院-多传感器融合定位课程-第4章-点云地图构建及基于地图的定位_goldqiu的博客-CSDN博客

深蓝学院-多传感器融合定位课程-第5章-惯性导航原理及误差分析_goldqiu的博客-CSDN博客

深蓝学院-多传感器融合定位课程-第6章-惯性导航解算及误差模型_goldqiu的博客-CSDN博客

github保存了相关代码和学习笔记:

Shenlan-Course-Multi-Sensor-Fusion-for-Localization-Mapping/第7章:基于滤波的融合方法I at main · goldqiu/Shenlan-Course-Multi-Sensor-Fusion-for-Localization-Mapping

第7章:基于滤波的融合方法Ⅰ

课程内容

代码、PPT、视频见文件夹

课程笔记

滤波器作用

滤波器的本质:结合预测与观测,得到最“精确”的后验值。 实际中,预测与观测均从传感器而来,因此滤波器的作用便是结合各传感器得到一个最好的融合结果。

1) 实际中预测往往从IMU、编码器等传感器递推而来; 2) 观测往往从GPS、雷达、相机等传感器而来; 3) 后验为融合后的结果,即定位模块的输出。

概率基础知识

概率、概率密度

高斯概率密度函数

联合高斯概率密度函数

四元数微分方程

高斯随机变量的线性分布

滤波器基本原理

状态估计模型

贝叶斯滤波

经过以上化简,最终后验概率可以写为

根据以上结果,可以画出贝叶斯滤波的信息流图如下

1) 在高斯假设前提下,用贝叶斯滤波的原始形式推导比较复杂,可以利用高斯的特征得到简化形式,即广义高斯滤 波。后面KF、EKF、IEKF的推导均采用这种形式。 2) 实际中,UKF 和 PF 多应用再扫地机器人等2D小场景,与本课程目标场景不符,因此不做讲解。

卡尔曼滤波(KF)推导

扩展卡尔曼滤波(EKF)推导

迭代扩展卡尔曼滤波(IEKF)推导

迭代的方法是重新做线性化;

终止的条件是:两次的后验状态均值之间的差异小于一个阈值。

基于滤波器的融合

通过以上推导,滤波问题可以简单理解为“预测 + 观测 = 融合结果”。 结合实际点云地图中定位的例子,预测由IMU给出,观测即为激光雷达点云和地图匹配得到的姿态和位置。 融合流程用框图可以表示如下:

状态方程

观测方程

构建滤波器

Kalman 滤波实际使用流程

作业

在提供的工程框架中,补全代码,实现基于地图的融合定位,并与不加滤波时的定位结果做比较。 (注:由于kitti数据有部分问题,虽然课程提供了修复后的数据,但是仍会对结果有影响,因此在某些路段滤波效果会较差,可以忽略这部分路段。)

评价标准: 1)及格:补全代码,且滤波功能正常。 2)良好:补全代码,功能正常,且经过调试参数,滤波后性能比滤波前好。(这个没有定量标准,各位把详细的误差对比结果提供在作业中,供助教有足够依据评阅) 3) 优秀: 在前面的模型推导中 , 考虑了器件误差中的随机游走 , 请给出不考虑随机游走模型时的推导过程,并在工程框架中实现。对比这两种方法的性能差异(最好给出原因分析)。 另外,kalman滤波的性能对噪声的设置较为敏感,请在提供结果的同时,给出不同噪声设置情况下的结果对比(至少5组参数)。

参考资料:Quaternion kinematics for the error-state Kalman filter

环境安装

需要安装新版本的proto 3.15x,按照第四章的方式生成对应的文件。

出现Protobuf版本不匹配的错误:

protoc --version 查看Protobuf版本是否对应

不对应则更改环境:

sudo gedit ~/.bashrc

export PATH=/usr/local/bin/:$PATH

source ~/.bashrc

参考博客

多传感器融合定位理论基础(八):基于滤波的融合方法

以误差作为状态量的滤波方法ESKF(Error state kalman filter)较为常用,“EKF尝试通过线性化来近似名义状态的变化,而EsKF则尝试通过线性化来近似误差状态的变化”。而使用位姿做更新的EKF方法也成为(名义方程)。在完成一次ESKF迭代后,有点需要主要的是:当有新的融合数据进来,要进行一次新的观测时,因为之前的状态量已经用来补偿了,因此需要清零,所以此时的 先验状态量 delta_x_k_hat = 0 。 变化的更新体现在观测上 delta_y = (预测值 - 观测值) 。

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

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

相关文章

自学100天,零基础转行软件测试,我要以更好的姿态奔赴下一场山海~

三年大专一场空 专业是电子商务,18年毕业,当时在报考时时觉得电子商务挺高大上的,觉得电商肯定会有前途,以后毕业肯定好找工作,跟大多数人一样,我开始幻想我以后毕业以后的纸醉金迷的生活,我以…

落地 DevOps,探索高效研发运营一体化解决方案

前言与概述 伴随着企业业务的快速发展,为了支撑业务发展,提高 IT 对业务的支撑能力建设。在研发工程协同方面,希望加强代码管理,实现持续构建、自动化测试、自动化部署、自动化运维,同时加强产品的安全和质量管理&…

华为路由器 静态路由

需求&#xff1a; 实现 PC1 与 PC2 互通 1、拓扑图 主机IP掩码网关PC1192.168.10.10255.255.255.0192.168.10.1PC2192.168.40.40255.255.255.0192.168.40.1PC3192.168.30.30255.255.255.0192.168.30.1 2、R1 路由器 <Huawei>undo ter mo Info: Current terminal monit…

c#调用c++捕获SEH异常

C代码&#xff1a; extern "C" __declspec(dllexport) int ExceptionTest() { int* pointer NULL;*pointer 100; return 100; }c#代码&#xff1a; class C_Sharp_Call_C__{[DllImport("testDll.dll", CallingConvention CallingConvention.Cdecl)]p…

SpringMVC:Spring与SpringMVC各自bean加载控制(2)

问题提出&#xff1a;学习Spring技术的时候在config目录下创建了一个配置类SpringConfig。现在学习SpringMVC技术在config目录下又创建一个SpringMvcConfig配置类。这两个配置类都需要加载资源&#xff0c;那么它们分别都需要加载哪些内容? 目录结构&#xff1a; config目录存…

[附源码]Python计算机毕业设计房屋租赁管理系统设计Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

完全可用的迁移docker目录方案(centos/redhat)

完全可用的迁移docker目录方一、前提二、具体操作如下&#xff1a;2.1 先模拟运行一个 docker mysql2.2 先停docker进程2.3 新建存储目录2.4 修改启动默认的目录2.4.1 使用软链接(推荐)2.4.2 修改/etc/docker/daemon.json &#xff08;推荐&#xff09;2.4.3 指定容器启动参数&…

【深度学习】PyTorch深度学习实践 - Lecture_12_Basic_RNN

文章目录一、RNN介绍1.1 RNN为什么能处理有序数据&#xff1f;1.2 RNNCell内部剖析二、How to use RNNCell In PyTorch2.1 参数分析2.2 PyTorch代码实现三、How to use RNN In PyTorch3.1 参数分析3.2 NumLayers3.3 PyTorch代码实现3.4 其他参数四、Example1&#xff1a;Using …

fpga实操训练(锁相环pll)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 锁相环pll是fpga区别于stm32、soc很重要的一个特征。通常来说&#xff0c;输入的晶振一般是25m、50m这样的&#xff0c;不一定能满足功能的开发。这…

QT—QList与QLinkedList类的常用方法

QList<T>维护了一个指针数组&#xff0c;数组元素指向每一个链表项&#xff0c;因此QList<T> 提供了基于下标的快速访问。QLinkedList<T>是一个链式列表&#xff0c;不能使用下标访问&#xff0c;与QList相比&#xff0c;当对一个很大的列表进行插入操作时&a…

最近爆火chatGTP是人工智能还是人工智障?

关于chatGTP和一些话题? OpenAI 发布了 ChatGPT&#xff0c;是一个可以对话的方式进行交互的模型&#xff0c;因为它的智能化&#xff0c;得到了很多用户的欢迎。 ChatGPT是InstructGPT的兄弟模型&#xff0c;可以以对话的形式与用户交互&#xff0c;这使得ChatGPT能够回答问…

linux第五章---git的基本操作

git作为代码管理仓库&#xff08;版本管理工具&#xff09;&#xff0c;主要有GitHub和Gitee等等。&#xff0c;大家可以登录官网注册&#xff0c;Github经常访问不到&#xff08;看运气&#xff09;&#xff0c;Gitee作为国内比较火的一个平台(较商业化)。 1.git基本概念 工…

Java连接Access数据库改成MySQL连接数据库

升级诉求&#xff1a;Java连接Access已经算是过时的产物了&#xff0c;一般作为存储服务的应用在Java界比较常用的还是MySQL&#xff0c; 当然还有Oracle数据库。这里要讲的就是连接MySQL数据库了。 就是因为有了SQL标准&#xff0c;各大厂商实现SQL语句基本上大同小异&#xf…

基于Python完成CA系统的设计和实现(附源码)

CA 系统开发 一、CA系统的设计和实现 ​ 注&#xff1a;CA&#xff0c;Certificate Authority&#xff0c;电子认证服务或机构&#xff0c;为电子签名相关各方提供真实性和可靠性验证&#xff0c;是负责发放和管理数字证书的权威机构&#xff0c;并作为电子商务交易中受信任的…

基于Feign远程调用

RestTemplate方式调用存在的问题 先看看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 1、代码可读性差&#xff0c;编程体验不统一&#xff1b; 2、参数复杂URL难以维护&#xff1b; 为了解决这些问题&#xff0c;所以引入了Feign&am…

QT QStackedWidget 控件 使用详解

本文详细的介绍了QStackedWidget控件的各种操作&#xff0c;例如&#xff1a;新建界面、页面切换、添加页面、addWidget、count、currentIndex 、currentWidget、indexOf、insertWidget、removeWidget、widget、setCurrentIndex 槽函数、setCurrentWidget 槽函数、currentChang…

RSS Can:将网站信息流转换为 RSS 订阅源(三)

第三篇内容里&#xff0c;我们来聊聊把结构化数据转换为可以订阅的 RSS 订阅数据源。 写在前面 通过前两篇文章《RSS Can&#xff1a;使用 Golang 实现更好的 RSS Hub 服务&#xff08;一&#xff09;》和《RSS Can&#xff1a;借助 V8 让 Golang 应用具备动态化能力&#xf…

【云计算与大数据技术】集群资源统一管理系统YARN、Mesos、Omega讲解(图文解释 超详细)

相比于一种计算框架一个集群的模式&#xff0c;共享集群的模式具有以下三个优点 1&#xff1a;硬件共享 资源利用率高 2&#xff1a;人员共享 运维成本低 3&#xff1a;数据共享 数据复制开销低 一、集群资源统一管理系统 集群资源统一管理系统需要支持多种计算框架,并需…

如何能让Linux系统能够更好的支持高并发环境?

Linux系统在默认的参数下对高并发支持不好&#xff0c;主要瓶颈在于单进程最大打开文件数限制、内核TCP参数方面和IO事件分配机制等。所以下面我们从这几方面进行调优&#xff0c;使Linux系统能够更好的支持高并发环境。 iptables相关 如果不是必须使用&#xff0c;建议关掉或…

对接云眸控件兼容性记录

之前采用的UIKit的形式进行视频播放&#xff0c;因为业务要求转换成了Web视频控件的形式。但是Web控件存在不少的兼容性问题 开发的直播系统(www.a.com)是通过Iframe嵌入到门户网站(www.b.com)中&#xff0c;并且部署的地址不同于门户地址: 由于系统页面和门户网站不同域&…