航位推算
航位推算,是从一个你确知的地方出发,把此后所做的每一步移动都累加起来,从而推断自己此刻在哪里。你取定已知的起点,然后追踪自己朝着哪个方向、走了多远,并把这笔账一路往前记:「我从码头出发,以这个速度向北走了十分钟,然后转向东又走了五分钟。」单凭这些片段,你就能在海图上标出自己当前的位置,全程不必看见任何地标,也不必向外界求助。水手们用它跨越大洋长达数百年,远在卫星出现之前,就靠罗盘航向和估计的航速来推定船的位置。
整套方法都依赖于一个脆弱的事实:你从来不去测量自己实际在哪,只去测量自己相对上一次猜测发生了怎样的变化。于是你航向或距离上的每一个误差,都会被永久地烙进估计里,再被带进它之后的所有步骤。罗盘读数差了那么一丝、航速略微高估了一点、有一股没算进去的洋流——这些都不会自行得到纠正,而由于每一个新位置都搭建在上一个之上,这些小错误会不断累积。你走得越久,估计就越偏离真相,就像一句悄悄话,每被转述一次就走样多一点。
尽管有这个缺陷,航位推算却无处不在,因为它有着了不起的自给自足:它完全不需要任何外部信号,只需对自己的航向和运动有所知觉。它是你手机在隧道里 GPS 中断时所用的后备手段,是看不见天空的潜艇的主心骨,也是机器人里程计背后的原理。对付它漂移的标准做法,是定期猛地校准回某个已知的真相——一个认得出来的地标、一次新的 GPS 锁定、一回观星定位——这会把累积的误差一笔勾销,让航位推算从坚实的地基上重新开始。
在一条长隧道里,即便没有卫星信号,你手机的地图仍显示你在沿路前进。从隧道口你最后已知的位置开始,它一直靠速度和方向给你的路径做航位推算——你或许会注意到,等你驶出隧道时,那个蓝点已经偏离道路一点点了。
当外部信号消失时,航位推算让位置估计不至于断掉——但要留意漂移悄悄爬上来。
里程计本质上就是机器人凭自己的运动传感器来做的航位推算。这两个词大量重叠;「航位推算」是更古老、更宽泛的导航概念,而「里程计」通常指机器人版本,即把传感器测得的增量累加起来。