定义

里程计(Odometry)

使用运动传感器随着时间变化估计位置变化。对于有腿或者有轮子的机器人来说,估计当前相对于起始位置的位置。这种方式对于误差非常敏感,因为是根据速度测量得到的。在大多数情况下,为了有效地使用定位法,需要快速和准确的数据收集、仪器校准和处理。

例子

假设一个机器人在其车轮或腿部关节上有旋转编码器。它向前开了一段时间,然后想知道它已经走了多远。它可以测量车轮旋转了多远,如果它知道其车轮的周长,就可以计算出距离。

火车运行也是里程计的频繁使用者。通常情况下,火车通过轨道上的固定传感器获得绝对位置,而里程计则用于计算火车在传感器之间时的相对位置。

假设一个简单的机器人有两个轮子,它们都可以向前或向后移动,而且它们的位置相互平行,与机器人的中心等距离。此外,假设每个电机都有一个旋转编码器,因此可以确定任何一个轮子是否已经沿着地面向前或向后走了一个 “单位”。这个单位是车轮的周长与编码器的分辨率之比。

如果左轮向前移动一个单位,而右轮保持静止,那么右轮作为一个支点,而左轮在顺时针方向描画一个圆弧。由于一个人的距离单位通常是相当小的,我们可以通过假设这个弧线是一条线来进行近似。因此,左轮的原始位置、左轮的最终位置和右轮的位置构成一个三角形,我们可以称之为A。

另外,中心的原始位置、中心的最终位置和右轮的位置形成一个三角形,人们可以称之为B。由于机器人的中心与任何一个轮子都是等距的,并且由于它们共享右轮形成的角度,三角形A和B是相似的三角形。在这种情况下,机器人中心位置变化的幅度是一个单位的一半。这个变化的角度可以用正弦律来确定。

航位推算(dead reckoning)

航迹(trajectory)

定义

在导航中,航位推算是通过使用先前确定的位置或定点来计算一些运动物体的当前位置,然后结合对速度、航向和经过的时间的估计来计算的过程。

航位推算会有累积误差。提供准确位置信息的导航辅助工具的进步,特别是使用全球定位系统的卫星导航,已经使人类的简单航位推算在大多数情况下过时。然而,提供非常精确的方向信息的使用航位推算的惯性导航系统,应用非常广泛。

误差

虽然航位推算可以提供现有的关于当前位置的最佳信息,而不需要什么计算或分析,但它有很大的近似误差。为了获得精确的位置信息,速度和方向都必须在行驶过程中随时准确知道。最值得注意的是,航位推算没有考虑到在流体介质中行驶时的方向漂移。这些误差在更远的距离上往往会加剧,使航位推算在长距离路途上导航困难。

例如,如果位移是由轮子的旋转次数来测量的,那么,也许是由于打滑或表面不规则造成的实际和假定的每轮行走距离之间的任何差异,都将是一个误差的来源。由于每次对位置的估计都是相对于前一次的,所以误差会随着时间的推移而累积,或者说复合。

通过使用其他更可靠的方法,在旅途中获得一个新的定位,可以大大增加航位推算的准确性。例如,如果一个人在能见度低的陆地上航行,那么航位推算可以用来接近一个地标的已知位置,以便能够看到它,然后再走到地标本身–提供一个精确的已知起点–然后再次出发。

模型

参考

https://en.wikipedia.org/wiki/Odometry > https://en.wikipedia.org/wiki/Dead_reckoning