解答——为什么自己编的两帧之间视觉里程计结果会如此得差呢?

3D点集的精度

上一篇博客中,我提出了疑问:为什么自己编的视觉里程计效果很差呢?为了解答这个问题,我们首先来思考在程序第4步3D点集获取之后,你得到的3D点集的精度到底如何呢。假设上一帧的3D点集是无误差的,我们将其进行这两帧之间的欧式变换,得到当前帧的3D点集的真值。而 当前帧的3D点集的误差就等于当前帧3D点集的测量值减去当前帧3D点集的真值 !通过matlab绘制其误差图像如下:
在这里插入图片描述

图1 各个坐标轴之间的误差

在这里插入图片描述

图2 总的误差

由图1我们知道:3D点集的X坐标值的误差在±2米之间,Y坐标值的误差在-2米到1米之间,Z坐标值的误差在±20米之间。由图2我们知道:3D特征点的位置误差在0米到20米之间。由此,可以得知,由程序第4步得到的3D点集的精度并不高,误差达到米级。如果仅用这些3D点集来估计旋转矩阵 R R R和平移向量 t t t的话,得到的结果自然而然是十分差的!而SLAM系统中通过后端优化、建图和回环检测等步骤对视觉里程计的输出进行优化,以得到一个较好的旋转矩阵 R R R和平移向量 t t t的估计。

RANSAC阈值

程序第5步RANSAC中,我设置的RANSAC阈值为0.1米,由图1和图2可知,这样的设置是十分不合理的!由图2可知,3D点集的总的误差显然大部分分布在3.5米以下,如果设置其值为0.1米,则更加扩大了 R R R t t t的误差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YMWM_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值