【插曲01】为什么需要四颗卫星才能定位
关于什么是GPS我们就不赘述了,可以参考《【04】无人驾驶的定位(Localization)》一文。今天我们来讲讲GPS定位为什么需要4颗近地卫星才行,而不是3颗。
我们先来看一个数学问题,从数学逻辑上来讲,我们知道卫星到地面某点的距离,以该距离为半径,以卫星位置为球心画球,此时需要三个卫星就可以得到一个交点,如下图所示:
此时我们就可以得到一个交点,这个交点就是所谓地面某点的坐标。这个逻辑映射到GPS坐标上我们可以理解,是不是三个卫星就可以定位出GPS接收器的当前位置,但其实工程问题远比数据问题要复杂,通常GPS的定位是需要四颗卫星才能实现定位的,那下边我们就展开讲解一下为什么需要四颗卫星才能定位。
我们先来明确一下,卫星的位置、卫星信号发送时间这些信息都是已知的,这是因为卫星上有高精度的时钟,卫星星历也能准确的计算卫星的坐标。在这个大前提下,我们来看一个例子:
假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间为ti,光速为c,再加上接以下三个方程式:
就能求得x、y、z,从而得到接收器的坐标。但是存在一个问题,ti这个时间是不准确的,假设现在标准时间是9:00,GPS接收器认为自己的时间是9:01,卫星认为自己的时间是9:02,卫星到GPS接收器的时间是3分钟,卫星此时发送了一条“我在9:02发送了一个信号”,GPS接收机在三分钟后,也就是GPS接收器时间9:04收到了这条信息,这时候GPS接收机会认为仅仅花费了4-2=2分钟,这样2分钟乘以光速与3分钟乘以光速相比就得到了一个巨大的误差,这种误差是不允许发生的,那么这时候,如果想得到更精确的时间,就需要引入标准时间,于是方程就变成了:
t0为GPS接收器时间,ti为卫星时间,T0为GPS接收机钟差,Ti为卫星的钟差。(钟差即设备时间-标准时间)
在这一组公式中,卫星坐标、光速、卫星钟差是已知的(卫星钟差可以根据卫星控制器获得),而x、y、z及T0是未知的,这样就需要第四个卫星的引入组成四个公式才能算出四个未知数的具体值。
当然了还有一个思路就是在GPS接收器上也安装类似卫星的高精度时钟来保证时间统一,但是这个成本其实是非常大的,所以通常的解决方法就是再引入一颗卫星来解决这个问题。