vins和g2o边缘化的异同:(已经做到ppt里面了,简单回顾一下)

1.《视觉slam14讲》中提及的边缘化(G2O边缘化)是在计算求解过程中,先消去路标点变量,实现先求解相机位姿,然后再利用求解出来的相机位姿反过来计算路标点的过程,目的是为了加速求解,并非真的将路标点给边缘化掉。(补充:G2O是在BA之后提出的,BA就是优化路标点和相机位姿)

2.VINS的边缘化则真正需要边缘化掉滑动窗口中的最老帧和次新帧,目的是希望不再计算这一帧的位姿或者与其相关的路标点,但是希望保留该帧对窗口内其他帧的约束关系。

一个知识点:marg掉以后会使得之后的矩阵失去稀疏性的特点,也即矩阵会变得稠密起来,就是说非零元素的个数会增加。

编辑

添加图片注释,不超过 140 字(可选)

vins的边缘化策略第二点,当次新帧不是关键帧的时候直接丢弃次新帧,但是次新帧的IMU数据需要保留,这是为了保证IMU预积分的连贯性。

单目+imuj系统是4自由度不可观,yaw角+3自由度位置不可观。其中尺度因子由于加速度计的存在而可观。

编辑

添加图片注释,不超过 140 字(可选)

上面四幅图对应能量函数,上面的图告诉我们,能量函数为0的解由以前的一条曲线变成了一个点,不确定性的东西变得确定了,也即不可观的状态变量变得可观了。说明我们人为地引入了错误的信息。在不同的点线性化后,强行加起来,实际上引入了一些人为的约束,或者说引入了人为的错误观测,导致整个系统的崩溃。

编辑

添加图片注释,不超过 140 字(可选)

通过上面能量函数的例子可以说明,在marg的时候,不要在marg之后进行线性化,因为此时的状态和marg之前是不一样的。如果这时候再进行吸纳行话,会引入人为观测,导致整个优化过程崩溃。

因此,marg时,被marg的那些变量的雅可比已经不更新了,而此时留在滑动窗口里的其他变量的雅可比要用和marg时一样的线性点,就是FEJ进行计算,不要用新的线性点了。否则会导致整个问题的零空间被降维,意思即是引入了错误的人为观测约束,使得问题的零空间加入了错误的约束,因此被降维了。

编辑

添加图片注释,不超过 140 字(可选)

根据最后一句话 可能FEJ也不是很必要,但是是一个考点。

在边缘化的过程中,状态变量会被不断更新,计算边缘化相关的雅可比时需要注意固定线性化点,也就是计算雅可比时求导变量的值要固定,而不是用每次迭代更新以后的x去求雅可比,这就是FEJ(First Estimate Jacobians)。同时这样被称为是系统的一致性问题。

系统的不可观的状态维数是这个矩阵零空间的维数。(之所以说零空间维数降低,就是说不可观的状态维数降低了,也即不可观变得可观了。)

编辑

添加图片注释,不超过 140 字(可选)

就是说计算雅可比矩阵的时候要选择第一次的线性点来进行计算。

编辑

添加图片注释,不超过 140 字(可选)

使用FEJ的意义:为了保证系统的一致性,对于有边缘化信息的非线性优化问题,所有优化变量的雅可比都应该使用优化迭代开始前的雅可比,在优化迭代的过程中不发生变化。就是说在进行边缘化以后,线性化使用的线性点要保持一致,使用同一个线性点来进行Taylor展开,这样才能保证系统不可观的维度。否则,便引入了人为观测误差,这样会使得系统由不可观变成可观,求解出来的结果是不对的!

关于第一估计雅可比(FEJ, First Estimate Jacobians)先进行一个简单的描述,在Marginalize的时候,求解滑动窗口估计器的迭代过程中,会不断迭代计算H矩阵和残差b,而在迭代过程中,状态变量会不断更新,计算雅可比的时候需要固定线性化点(fix the linearization point)。换言之,就是计算雅可比时候求导变量要固定,而不是用每一次迭代更新以后的状态量x去求雅可比。

编辑

添加图片注释,不超过 140 字(可选)

感觉FEJ就是在讲计算雅可比矩阵时的线性化点的选择问题。

编辑

添加图片注释,不超过 140 字(可选)

上面这个图做到ppt里面就行了,就讲两个能量函数,在不同线性点展开,然后相加,最后发现结果从一条直线变成了一个点,也即下系统状态由不可观变得可观起来。(这种现象对slam系统是非常不利的。)

编辑

添加图片注释,不超过 140 字(可选)

上面讲了那么多的可观性,这里对可观性的定义进行一个阐述。就是说当系统可观的时候,那个h函数是一个单射函数,也即一个site对应唯一一个函数值。就是说可以理解成单调递增函数或者单调递减函数即可。

总结:滑动窗口算法中,对于同一变量,不同残差对其计算雅可比矩阵时线性化点可能不一致,导致信息矩阵分成两部分,相当于在信息矩阵中多加了一些信息,使得其零空间出现了变化。FEJ算法:不同残差对同一个状态求雅可比时,线性化点必须一致,这样就能避免零空间退化,也即可以避免不可观变量变得可观。

边缘化你必须知道的一件事!(FEJ知识点总结)相关推荐

  1. 自学成为程序员_成为程序员不需要的10件事

    自学成为程序员 Do you have what it takes to become a programmer? Chances are, you will base your answer on ...

  2. Hinton:今年AI没有重大突破,但三件事值得关注

    原作 Steve LeVine Root 编译自 axios 量子位 出品 | 公众号 QbitAI 2017年,有哪些值得关注的AI事件? 过去的一年里,既有霍金和马斯克等齐声呼吁,一定要时刻警惕超 ...

  3. 哪一件事让你忽然意识到打工永无出路?

    我发誓我一定要做点什么,所以我自己开了个公司. 大概我任职某公司CTO的时候吧. 我意识到了所谓的战略.技术.管理等综合能力,不如销售跑去和客户喝一顿,上千万的单就来了. 我意识到我所谓的研发战略,没 ...

  4. 跟领导相处,这3件事不要精明,多一分傻气多一分福气

    行走职场,在同事面前,尤其在领导面前,精明不是什么优点,而是一种缺点.任何领导都不喜欢精明的下属.但是,很多职场人都喜欢"自作聪明",忍不住想卖弄"精明".如果 ...

  5. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事

    保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...

  6. 计算机改变了我们的生活英语作文带翻译,一件事改变了我的生活的英语作文,带翻译,求帮忙,最好是符合初中三年级的英语作文...

    满意答案 niqwe0j8 2020.03.21 采纳率:44%    等级:7 已帮助:57人 One thing that changed my life completely was that ...

  7. 当年学生的一件事,心情很难过

    当年学生的一件事,心情很难过 今天同一个以前的学生聊天,搞得心情很难过.         那年是刚毕业,带了几个学生的毕业论文,其中有一个,只是第一次见过一面,最后答辩前见一两天以及答谢见过一面.他从 ...

  8. 作为程序员,要取得非凡成就需要记住的15件事。

    作为程序员,要取得非凡成就需要记住的15件事. 1.走一条不一样的路 在有利于自己的市场中竞争,如果你满足于"泯然众人矣",那恐怕就得跟那些低工资国家的程序员们同场竞技了. 2.了 ...

  9. 跟谁学这2年间做的六件事

    本着用户需求的价值观,跟谁学已经走过了两年,在这两年中有成功,当然也有失败.最终跟谁学想要做到三点,第一,让家长为孩子找到一个好老师:第二,让教学依托移动化场景创业:第三,帮助创业. 跟谁学从创办时就 ...

最新文章

  1. Go 学习笔记(81)— Go 性能分析工具 pprof
  2. Boston房价PaddlePaddle测试程序
  3. 使用Jmeter进行http接口测试
  4. 面对offer,如何选择
  5. Python 学习拾遗
  6. bat kafka启动_windows下搭建Kafka,并通过命令窗口收发消息
  7. iOS UI-常用控件
  8. linux内核计算list的长度,Linux内核通用链表 linux/list.h阅读
  9. centos通过添加chrome源来安装chrome
  10. oopc——7.面向接口编程
  11. c语言告白,C语言告白代码,一闪一闪亮晶晶~
  12. FastFDS集群配置说明
  13. 用electron实现播放flash小游戏
  14. cowpatty无线破解之——WPA-PSK字典攻击
  15. 探寻Linux 中国之路
  16. vc++之windows api
  17. 硕士阶段人工智能有哪些比较好的发论文的方向?
  18. 在win10 系统输入法 输入几下老是自动被禁用解决办法
  19. Python暗通道图像去雾
  20. 抽奖系统小程序,多方式真实展示抽奖功能

热门文章

  1. Show me Why 软件破解教程目录 与 试看教程 更新工具和教程 (2015-04-22 更新试看链接)
  2. 室内清扫机器人部分资料收集汇总
  3. 学java的第一天--javaJDK的安装与配置
  4. 数据预处理--离散变量处理
  5. TVP尖峰对话李开复沈春华:AI未来进行式与技术的发展
  6. [普通物理]波的能量与干涉
  7. 一天一天学做外挂@第四天-给自己找个贴心小护士[武林外传]
  8. iOS开发 System Sound Services(振动和提示音)
  9. window.open与window.showModalDialog的分析
  10. python html5 便利店收银系统_基于Python的Django框架实现的中式快餐厅管理信息系统网站...