里程计、推算定位与视觉里程计

以下内容翻译自wiki百科。

里程计Odometry):原文链接在此:http://en.wikipedia.org/wiki/Odometry

里程计是一种利用从移动传感器获得的数据来估计物体位置随时间的变化而改变的方法。该方法被用在许多种机器人系统(轮式或者腿式)上面,来估计,而不是确定这些机器人相对于初始位置移动的距离。这种方法对由速度对时间积分来求得位置的估计时所产生的误差十分敏感。快速、精确的数据采集,设备标定以及处理过程对于高效的使用该方法是十分必要的。

假设一个机器人在其轮子或腿关节处配备有旋转编码器等设备,当它向前移动一段时间后,想要知道大致的移动距离,借助旋转编码器,可以测量出轮子旋转的圈数,如果知道了轮子的周长,便可以计算出机器人移动的距离。

假设有一个简单的机器人,配备有两个能够前后移动的轮子,这两个轮子是平行安装的,并且相距机器人的中心的距离是相等的。假如每个电机都配备有一个旋转编码器,我们便可以计算出任意一个轮子向前或向后移动一个单位时,机器人中心实际移动的距离。该单位长度为轮子周长的某一比例值,该比例依赖于编码器的精度。

假设左边的轮子向前移动了一个单位,而右边的轮子保持静止,则右边的轮子可以被看做是旋转轴,而左边的轮子沿顺时针方向移动了一小段圆弧。因为我们定义的单位移动距离的值通常都很小,我们可以粗略的将该段圆弧看做是一条线段。因此,左轮的初始与最终位置点,右轮的位置点就构成一个三角形A。

同时,机器人中心的初始与最终位置点,以及右轮的位置点,也构成了一个三角形B。由于机器人中心到两轮子的距离相等,同时,两三角形共用以右轮位置为顶点的角,故三角形A,B相似。在这种情况下,机器人中心位置的改变量为半个单位长度。机器人转过的角度可以用正弦定理求出。

推算定位dead reckoning):原文链接在此:http://en.wikipedia.org/wiki/Dead_reckoning

在导航系统中,推算定位(DR)是一个借助于先前已知位置,以及估计出的速度随时间的变化量来推导出当前位置的过程。尽管最初的推算定位方法在目前的导航系统中已不再使用,但是,现今流行的惯性导航系统,也是依赖于推算定位来估计物体位置的。

推算定位方法的一个劣势在于其计算出的新的位置值仅仅借助前一步的值推导出来,位置估计的误差和不确定性是累积的,因此,其推导出的值的误差和不确定性随着时间的增加而增长。

推算定位方法也被一些低端的、对任务要求不是非常苛刻,约束(时间、重量)较多的机器人系统所采用。它经常被用来降低自主移动机器人对传感技术的依赖,例如,超声传感器,GPS,线性或者旋转编码器等,这可以大大降低机器人成本,计算复杂度,并能够重复使用。由于板载CPU的计算性能有较大差距,应用环境有所不同,需要推算的距离范围从几毫米到数千米不等,这依赖于机器人的运行时间,移动速度,移动的距离以及其他一些因素。处于这样的原因,许多自主移动机器人都装备有定位传感器,如上面列出的一些。

视觉里程计Visual Odometry):http://en.wikipedia.org/wiki/Visual_odometry

在机器人学与计算机视觉领域,视觉里程计是一个通过分析相关图像序列,来确定机器人位置和朝向的过程。

在导航系统中,里程计(odometry)是一种利用致动器的移动数据来估算机器人位置随时间改变量的方法。例如,测量轮子转动的旋转编码器设备。里程计总是会遇到精度问题,例如轮子的打滑就会导致产生机器人移动的距离与轮子的旋转圈数不一致的问题。当机器人在不光滑的表面运动时,误差是由多种因素混合产生的。由于误差随时间的累积,导致了里程计的读数随着时间的增加,而变得越来越不可靠。

视觉里程计是一种利用连续的图像序列来估计机器人移动距离的方法。视觉里程计增强了机器人在任何表面以任何方式移动时的导航精度。

视觉里程计算法:

大多数现有的视觉里程计算法都是基于以下几个步骤:

1、图像获取:单目照相机、双目照相机或者全向照相机;

2、图像校正:使用一些图像处理技术来去除透镜畸变;

3、特征检测:确定感兴趣的描述符,在帧与帧之间匹配特征并构建光流场;

(1)、使用相关性来度量两幅图像间的一致性,并不进行长时间的特征跟踪;

(2)、特征提取、匹配(Lucas–Kanade method);

(3)、构建光流场;

4、检查光流场向量是否存在潜在的跟踪误差,移除外点;

5、由光流场估计照相机的运动;

(1)、可选方法1:使用卡尔曼滤波进行状态估计;

(2)、可选方法2:查找特征的几何与3D属性,以最小化基于相邻两帧之间的重投影误差的罚函数值。这可以通过数学上的最小化方法或随机采样方法来完成;

6、周期性的重定位跟踪点;


你可能感兴趣的:(machine,vision)