文章:GICI-LIB: A GNSS/INS/Camera Integrated Navigation Library
作者:Cheng Chi, Xin Zhang, Jiahui Liu, Yulong Sun, Zihao Zhang,and Xingqun Zhan
编辑:点云PCL
代码:https://github.com/chichengcn/gici-open.git
欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。
公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。欢迎各位同学积极分享和交流。
摘要
精确的导航对于自主机器人和智能驾驶车辆是至关重要。近年来,全球导航卫星系统(GNSS)、惯性导航系统(INS)和相机的集成引起了广泛关注,因其在多样化环境中的稳健性和高精度表现出色。在这些系统中,充分利用GNSS的作用是复杂的,因为存在多种不同的公式、误差模型、卫星信号、信号频率和服务类型的选择,这些不同的选择将导致不同的精度、稳健性和使用的依赖性。为了表示GNSS算法的能力,并加速在多传感器融合算法中使用GNSS的开发效率,我们开源了GNSS/INS/相机集成导航库(GICI-LIB),并附带详细的文档和综合的车辆数据集。建立了基于因子图优化的多传感器融合框架,该框架通过充分考虑测量之间的时间和空间相关性,将几乎所有的GNSS测量误差源组合起来。并且图结构设计具有灵活性,便于形成各种集成算法。为了说明该库的作用,我们使用数据集评估了GICI-LIB中的四种基于实时动态定位(RTK)的算法。结果确认了GICI系统在广泛的城市环境中提供连续精确的导航解决方案的潜力。
主要贡献
虽然多年来,视觉惯性导航系统(VINS)因其高精度和低成本而被认为是一种实用解决方案,但在复杂环境下仍然容易出现性能波动,且在长期运行过程中可能出现姿态漂移。将VINS和GINS融合在一起,即GVINS,是显著增强鲁棒性和可用性的有效方法。
这两个系统具有相互补充的作用,在大多数户外环境中,GINS可以提供稳健且全局准确的姿态解,而VINS则可以在GNSS挑战性环境下大大限制姿态漂移速率。有四种典型的GNSS公式:单点定位(SPP)、实时差分(RTD)、实时动态定位(RTK)和精密点定位(PPP)。SPP和RTD是米级精度,而RTK和PPP是厘米级精度。以前,厘米级GNSS通常用于成本不敏感的应用,如测绘和航空。随着高精度GNSS芯片和增强服务的成本降低,厘米级GNSS设备在自动化应用中正在蓬勃发展。通过融合高精度GNSS定位公式,GVINS系统可以在各种环境下提供连续的厘米级解决方案。构建GVINS系统并不困难,这已经被一些研究者完成。然而,充分利用GNSS的作用却是繁琐的。严格来说,存在多种测量公式、误差模型、卫星星座、信号频率和服务类型的选择。这些不同的选项可以显著影响精度、鲁棒性和使用依赖性。通过SPP公式可以获得不精确且脆弱的解决方案,通过多卫星多频率RTK结合观测空间表示(OSR)服务的增强,可以在典型的城市环境中获得精确且稳健的解决方案。在因缺乏参考站而无法使用OSR服务的环境中,通过在几分钟内加入状态空间表示(SSR)服务的增强,仍然可以获得精确的解决方案。
为了证明GNSS算法的能力,并加速在多传感器融合算法中使用GNSS的开发效率,我们提供了GNSS/INS/相机集成导航库(GICI-LIB),并附带详细的文档和综合的车辆数据集。其主要特点如下:
基于因子图优化的多传感器融合框架,实现了几乎所有可能的GNSS松紧集成因子、INS因子、视觉因子和运动约束,以及可靠的初始化、测量稀疏化和异常值拒绝算法。GNSS公式针对四中卫星和全部频率进行实现。
与其他最先进的INS/GNSS/相机系统不同,我们的系统专注于在时间和空间上充分考虑测量之间的时空相关性,从而在空间、传播和地面段中结合几乎所有GNSS的测量误差源。正是因为这一点,我们的系统在大多数开源数据集和评估的INS/GNSS/相机代码库中表现优越。
为了使用方便,该软件采用面向对象编程特性开发,图结构设计使其能够灵活添加传感器。通过简单的实例化,人们可以轻松地形成任何类型的多传感器融合算法,并具有相当的鲁棒性。
提供一个包含所有上述算法所需原始数据的开放式车辆数据集,该数据集包含多条短期和长期轨迹,涵盖了开阔天空、树木繁茂、典型城市和密集城市等不同环境。
内容概述
为了证明对GNSS能力的使用,我们将它们与我们的算法一起总结在表I中。融合类型分为仅GNSS(G),GNSS/惯性导航系统(GI)LC,GI TC,GNSS/惯性导航系统/摄像头(GIC)SS(将GNSS解与VINS解融合),GIC SRR和GIC RRR。频率分为单频(S),双频(D)和多频(M)。星座分为GPS(G),格洛纳斯(R),伽利略(E)和北斗(C)。鲁棒性分为一般(F),良好(G)和卓越(E)。SSR服务分为三个级别:SSR-I包含精确的星历和码偏差,SSR-II包含相位偏差,SSR-III包含局部大气延迟,分别支持PPP,具有模糊解析的PPP(PPP-AR)以及具有局部参考网络增强的PPP(PPP-RTK),我们使用PPP一词来代表GICI-LIB中这三种算法。
GICI-LIB是一个系统级的软件,由多个硬件I/O控制器、数据解码器和编码器以及估计处理器组成。这些节点在多个线程中运行以确保并发性。通过配置由我们的配置文件定义的节点,系统不仅可以用于实时和后处理算法处理,还可以用于流的转换和转换。实时估计数据流中有两种主要的线程类型:流线程和估计器线程。流线程处理数据输入、输出、解码和编码,估计器线程处理从流线程收集到的原始数据,并反馈解决方案。估计器线程由三个线程组成:前端、后端和导出。前端线程处理耗时的预处理任务,在考虑GNSS、惯性导航系统和相机的情况下,前端线程仅处理相机的原始数据,因为只有特征检测和跟踪过程耗时。后端使用因子图优化(FGO)算法进行初始化和优化。其解决方案可以由前端线程使用,以帮助提高特征跟踪的质量。最后,导出线程将根据所需的时间戳整合来自后端线程的数据。整合后的解决方案可以传递给流线程进行硬件输出或文件存储。此外它还可以馈送到其他估计器线程进行松散耦合。作为示例,我们为估计器节点实例化了几种算法,包括SPP、RTD、RTK、PPP、基于SPP的松散耦合(LC)和紧密耦合(TC)GINS,基于SPP的解决方案/原始/原始(SRR)和原始/原始/原始(RRR)GVINS,基于RTK的LC GINS、TC GINS、SSR GVINS和RRR GVINS。
通过定义因子图并将图具体化为最小二乘问题,该问题可以通过任何非线性优化算法来解决。该因子图的设计具有灵活性参见图2。灵活性通过三个特点实现:
1)不同传感器的测量时间戳不需要对齐。
2)新的测量数据可以在任何时刻添加到图中,不一定是在末尾。
3)可以在任何所需的时间点和频率上生成解决方案。通常,即使传感器在硬件上同步,它们仍然在不同的时间点进行测量,导致时间戳不对齐。此外,传感器之间的硬件延迟不同,导致具有较早时间戳的测量在处理具有更近时间戳的测量之后才被接收。在这种情况下,惯性导航系统(INS)用于连接或重新建立状态,而不是进行插值或等待测量,这可能会导致减小精度或增加延迟。
实验
实验配置如图5所示。
我们收集了两种类型的数据集:不同场景下的短期(几分钟)实验和覆盖考虑的挑战性环境不同持续时间的长期(几十分钟)实验。对于短期实验,我们将场景分为4种类型:开阔天空、树木环绕、典型城区和密集城区。对于每个场景,我们呈现2到3条轨迹。这些场景在图6中有所示。
对于长期实验,我们提供了两条在上海市中心收集的轨迹,涵盖了这4种类型的场景。这些轨迹如图7所示。由于OB-GINS、IC-GVINS和VINS-Fusion依赖于GNSS解作为输入,因此它们的工作流程使用由GICI-LIB RTK生成的解进行馈送。此外,IC-GVINS的初始化过程在非固定GNSS状态下常常失败,因此我们调整了IC-GVINS的轨迹起始点,以确保有效的初始化。此外,OB-GINS缺少初始化算法,因此我们使用IC-GVINS的初始化输出作为OB-GINS的初始化,因为它们是同一软件系列的一部分。
通过将算法的实时输出与后处理的GNSS和光纤陀螺IMU融合解进行比较,评估了每条轨迹的绝对姿态误差(APE)。结果总结在表IV中。
图8展示了两条轨迹的APE图表,以展示每种算法的趋势,长期运行的结果表明我们的实现稳定且鲁棒。与其他开源算法相比,我们的算法在位置和旋转估计方面仍然表现出更高的精度。
总结
本文提出了一个GNSS/INS/Camera集成导航库,并发布了一个全面的数据集,以充分利用GNSS算法的能力,阐明了GNSS配方的集成方案和精度等级,通过评估基于RTK的集成算法,展示了如果充分利用其测量能力,GNSS可以在提供精确的融合解决方案方面发挥出非凡且关键的作用,虽然我们的实现是基于基本的GNSS配置,但我们预计探索这些配置之间的关系并改进异常值排除策略将进一步增强性能,我们希望这项工作能够帮助社区进一步探索基于GNSS的导航的潜力。
自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
联系客服