VIO和预积分(蒙圈的请过来,带你不蒙圈)

大佬的世界,你不会懂,就像一行行公式,人家觉得很简单,你却要读很多遍,不过还好,我们从普通人的世界来解读VIO和预积分。

预积分

拿大佬的话来热场,本章要介绍一种在紧耦合系统中十分常见的IMU数据处理方法:预积分(Pre-integraion)[1]。与传统IMU的运动学积分不同,预积分可以将一段时间内的IMU测量数据累计起来,建立预积分测量,因而十分适合以关键帧为基础单元的激光或视觉SLAM系统。如今预积分已经成为诸多与IMU紧耦合的标准方法[2,3,4],下面我们来介绍其基本原理。

啥是预积分,刚开始觉得它是一套系统的统称,看完一遍觉得它是不是预先积分的含义(看完一堆推导和公式,又在质疑不会这么简单吧)。

这里通过高博的代码,得到了一些启发,写在这里和大家分享。
因为IMU中的零偏会不断变化,所以零偏更新后,需要再次重新积分,是不是计算量很大,所以预积分的作者为了解决这个问题,发明了预积分(它的目的就是想:能不能不反复计算),于是他定义了3个变量,如下:
Δ R i j = R i T R j = ∏ k = i j − 1 E x p ( ( ω k ~ − b g , k − η g d , k ) Δ t ) \Delta R_{ij} = {R_{i}^{T}}R_{j}=\prod_{k=i}^{j-1}{Exp(({\tilde{\omega_{k}}-b_{g,k}-\eta_{gd,k}})\Delta{t})} ΔRij=RiTRj=k=ij1Exp((ωk~bg,kηgd,k)Δt)
Δ v i , j = R i T ( v j − v i − g Δ t i , j ) = ∑ k = i j − 1 Δ R i k ( a k ~ − b a , k − η a d , k ) Δ t \Delta v_{i,j}=R_{i}^{T}(v_j-v_i-g{\Delta{t_{i,j}}})=\sum \limits_{k=i}^{j-1}{\Delta{R_{ik}({\tilde{a_k}-b_{a,k}-\eta_{ad,k}}){\Delta{t}}}} Δvi,j=RiT(vjvigΔti,j)=k=ij1ΔRik(ak~ba,kηad,k)Δt
Δ p i , j = R i T ( p j − p i − v i Δ t i , j − 1 2 g Δ t i j 2 ) = ∑ k = i j − 1 [ Δ v i , k Δ t + 1 2 Δ R i , k ( a k ~ − b a , k − η a d , k ) Δ t 2 ] \Delta{p_{i,j}}=R_{i}^{T}(p_{j}-p_{i}-v_{i}{\Delta{t_{i,j}-\frac{1}{2}g{\Delta{t_{ij}^{2}}}}}) =\sum \limits_{k=i}^{j-1}{[\Delta{v_{i,k}\Delta{t}+\frac{1}{2}\Delta{R_{i,k}({\tilde{a_k}-b_{a,k}-\eta_{ad,k}}){\Delta{t^2}}}}]} Δpi,j=RiT(pjpiviΔti,j21gΔtij2)=k=ij1[Δvi,kΔt+21ΔRi,k(ak~ba,kηad,k)Δt2]

是的,上面作者定义的3个变量就是你们心念念的==“预积分”==,请注意,预积分量并没有直接的物理含义,他的出现是为了解决因零偏的改变而要重新积分的问题,那它是怎么解决的?后面当零偏改变时,会有快捷方式更新这个3个变量。那你会问这3个变量更新后有啥用呢?它的作用是在紧耦合的非线性优化中用来构建残差方程的。程序不断的优化更新这个3个变量,来代替原先因为零偏改变而需要重新积分的过程。

作者定义了3个新的变量,完美的解决了这个问题,要只要作者怎么想到的,可能我也要想想?反正目前我们知道了预积分的定义,更新,优化这一整体思路。

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

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

相关文章

IOTDB的TsFile底层设计

目录 概述 数据模型 数据结构 元数据注册 读取和写入 设计思想 主要过程

it网络设备监控系统

企业对网络监控系统的需求也在增加。网络监控系统是一种软件和硬件的组合,用于监控和管理企业的网络系统。它帮助企业实时了解网络情况,防范和处理网络问题,保证企业业务的正常使用。那么,IT网络监控系统监控什么设备呢&#xff1…

前端求职指南

简历求职指南 为什么没有面试? 1、简历写的不好 2、简历投递不好 简历的定义是什么? 是求职者向未来雇主展示自己专业技能和职业素养的自我推销工具,以找到工作为目的。 什么时候改简历? 每半年或一年更新一次工作中的成长 再工…

基于VR元宇宙技术搭建林业生态模拟仿真教学系统

随着科技的飞速发展,教学方式也正在经历着巨大的变革。林业经济学元宇宙虚拟教学系统作为一种新兴的教学方式,为学生和教师提供了一个全新的、沉浸式的学习和教学环境。 森林管理和监测 元宇宙技术可以用于森林管理和监测。通过无人机、传感器和虚拟现实…

docker 安装 nessus新版、awvs15-简单更快捷

一、docker 安装 nessus 参考项目地址: https://github.com/elliot-bia/nessus 介绍:几行代码即可一键安装更新 nessus -推荐 安装好 docker后执行以下命令 #拉取镜像创建容器 docker run -itd --nameramisec_nessus -p 8834:8834 ramisec/nessus …

GoogleTest部署实践--测试用例代码

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言一、GoogleTest简介二、GoogleTest工具适用岗位--测开岗、开发岗三、GoogleTest的理念四、GoogleTest的环境搭建五、GoogleTest 实战--编写googlet…

Spring Boot自动装配原理超详细解析

目录 前言一、什么是SPI?1. JDK中的SPI2. Spring中的SPI2.1 加载配置2.2 实例化 二、Import注解和ImportSelector是什么?1. 代码示例2. 过程解析3. 源码分析 三、Spring Boot的自动装配1.源码分析2.代码示例3.Spring Boot自带的自动装配 四、总结 前言 …

算法基础之二分查找

原题链接 一 、二分查找中的mid1和mid-1的问题 二分查找中的边界问题处理不好很容易导致死循环和计算错误的问题,以题目 数的范围为例。 题目大意 ​ 二分查找重复数第一次出现的位置和最后一次出现的位置。 数学含义 ​ 第一次位置即 找到 一个长度最大的 >X 区…

golang入门笔记——pprof性能分析

文章目录 简介runtime/pprof的使用命令行交互网络服务性能分析pprof与性能测试结合压测工具go-wrk 简介 golang性能分析工具pprof的8个指标 1.性能分析的5个方面:CPU、内存、I/O、goroutine(协程使用情况和泄漏检查)、死锁检测以及数据竟态…

医院电子病历编辑器,EMRE(EMR Editor)源码

电子病历主要面向医院机构医生、护士,提供对住院病人的电子病历书写、保存、修改、打印等功能。本系统基于云端SaaS服务方式,通过浏览器方式访问和使用系统功能,提供电子病历在线制作、管理和使用的一体化电子病历解决方案,为医疗…

asisctf 2023 web hello wp

hello 开题&#xff0c;直接给了源码。 <?php /* Read /next.txt Hint for beginners: read curls manpage. */ highlight_file(__FILE__); $url file:///hi.txt; if(array_key_exists(x, $_GET) &&!str_contains(strtolower($_GET[x]),file) && !str_c…

pandas argmax 和max区别

argmax 和 max 是 Pandas 中的两个函数&#xff0c;它们在处理数据时发挥了不同的作用。 argmax函数用于返回数据集中最大&#xff08;或最小&#xff09;值的索引。如果数据集中有多个相同的最大&#xff08;或最小&#xff09;值&#xff0c;那么这个函数将返回第一个出现该…

TVP专家谈腾讯云 Cloud Studio:开启云端开发新篇章

导语 | 近日&#xff0c;由腾讯云 TVP 团队倾力打造的 TVP 吐槽大会第六期「腾讯云 Cloud Studio」专场圆满落幕&#xff0c;6 位资深的 TVP 专家深度体验腾讯云 Cloud Studio 产品&#xff0c;提出了直击痛点的意见与建议&#xff0c;同时也充分肯定了腾讯云 Cloud Studio 的实…

el-table 指定层级展开

先来看看页面默认全部展开时页面的显示效果&#xff1a;所有节点被展开&#xff0c;一眼望去杂乱无章&#xff01; 那么如何实现只展开指定的节点呢&#xff1f;最终效果如下&#xff1a;一眼看去很舒爽。 干货上代码&#xff1a; <el-table border v-if"refreshTabl…

ROS2 从头开始:第 5 部分 - 并发、执行器和回调组

一、说明 让我们回到基础。并发意味着系统或软件可以同时运行许多任务。例如,在单核 CPU 机器上,可以通过使用线程来实现并发。本文探讨了

基于边缘智能网关的储充一体电站管理方案

在“2030碳达峰&#xff0c;2060碳中和”的目标下&#xff0c;我国持续加快推进能源转型&#xff0c;扩大新能源占比&#xff0c;全国各地都在部署建设光伏、储能、新能源汽车充电等应用。随着新能源汽车的广泛普及&#xff0c;充电站、充电桩的需求快速增加&#xff0c;行业也…

分享从零开始学习网络设备配置--任务3.8 使用动态路由OSPF实现网络连通

任务描述 某公司随着规模的不断扩大&#xff0c;路由器的数量在原有的基础上有所增加。网络管理员发现原有的路由协议已经不适合现有的网络环境&#xff0c;可实施动态路由OSPF协议配置&#xff0c;实现网络中所有主机之间互相通信。因为动态路由OSPF协议可以实现快速收敛&…

zabbix实现钉钉报警

首先钉钉创建一个团队 自定义关键词 查看zabbix-server脚本存放的位置&#xff1a; [rootcontrolnode ~]# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf AlertScriptsPath/usr/lib/zabbix/alertscripts zabbix server设置 在配置文件书写脚本目录vim /etc/za…

Redis的softMinEvictableIdleTimeMillis和minEvictableIdleTimeMillis参数

背景&#xff1a; Redis的softMinEvictableIdleTimeMillis&#xff0c;minEvictableIdleTimeMillis是一个令人疑惑两个参数&#xff0c;特别是当它和minIdle组合起来时就更难理解了&#xff0c;本文就来梳理下他们的之间的关系 softMinEvictableIdleTimeMillis&#xff0c;mi…

最新AI写作系统ChatGPT源码/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…