GPS系统是由24颗连续绕地球运行的卫星组成的系统。并且至少需要4颗卫星来定位地面接收机的位置。
T(地面接收的时间) - T(卫星发送信号时间) = T(信息传输所耗费的时间)
由于卫星信号传输是电磁波传输,速度相当于光速。
此时根据S = V(光速)T(传输时间),可以获得单颗卫星与地面接收机之间理论上的距离。
GPS的定位原理就是在此基础上,运用三边测量法。
假设我现在在二维空间,现在第一颗卫星跟我的距离为R1,那么此时我的位置将在以卫星为圆心,R1为半径的园内某个点。
第二颗卫星与我的距离为R2 ,同理我也在R2形成的圆内
此时我们将地球视作第三个圆,便可以得到具体的位置。
现实中我们生活在三维空间,因此我们与卫星之间形成的距离范围是球体。
如果我们只有两颗卫星进行定位的话,那么形成相交的区域将是个圆
此时需要借助第三颗卫星,才能将位置范围缩小至两个点。
同理我们加入地球作为第四表面,这样便得到了三维空间正确的坐标点。
除了空间距离外,由于卫星的原子钟和我们设备的时钟,可能存在微小的差异,这也会导致定位的误差。假如存在1us的误差,实际定位结果也可能会偏移几百米。为此我们需要第四颗卫星或者是更多的卫星来纠正。
以上是帮助大家理解GPS为什么需要四颗卫星定位。
实际上gps三维定位使用的是(牛顿迭代+最小二乘),三颗星定位,第四颗星纠正星上原子钟与地面终端的时间差。
牛顿迭代法
牛顿迭代法用来求解非线性方程组,其基本思想是从一个初始估计开始,通过函数的切线来逼近函数的根,即用户的位置。在GPS定位中,将所有卫星的伪距观测方程组合起来形成一个非线性方程组,利用牛顿迭代法可以求解出用户的近似位置。
这个公式是泰勒级数展开在一阶近似下的结果,用于线性化非线性方程组。
泰勒级数展开的一般形式是:
对于多变量函数,泰勒级数展开在一阶近似下可以表示为:
接着,我们要将上面的非线性方程组的线性化形式转换为这样的线性方程组形式,我们需要将所有的线性化方程组合并。以下是推导过程:
有了线性方程组后。
由于GPS定位中,我们需要处理带有误差的测量数据,并且希望找到一个最佳估计来最小化这些误差。所以需要通过最小化测量误差来提高定位精度。
我们要从线性方程组过渡到加权最小二乘问题
线性最小二乘问题
在实际应用中,由于测量误差或模型不精确,方程组可能没有精确解。最小二乘法提供了一种寻找最佳解的方法,即使得残差平方和最小。最小二乘解可以通过以下公式计算:
这个解最小化了残差向量 b 的欧几里得范数。
加权最小二乘问题
在加权最小二乘问题中,我们为每个方程分配一个权重,以反映不同方程的相对重要性或精度。权重矩阵
用于反映不同卫星信号的信噪比或几何分布,从而在计算中给予更可靠的测量更高的权重。
是一个对角矩阵,其对角线上的元素是权重
加权最小二乘问题的解可以通过以下公式计算:
为了求解这个加权最小二乘问题,我们可以使用以下公式:
下面回到正题:
GNSS是全球卫星定位系统的统称。、
GPS是其中由美国主导的卫星定位系统。
因此大部分用于无人机上的GPS导航模块,准确来说应该是GNSS全球卫星导航定位模块。它通过接收来自多个卫星系统的信号来计算位置。
该模块的天线是接收卫星信号的地方,芯片用来转化成我们能理解的测量结果。例如经纬度。
GNSS导航模块想要实现精准定位还是有一定难度的。
因为卫星信号在穿过大气层并且被导航模块的天线接收时会受到各种因素的影响
其中包括大气延迟、多径效应等。
为得到更高的定位精度。我们通常采用差分定位技术。
地面站(配置一台GNSS接收机作为基准站)已知精确坐标的位置。
卫星同时向基准站与无人机发送相应的位置测量值。此时基准站与已知坐标进行比较,便可以算出差分值,从而矫正GNSS导航模块的位置精度。
通常差分技术按照数据获取方式的不同。可以分为PPK后处理动态差分定位技术和RTK实时动态差分定位技术。
RTK实时动态差分定位技术
它能够实时将基准站观测到的数据传输到无人机的接收机上
PPK后处理动态差分定位技术
它能够在不同时间进行数据收集及计算。可以离线下处理,相对RTK数据更加稳定可靠。
一些优秀的GNSS定位模块会内置传感器芯片,例如陀螺仪、磁罗盘、加速度计或者气压计。以提升不同环境下的定位精度和安全冗余。
另外由于磁罗盘在测量航向数据时,容易受到周围不稳定电磁环境的干扰,因此抗干扰也是导航模块重要的性能之一。所以部分导航模块开发出双天线测向技术以此来测量航向。