前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MSCKF-Based Visual-Wheel Odometry 轮速视觉融合里程计

MSCKF-Based Visual-Wheel Odometry 轮速视觉融合里程计

作者头像
3D视觉工坊
发布于 2020-12-11 03:43:41
发布于 2020-12-11 03:43:41
2.4K01
代码可运行
举报
运行总次数:1
代码可运行

Sliding Windows Filter(SWF)在VIO、SLAM这个领域应用非常广,比如MSCKF、OKVIS、VINS-Mono等等,几乎可以说是VIO的标配。

SWF可以分成基于滤波器的和基于优化的两种。最典型的基于滤波器的方法就是MSCKF算法了。它是基于EKF的算法,在marginalize state的时候处理比较简单,只需要把对应的covariance的对应行列直接丢弃就可以了。而基于优化的方法在边缘化时需要对Hessian矩阵做舒尔补,操作会复杂一些。

为了尝试一下SWF,我们先从简单的基于滤波的方法入手.本文实现了一个基于MSCKF的Visual+Wheel融合的Odometry.

下面是分别是仿真和用KAIST数据测试的结果

更多可参考

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://zhuanlan.zhihu.com/p/270670373

注意:这里为了凸显加了视觉校正效果,把wheel的noise设的比较大,轨迹不太平滑。如果想要平滑一些,可以适当调低wheel的noise。

代码请见

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/ydsf16/TinyGrapeKit

传感器配置

Visual部分,用一个单目相机。Wheel部分可以是左右轮速度或位移

坐标系统

轮速坐标系/Odometry坐标系{0}: 车辆后轴中心、贴地. x轴向前, y轴向左,z轴向上.

全局坐标系{G}:与初始时刻的轮速坐标系重合的坐标系。

相机坐标系{C}: x轴向右,y轴向下,z轴向前

内外参数

内参数:1)相机内参;

2)左右轮轴距b,左右轮速系数、 将编码器count转成距离米,或者速度转成m/s。

外参数:轮速坐标系到相机坐标系的旋转与平移.

我们假设这些内外参数都假设预先标定好的。实际上,也可以把这些内外参数放到状态向量里面估计,这也是很多论文里面常见的做法,比如OpenVINS。但是,具体这些内外参数能不能估计出来,是不是可观的,可以参考一下黄国权老师的论文

状态向量

滑窗里面的状态分成两类,一类是Odometry的位姿。

另一个类是一串相机位姿:

总的状态是当前Odometry位姿+N帧的相机位姿:

跟MSCKF一样,我们把协方差分块表示:

这里我们使用最简单的滑窗维护方式,当新的一帧进到滑窗后,就直接把老的一帧给边缘化掉。因为是EKF,就是直接把最后一帧相机pose从x中去掉,然后把对应的协方差的行和列删除掉.

Wheel Propagation

EKF算法分成两步:Propagation+Update。在这里,我们用wheel的信息进行状态的propagation,用视觉信息做update。下面先推导Propagation部分。这里的推导,参考了Mingyang Li的paper[2]。

按照IMU处理的方法,首先把ODE方程列出来

下面就可以对ODE方程进行积分了。简单起见,直接用欧拉积分了。如果考虑精度,可以使用中值或者龙格库塔:

用这个式子,就可以进行均值的Propagation。对于协方差的Propgation,我们先求雅克比。这里定义旋转的Error为:

状态增广

当新来一帧图像,可以通过odometry位姿,计算出相机位姿。

然后把它放到状态向量里面。相应的要把协方差矩阵进行扩展:

Update

7.1视觉Update

MSCKF的很大的优势就是没有把特征点放到状态向量里面,降低了计算量。

当特征点丢失的时候,才拿来进行更新。特征点丢失有两种情况:

  • 当特征点丢失的时候,才拿来进行更新。特征点丢失有两种情况:
  • 另一种是边缘化的时候,也就是把最后一帧滑出窗口的时候,把在这一帧里面新建的特征点都丢弃,也就是都拿来做更新。

这里说的特征点/feature,同时表示3D点,也表示在图像上的2D位置。

A. 一个特征点的处理

因为与是正交的.所以

做了上面的操作之后,就可以得到一个不含特征点的线性方程:

B. 多个特征点的处理

上面一个特征点可以得到一个(18)式。多个特征点就可以得到很多的(18)式,把他们堆叠起来,有得到一个很大的线性方程:

这个方程的行数一般很大,直接用来做EKF更新效率很低。MSCKF又用QR分解,进行了一次压缩。具体的对H*做QR分解

带入到(19)式中,可以得到,

左右两边,同时乘以有

最后,我们得到一个压缩后的线性方程

这方程的行数最大和状态的维度相同。最终用来做EKF更新的也就是(20)式。

C. 边缘化

边缘化,或者说如何删除滑窗里的状态。前面也已经提到了,我们使用了最简单的策略。就直接把最老的一帧去掉。去掉的这帧里的所有特征点都被拿来做更新。

最后,总结一下,当一帧图像来了之后的处理步骤

  • 增广状态
  • 做特征点跟踪。
  • 收集跟踪丢失的的所有特征点{}
  • 收集将要被边缘化的帧中的所有特征点:{}
  • 利用特征点{}和{}构造线性方程(20),并执行EKF更新。
  • 边缘化操作:将x中边缘化掉的pose去掉,将协方差矩阵中对应的行和列删除。

平面约束Update

一般车辆都是运动在平面上的,在更新的时候,我们引入一个平面约束。这部分参考了Stergios I. Roumeliotis 的PaperVINS On wheels[3]

实现

全部工程代码请见:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/ydsf16/TinyGrapeKit

实验

仿真测试,很明显,VWO-MSCKF比纯Wheel里程计精度更好.

数据集测试

我们这里使用了KAIST数据集,链接是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://irap.kaist.ac.kr/dataset/

同样的,相比纯Wheel odom,精度会有所提高.

注意:这里的测试,Wheel内参数精度都是比较低的,所以raw odom的精度不是很高.如果wheel内参数精度很高的话,VWO-MSCKF精度不一定更高.

本文仅做学术分享,如有侵权,请联系删文。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 3D视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SEO方法论,一检测,三方法
许多初创企业在成立初期通常会选择忽略SEO,理由很简单:他们的时间和资源非常有限,因此,很难做出轻易的决定,雇佣相应的SEO人才。
蝙蝠侠IT
2020/11/05
4020
SEO方法论,一检测,三方法
2019年,熊掌号内容优化,8个小技巧!
在2019年,SEO人员明显可以感觉到每天关键词的浮动变化,还是相对比较大的,这与百度算法迭代更新有直接的关系,我们知道,搜索排序规则将逐渐从超链技术向领域权威度倾斜,因此,在SEO下半场,熊掌号SEO的内容优化与运营将显得格外重要。 
蝙蝠侠IT
2019/12/20
4570
2019年,熊掌号内容优化,8个小技巧!
SEO法宝,7个必要条件值得关注
法宝,这个关键词,主要是指在一定事物面前,具有特殊功能的法器,进而延伸可以理解为:
蝙蝠侠IT
2020/11/16
2730
SEO法宝,7个必要条件值得关注
SEO“四处一词”与“五处一词”的区别!
在SEO优化过程中,我们经常听SEO专家谈论四处一词这个话题,很多SEO初学者,可能并不了解什么是四处一词,以及它对SEO的作用。
蝙蝠侠IT
2020/01/15
6670
SEO“四处一词”与“五处一词”的区别!
新闻稿发布,如何写新闻稿有利于SEO?
无论是企业还是媒体网站,我们每天都会接触到新闻稿,它用户对外声明企业与媒体站点的相关产品与重要信息的发布,为了提高新闻稿件的搜索可见性,我们不但要求编辑具备较高的新闻写作素养,同时,基于搜索引擎营销而言,我们还要求新闻稿件相关撰写人,具备一定的SEO知识。
蝙蝠侠IT
2021/07/27
1.1K0
新闻稿发布,如何写新闻稿有利于SEO?
SEO市场分析,常见问题有哪些?
在做SEO市场分析的过程中,我们总是考量诸多因素,比如:竞争对手的现状,搜索算法的稳定性,内容团队创建的成本,我们该如何计算ROI等,但同样,我们仍然有更多的问题需要了解,比如:
蝙蝠侠IT
2020/11/13
5350
SEO市场分析,常见问题有哪些?
SEO网站优化:如何针对内容素材做优化?
在SEO工作中,内容如同的网站的灵魂,它严重影响网站的长期发展,几乎没有任何网站可以脱离内容,而独立存在。
蝙蝠侠IT
2019/07/10
7400
SEO网站优化:如何针对内容素材做优化?
SEO基本功,你值得关注的5个细节
虽然我们都在讲SEO是一个长周期的工作,并且根据不同行业的需求,我们在做SEO策略的时候,总是会给出一些不同的解决方案。
蝙蝠侠IT
2020/10/27
3100
SEO基本功,你值得关注的5个细节
SEO改进措施,5个持续改进方案值得收藏
当我们面临这个问题的时候,一些SEO工作人员,经常会产生疑问,而实际上,我们都非常清楚,搜索引擎是一个动态变化过程,只有通过持续改进,修正相关错误,我们才能够保持长久的优势。
蝙蝠侠IT
2020/11/06
6740
SEO改进措施,5个持续改进方案值得收藏
2020年网站排名优化,你该关注的6个方面!
最近几年国内外各大搜索引擎算法频繁更新,SEO行业规则不断在改变,2020年即将到来,在新的一年里,对于网站排名优化,有哪些方面值得我们关注呢? 
蝙蝠侠IT
2019/12/23
4850
2020年网站排名优化,你该关注的6个方面!
SEO项目,如何做到先入为主?
做SEO其实与现实中做生意是一个道理的,当一个市场被对方占领后,你在想进行争夺是比较难的,因为对方已经是守方而我们是攻防,如果我们先入为主则会占据优势,可以利用主场优势,做SEO时,我们也应有先入为主的思维来获取主场优势。
蝙蝠侠IT
2020/11/09
5200
SEO项目,如何做到先入为主?
做好SEO需要技术和营销如影随形?
怎么才能做好SEO?每个人都有不同的理解,一些seoer会通过不断的学习和拓展新技术而成为SEO大咖,而也有一些seoer会钻研营销方面内容,而成为了老板,其实技术和营销对SEO行业来说是如影随形的,相互之间有着千丝万缕的联系。
蝙蝠侠IT
2021/01/07
4710
做好SEO需要技术和营销如影随形?
SEO人员,该多久更新一下旧页面?
特别是对于一些中小企业的SEO人员,只顾着整日持续不停的写内容与做外链,很少花时间,回头看一看,并思考每日大量工作的价值,特别是一些旧页面的研究。 
蝙蝠侠IT
2019/10/28
5190
SEO人员,该多久更新一下旧页面?
租房网站排名,如何做好关键词SEO?
通过突出小区、房屋的优势来获得用户的访问,从而提高网站排名,同时租房网站的网络口碑也不容忽视,通过用户的优秀反馈不断刺激新用户产生信任从而产生成交。
蝙蝠侠IT
2021/02/10
5100
租房网站排名,如何做好关键词SEO?
详解,关键词排名快速提升的策略!
对于企业网站排名而言,每一个网站运营专员都希望,可以在较短的时间内,针对网站关键词快速排名,但有的时候,我们知道,搜索引擎的排名有一个评估的时间周期,它涉及诸多因素,比如:
蝙蝠侠IT
2020/01/19
6920
详解,关键词排名快速提升的策略!
要想网站长尾关键词排名多,文章优化少不了!
  导读:经常有客户问起这个问题“网站是更新原创文章,网站优化还是不见起色”,对于这个问题,虽然说百度调整了算法,越来越重视网站内容建设,喜欢高质量并且原创的文章,于是许多企业找专门的写手撰写高质量文
深度网
2021/06/24
3350
要想网站长尾关键词排名多,文章优化少不了!
SEO辩论,如何在团队内部可以言之凿凿?
在做SEO的过程中,我们经常会遇到小组讨论,制定下一步决策的时候,但有的时候,每当我们在做相关会议的时候,总是话到嘴边而又嘎然而止,不知道怎么梳理自己的观点,这就在日后自我工作中,增添一定的麻烦,自己的想法很难得到有效的验证。
蝙蝠侠IT
2020/10/26
5790
SEO辩论,如何在团队内部可以言之凿凿?
百度熊掌号: 2018-2020年, 你不容错过的流量红利!
自百家官方号上线到熊掌号落地以来,百度搜索一直在颠覆原有的搜索生态,不断的推陈出新与改革,净化网络环境,扶植优质原创内容,让搜索回归本质,从而适应快速迭代的移动互联网时代,对于百度搜索而言,这是一种挑战,也是一种重生,对于SEO从业者,这也是千载难逢的机遇。
蝙蝠侠IT
2019/07/11
3710
百度熊掌号: 2018-2020年, 你不容错过的流量红利!
SEO人员,如何为博客添加关键词?
如果你对SEO稍微有一定的了解,在创建自己博客之初,你可能早已想好,要为自有的博客添加什么类型的关键词。
蝙蝠侠IT
2020/11/23
5880
SEO人员,如何为博客添加关键词?
SEO网站怎么优化,才能让排名靠前?
随着搜索引擎的发展,SEO行业,同时也在发展,几乎每天都会有影响网站排名的细微因素在改变,对于SEO人员,我们熟知百度搜索引擎原理,但理论与实践,仍然有一定的差别。
蝙蝠侠IT
2019/07/12
9210
SEO网站怎么优化,才能让排名靠前?
推荐阅读
相关推荐
SEO方法论,一检测,三方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验