0. 简介

之前我们看了许多VIO或者LIO的工作,而我们也需要关注在整个流程中GNss的作用,我们知道GNss自主系统提供全球参考定位的非常流行的手段之一。然而,信号反射与建筑物遮挡导致GNss定位性能在城市峡谷中受到很大挑战。鉴于GNss测量高度依赖环境且与时间有关,传统的基于滤波的GNss定位方法无法同时探索历史测量之间的时间相关性。因此,基于滤波的估计器对突的异常测量值很敏感。本文《Towards Robust GNss Positioning and Real-time Kinematic Using Factor Graph Optimization》提出了一种基于因子图的GNss定位与实时差分定位(RTK)公式。公式化的因子图框架有效地探索了伪距、载波相位和多普勒测量的时间相关性,并导致GNss接收机的非最小化状态估计。相关代码也在Github上完成了开源。

[video(video-pmTPyHUc-1668063422575)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=976075078)(image-https://img-blog.csdnimg.cn/img_convert/e1fdc43c47eff96b334b10738b5df41f.jpeg)(title-Towards Robust GNss Positioning and Real-time Kinematic in ICRA 2021)]

1. 文章贡献

EKF这套方法在在空旷场地高效且成熟,因为其估计是依据GNss和RTK的主导,但是在高楼林立的城市则效果不好(多路径效应、NLOs建筑物反射及遮挡)。针对上诉问题的前人提出3D地图辅助定位、3D激光雷达辅助定位、视觉辅助定位等解决办法,但是这些方法依赖于3D地图信息或者需要额外添加传感器。因子图优化方法近年来成了主流,且效果优于EKF,对于[22]文章提出的FGO优化方法,仅考虑了伪距,随着[23-25]优化方法的提出,消除了NLOs(建筑物反射及遮挡)的影响。
针对上诉EKF对于高楼林立的城市问题和前人优化方法的研究。对于GNss定位,利用FGO将伪距和多普勒测量值进行融合的同时,还利用历史测量值来完成状态更新。对于GNss-RTK定位, DD伪距因子和DD载波相位因子会使用FGO进行集成,其中使用多普勒测量估计速度连接状态。本文提出的创新方法:

  1. 提出了一种基于FGO的GNss和RTK定位公式。同时,其他传感器测量,如激光雷达里程计,可以很容易地集成到框架中。

  2. 使用在香港城市峡谷中收集的具有挑战性的数据集评估了该框架的性能。结果表明,基于FGO的GNss定位优于基于EKF的方法。

  3. 拟议框架的源代码可在线获得。同时,还给算法开发和评测提供了数据集。这是第一个使用FGO的GNss定位和GNss- rtk的开源实现。

2. 文中符号

为了使所提出的代码pipeline逻辑清晰,本文的其余部分定义了以下主要符号。需要注意的是,GNss接收机的状态和卫星的位置均表示在地球中心,地球固定(ECEF)框架内。

a) 从卫星s在给定纪元t接收到的伪距测量值表示为\rho_{r,t}^s。下标r表示GNss接收器。上标s表示卫星的索引。

b) 从s卫星接收到的给定纪元t的多普勒测量表示为d_{r,t}^s

c) 从卫星s在给定纪元t接收到的载波相位测量表示为\psi_{r,t}^s

d) 卫星的位置s在给定时期t表示为p_t^s=(p_{t,x}^s,p_{t,y}^s,p_{t,z}^s)^T

e)卫星的速度s在给定时期t表示为v_t^s=(v_{t,x}^s,v_{t,y}^s,v_{t,z}^s)^T

f) GNss接收机的位置在一个给定时期t表示为p_{r,t}=(p_{r,t,x},p_{r,t,y},p_{r,t,z})^T

g) GNss接收机的速度在给定时期t表示为v_{r,t}=(v_{r,t,x},v_{r,t,y},v_{r,t,z})^T

h) GNss接收机在给定历元t时的钟差表示为\delta_{r,t},单位为米。\delta_{r,t}^s为卫星钟差(米)。基地(引用)站的位置表示为p_b=(p_{b,x},p_{b,y},p_{b,z})^T。变量\rho_{b,t}^s\phi_{b,t}^s表示参考站在时间t从卫星s接收到的载波相位的伪距和距离测量。

3. 详细内容

下图为整个系统的流程图,我们可以看到:

  1. 输入信号:GNss接收器测量值(伪距、多普勒、载波相位)和基站观测信号;

  2. GNss定位:优化模型—多普勒速度因子和伪距因子;

  3. RTK定位:优化模型—DD伪距因子、DD载波相位因子、多普勒速度因子;

3.1 伪距公式

下面我们来看一下整体的逻辑结构,对于GNss接收机的测量,每个伪距测量\rho_{r,t}^s表示为[29]。

其中r_{r、t}^s为卫星与GNss接收机之间的几何距离。I_{r,t}^s表示电离层延迟距离;T_{r、t}^s表示对流层延迟距离。\varepsilon_{r,t}^s表示由多径效应、NLOs接收、接收机噪声、天线相位相关噪声引起的误差。本文使用的卫星系统包括全球定位系统(GPs)和北斗。此外,我们遵循RTKLIB[4]中使用的方法来模拟大气效应(I_{r,t}^sT_{r,t}^s)。

3.2 多普勒频移公式

给定每个卫星在一个时间t的多普勒测量(d_{r,t}^1,d_{r,t}^2,…),GNss接收机的速度(v_{r,t})可以使用Ls方法[30]计算。假设速度的状态x_t^d如下所示:

其中v_{r、t}表示GNss接收机的速度。变量\delta_{r,t}表示接收机时钟漂移。以t为一个时间戳的距离速率测量向量(y_{r,t}^d)表示如下:

其中\lambda表示卫星信号的载波波长,d_{r,t}^s表示多普勒测量。连接状态和多普勒测量值的观测函数ℎ^d(∗)表示如下:

其中上标m表示卫星总数,变量ω_{r,t}^d表示与y_{r、t}^d相关的噪声。变量rr_{r,t}^m表示预期范围率。变量\deltȧ_{r,t}\deltȧ_{r,t}^m表示接收机和卫星时钟偏差漂移。观察函数ℎ^d(∗)的雅可比矩阵H_t^d表示为:

其中,驾驶员‖*‖被用来计算给定卫星与GNss接收机之间的距离。卫星s的期望距离率rr_{r,t}^s也可以计算如下:

其中,变量w_{earth}表示地球自转的角速度[4]。变量c_L表示光速。变量e_{r,t}^{s,Los}表示连接GNss接收机和卫星的视距矢量(见式(5))。因此,可以根据式(4)、(5)通过Ls[4]估计GNss接收机的速度(v_{r,t})

提出的求解GNss定位的因子图的图结构如图2所示。下标n表示在FGO中考虑的测量的总纪元。因子图中的每个状态都使用多普勒速度因子连接起来。GNSS接收机状态表示如下:

其中,变量X表示GNss接收机从第一个epoch到当前n的状态集合。x_{r,t}表示GNss接收机在epoch t的状态,包括位置(p_{r,t}),速度(v_{r,t})和接收机时钟偏差(\delta_{r,t})。

3.3 伪距因子

GNss伪距观测模型从一个给定的卫星s测量如下:

其中变量ω_{r,t}^s表示与\rho_{r,t}^s相关的噪声。因此,对于给定的卫星测量\rho_{r,t}^s,我们可以得到如下的误差函数(e_{r,t}^s):

其中\sum_{r,t}^s为协方差矩阵。我们在[31]的基础上,根据卫星仰角和信噪比(sNR)计算\sum_{r、t}^s。速度(v_{r,t})的观测模型如下:

3.4 多普勒速度因子

其中z_{r,t}^{DV}表示由(2)中的估计给出的速度测量。变量w_{r,t}^{DV}表示与速度测量相关的噪声。变量\delta t表示时间戳t和时间戳t+ 1之间的时间差。因此,我们可以得到给定速度测量v_{r,t}^{DV}的误差函数(e_{r,t}^{DV}),如下所示:

其中\sum_{r,t}^{DV}为协方差矩阵。因此,利用FGO进行GNSS定位的目标函数可表示为:

变量X∗表示状态集的最优估计,可以通过求解目标函数(13)来估计。

上面的讲述了基于因子图优化的GNss定位,剩下的篇幅就是对RTK的FGO方法进行介绍,也分为载波相位公式(公式14处)、差分伪距公式(公式15-20处)、多普勒频移公式(同GNss部分)、差分伪距残差(公式21处)、差分载波相位公式(公式22、23处)、差分载波相位残差(公式24处)、优化模型(公式25处)。

4. 参考链接

https://zhuanlan.zhihu.com/p/455119382

https://mp.weixin.qq.com/s/YvJoUY3gJsJTyPjb7ssc0Q