我正在使用 g2o C++ 优化库来使用加速度计数据优化 GPS 轨迹。
该程序在表示加速度计的位置和方向(四元数的向量部分)的数据点上使用 Levenberg-Marquardt 优化器。唯一的约束是局部参考系中的加速度。
误差测量为加速度计读数与数据点跟踪的路径的局部二阶导数之间的差异 - 从 (a 到 b) 到 (b 到 c) 的速度变化,不考虑方向变化,加上向上加速度抵消重力。
初始路径是在 GPS 读数之间绘制的多边形。
优化器运行了五次梯度下降迭代,并且似乎做出了很好的调整。多边形的角有点圆润。但随后它似乎卡住了,Levenberg 的 lambda 在程序终止之前上升了五次迭代。
但
如果我使用来自陀螺仪的数据进一步限制它,它会做更多的改进。然而,并没有我预期的那么多,而且陀螺仪数据需要人为地高费舍尔信息。
处理整个问题的各个部分不会很快终止。它仅使用加速来进行更多改进。
可能出了什么问题?无法仅通过加速来细化初始估计似乎表明存在严重问题。