447. Google Smartphone Decimeter Challenge | google-smartphone-decimeter-challenge
祝贺所有的获奖者,非常感谢主办方举办了如此有趣的比赛!在这里,我想分享我们团队中我负责部分的解决方案。
我花了一个月的时间学习GNSS(全球导航卫星系统),并开发了自己的定位程序。在我的程序中,我尝试了以下想法:
然而,大多数想法在随后的基于优化的平滑处理后变得无效。也许唯一实质性的改进是基于加速增量范围的载波平滑。
基于加速度、陀螺仪和地磁传感器,我估算了车辆的方向和加速度,并将加速度和横向速度项添加到后续优化的成本函数中。在引入速度估算之后,这个想法可能效果甚微。
通过最小二乘法从伪距变化率估算了车辆速度,并将其用于后续的基于优化的平滑处理。这将公共排行榜的成绩提高了约1米。
这部分是我解决方案的核心。
首先,车辆动力学由以下状态方程表示。

其中 \( \phi \) 和 \( \psi \) 分别是纬度和经度。
然后,通过将各时刻的状态 \( X \) 和输入(加加速度,jerks) \( U \) 垂直排列,状态转换的等式约束可以描述如下:
\[ A X + B U = 0 \]
此外,通过基于埃尔米特插值根据观测时间确定观测矩阵 \( C \),可以将各观测时刻纬度和经度的垂直序列向量 \( Y \) 写成如下形式:
\[ Y = C X \]
优化评价函数 \( J \) 设为加加速度 \( U \) 的平方和与位置估算误差之和,如下所示:
\[ J = U^T R U + (\hat{Y} - C X)^T L (\hat{Y} - C X) \]
最后,位置估算被公式化为以下二次规划问题。

基于这种方法,可以通过向成本函数添加速度误差、加速度误差、与横向速度相关的成本等来整合各种信息。
重要的一点是,通过同时使用一次驾驶数据中所有智能手机的位置来执行上述优化。这种方法明显比对每部智能手机进行估算然后计算平均值的方法更准确。
此过程仅应用于SJC/市中心区域。
由于智能手机放置在车辆内,我认为多路径效应会不对称地出现,并且定位结果会相对于车辆方向产生偏差。基于这个想法,我们团队增加了一个根据车辆行驶方向校正位置的过程。该方法有助于提高CV(交叉验证)和公共排行榜的成绩,但未能提高私人排行榜的分数。
在上一次室内定位比赛中,由于后期处理验证不佳,我的团队未能在比赛结束时实施诸如离散优化之类的 drastic 改进想法。在这次比赛中,我尝试通过在本地完成所有参数调整和验证来最大限度地减少提交次数。结果,即使发生排名变动,我们团队仍能保持在金牌区。