VIN与GNSS融合的必要性:
VIN系统只工作在局部坐标系下,x、y、z、yaw不可观,里程计存在不可避免的漂移
而GNSS系统可提供无漂移的全局定位
VIN与GNSS融合的难点:
- 不同于cmaera与imu此类的外参标定,GNSS坐标与VIN坐标系只能在线标定
- GNSS 米级定位精度为米级且有多种误差来源存在于GNSS的信号传播中,VIN在短距离定位精度厘米级,因此融合定位的精度容易受到GNSS测量噪声的影响
- 纯自旋或卫星失锁容易造成退化,室内室外间移动时有卫星信号丢失和卫星信号逐渐获取的情况
解决方案概述
GVINS:基于非线性优化系统,融合GNSS原始数据(也就是解码伪距和Doppler 频移)和VIN以实现准确且无漂移的 状态估计
- 全局和局部坐标的4自由度标定以coarse-to-fine方式:先初大致始化再逐步优化
- 为解决GNSS原始数据的噪声问题,所有的GNSS约束均被添加到概率因子图中
- 退化情况得到处理以保证鲁棒性
- 即使在复杂环境中也可提供局部平滑、全局一致性的状态估计
异常的若干种情况
GVINS视频中测试了港科大校园及城市环境,总结有以下几种异常的情况
- GNSS异常
- 高架桥
- 完全室内
- 交通指示牌
- 高楼群
- 图像异常
- 白墙面+强光照,过亮环境提取不到稳定的特征点
- 黑暗环境
- 高速路高动态环境
补充:
- 树木遮挡对gnss信号影响程度较小
- 多数时间下下gnss信号可靠使用,主要是高架桥、隧道、信号牌、高楼群会出现不同程度异常
坐标系定义
ECEF: 中心为地球质心,Xe-Ye平面与赤道平面相重叠,Ze垂直于赤道平面指向地理北极
ENU:东北天坐标系,顾名思义
ECI:不随着地球旋转,GVINS中设定为接收到GNSS信号时将ECEF固定时的坐标系
GNSS基础知识
-
信号组成
以GPS L1C信号为例,最终传输信号由三层组合(导航信息、PRN码、载波信号),其中导航信息含轨道数据(也就是星历)、钟差、电力层延迟系数、以及其他卫星状态信息;
导航信息与PRN码异或后再调制到高频载波信号中,即得到了传输信号;
接收到传输信号后,通过测量发送端与接收端频率的差异可以确定Doppler频移,通过PRN码的位移(也表征着传输时间)可以确定伪距 -
伪距测量
发送与接收端的伪距(pseudorange)的测量值=PRN码的ToF x 光速测量误差来源有
-
卫星自身引起的误差
星历对于天体建模的误差导致轨道数据的误差
有瑕疵的原子钟 -
信号传播过程引起的误差
大气层中电离层、对流层导致光速变化
多路径误差(由发射器到接收仪,经由不同长度两路径的无线电波间互相干扰形成定位误差) -
接受机引起的误差
接受机的本地时间有误差
-
考虑综上3种误差,建模型伪距的测量模型如下:
KaTeX parse error: No such environment: align* at position 132: … ~\\~\\ \begin{̲a̲l̲i̲g̲n̲*̲}̲ &\tilde{P_r^s}…
(其中对流层误差、电离层误差、多源路径误差均以单位长度表达乘光速来折算)
- 多普勒测量
多普勒频移是测量信号接收端与发送的频率的差异,反映了沿信号传播路径上接收器与卫星的相对运动 (波在波源移向观察者时接收频率变高,而在波源远离观察者时接收频率变低),通常情况下多普勒频移的准确度高于伪距的准确
建模如下:
KaTeX parse error: No such environment: align* at position 131: … ~\\~\\ \begin{̲a̲l̲i̲g̲n̲*̲}̲ & \Delta \tild…
- SPP算法
Single Point Positioning 利用伪距信息确定三自由度全局位置,需要N+3颗卫星(至少4颗)
4颗卫星的伪距公式去解方程
参考:
泡泡机器人GVINS解读