502. Google Smartphone Decimeter Challenge 2022 | smartphone-decimeter-2022
在这次比赛中,我尝试了两种不同的方法:
源代码。
基于“RTKLIB 入门”笔记本。
尝试调整不同的配置参数。
保留接收机的周跳标志(slip_mask=3)以及增加信噪比(SNR)和伪距不确定性的权重有所帮助:
stats-errsnr: 0 -> 0.003
stats-errrcv: 0 -> 0.1
stats-errphaseel: 0.003 -> 0
stats-errphase: 0.003 -> 0
最后,RTKLIB 的解算结果通过 https://www.kaggle.com/code/taroz1461/carrier-smoothing-robust-wls-kalman-smoother 笔记本进行了平滑后处理。
尝试在高度角加权和信噪比加权之间进行集成 -> 结果更差。
尝试启用模糊度解算 - 数据噪声大,出现错误固定 -> 没有改善。
尝试不通过多普勒而是通过 TDCP 技术 来估算速度 (estval() 函数),
但经过调试后明白,来自多普勒的速度(estvel() 的结果)很少(仅在大位置方差的情况下)进入 EKF 状态,速度主要来自卡尔曼状态,
没有太多时间/成功修改 RTKLIB EKF 模型来适应这一点。
希望这是一种全局优化模型公式(不同于 EKF),并且可能会有所帮助。
采用了这段代码 https://github.com/weisongwen/GraphGNSSLib。
这种方法通过 RTKLIB 进行预处理,然后通过 Ceres 求解器解决优化问题。
它在这个数据集上不能直接开箱即用:
它依赖于模糊度解算(但根本没有固定解)。
最终使用的因子:
在使用上述因子进行测试后,结果受到异常值的严重影响,
因此尝试通过可切换约束/大的初始残差来移除异常值,取得了一些进展。
此外,在应用了上述所有因子后,生成的轨迹并不平滑,因此针对大加速度增加了加速度约束。并且基于上面列出的笔记本使用卡尔曼平滑器对解算结果进行了后处理。
提交时,我使用了这两种方法的加权平均值。