我正在使用GPS装置和移动计算机来跟踪行人的行程。我想实时“清理”输入的GPS信号,以提高其准确性。此外,事实上,不一定是实时的,我想“锁定”个人的GPS修复到道路网络的位置。是否有任何技术,资源,算法或现有软件可以在前面提出建议?
我在信号清洁方面已经考虑过的一些事情: - 删除修复的数量。卫星数量= 0 - 降低速度非常高(例如,600英里/小时)的修复
就“锁定”街道网络而言(我听说称之为“地图匹配”): - 根据均方根误差锁定最近的网络边缘 - 当修补程序远离道路网络时,突出显示这些点并允许用户使用GUI(例如,在Web浏览器中使用OpenLayers)来拖动,捕捉和放下道路网络
感谢您的想法!
答案 0 :(得分:6)
我假设你想要“清理”你的数据,以消除由于狡猾的读数引起的错误尖峰。这是一个基本的dsp过程。你可以采取几种方法,这取决于你想要的聪明程度。
在基本层面是的,你可以只寻找真正大的数字,但是什么是一个非常大的数字?是的600英里每小时很快,但如果你在协调中则不行。虽然您正在寻找一个“与众不同”的价值,但您实际上是硬编码“普通”。更好的方法是检查过去的数据以确定“普通”是什么,然后查找偏差。您可能需要考虑通过一个小的本地窗口计算数据的方差,然后查看当前数据的z得分是否大于某个阈值,如果是,则将其排除。
答案 1 :(得分:6)
一个注意事项:您应该使用3作为最小卫星,而不是0. GPS需要至少三个来源来计算水平位置。我使用的每个GPS都包含数据流中的状态标志;少于3颗卫星在某种程度上被报告为“不良”数据。
您还应该考虑“固定”数据。你会如何处理行人站立一段时间?也许在人行横道上等待或与街头小贩互动?
根据您打算对数据执行的操作,您可能需要压制这些额外的数据点或将它们平均到一个点或位置。
答案 2 :(得分:6)
你提到这是行人跟踪,但你也提到了一个道路网络。行人可以在很多汽车无法行驶的地方旅行,事实上,这些地方可能不会出现在你所发现的“公路网”的任何地图上。大多数路线图都没有像公园,徒步旅行路线等的步行路径。不要认为“越野网”意味着GPS没有得到准确的修复。
答案 3 :(得分:4)
除了安德鲁的评论之外,您可能还需要考虑干扰因素,例如多路径,以及它们如何在您的传入GPS数据流中受到影响,例如: NMEA0183的GSA系列中的HDOP。在我自己的GPS控制器软件中,我允许用户针对一系列QA相关参数指定拒绝标准。
在这方面我也倾向于使用移动窗口原理,在这里您可以考虑在同一窗口中根据周围数据拒绝表示尖峰的数据。
答案 4 :(得分:4)
读取posfix以查看信号是否有效(如果您解析原始NMEA字符串,则在$ GPGGA句子中的某处)。如果为0,则忽略该消息。
除此之外,如果您确实需要确保信号非常准确,那么您可以查看HDOP和卫星数量的组合,但在正常情况下这是不必要的。
当然,对GPS信号进行一些健全性检查并没有什么坏处:
要进行地图匹配,您基本上会遍历您的路段,并检查哪个段最有可能适合您当前的位置,方向,速度以及可能的之前的GPS测量和匹配。 如果您没有进行实时应用程序,或者反馈延迟是可接受的,您甚至可以查看“未来”以查看哪个段最有可能。
正确地做这一切本身就是一门艺术,而这里的空间太短,无法深入探讨。 通常很难以100%的信心决定某人居住的路段。例如,如果有2条平行道路同样接近当前位置,那么这就是创造性启发式问题。