6

我正在使用 GPS 装置和移动计算机来跟踪个别行人的行程。我想实时“清理”传入的 GPS 信号以提高其准确性。此外,事实上,不一定是实时的,我想将个人的 GPS 定位“锁定”到道路网络沿线的位置。有任何技术、资源、算法或现有软件可以在这两个方面提出建议吗?

我已经在考虑信号清理方面的一些事情: - 删除修复哪个 num。卫星数 = 0 - 速度异常高的丢弃修复(例如,600 英里/小时)

在“锁定”街道网络(我听说称为“地图匹配”)方面: - 根据均方根误差锁定到最近的网络边缘 - 当修复远离道路网络时,突出显示这些点并允许用户使用 GUI(例如,Web 浏览器中的 OpenLayers)来拖放到道路网络上

谢谢你的想法!

4

5 回答 5

6

我假设您想“清理”您的数据以消除由不可靠的读数引起的错误峰值。这是一个基本的 dsp 进程。您可以采取多种方法来解决此问题,这取决于您希望它有多聪明。

在基本层面上是的,你可以只寻找非常大的数字,但什么是真正的大数字?是的,600 英里/小时的速度很快,但如果你在协和式飞机上,则不会。当您正在寻找一个“与众不同”的值时,您实际上是在硬编码“普通”。更好的方法是检查过去的数据以确定“普通”是什么,然后寻找偏差。您可能需要考虑在一个小的局部窗口上计算数据的方差,然后查看当前数据的 z 分数是否大于某个阈值,如果是,则将其排除。

于 2008-12-01T09:13:56.690 回答
6

注意:您应该使用 3 作为最小卫星,而不是 0。GPS 需要至少三个源来计算水平位置。我使用的每一个 GPS 在数据流中都包含一个状态标志;以某种方式将少于 3 颗卫星报告为“坏”数据。

您还应该考虑“固定”数据。您将如何处理静止不动一段时间的行人?也许在人行横道上等待或与街头小贩互动?

根据您计划对数据执行的操作,您可能需要抑制这些额外的数据点或将它们平均到单个点或位置。

于 2008-12-01T15:45:10.957 回答
6

您提到这是用于行人跟踪,但您也提到了道路网络。行人可以去很多汽车不能去的地方,事实上,这些地方可能不会出现在你找到的任何“道路网络”地图上。大多数路线图没有公园中的步行道、远足小径等内容。不要假设“越野网络”意味着 GPS 没有得到准确的定位。

于 2008-12-01T16:10:37.443 回答
4

除了 Andrew 的评论之外,您可能还需要考虑干扰因素,例如多径,以及它们如何影响传入的 GPS 数据流,例如 NMEA0183 的 GSA 线中的 HDOP。在我自己的 GPS 控制器软件中,我允许用户针对一系列 QA 相关参数指定拒绝标准。

在这方面,我也倾向于研究移动窗口原则,您可以考虑根据同一窗口中的周围数据拒绝代表峰值的数据。

于 2008-12-01T10:17:39.883 回答
4

阅读 posfix 以查看信号是否有效(如果您解析原始 NMEA 字符串,则在 $GPGGA 语句中的某处)。如果为 0,则忽略该消息。

除此之外,如果您确实需要确保信号非常准确,则可以查看 HDOP 和卫星数量的组合,但在正常情况下,这不是必需的。

当然,对 GPS 信号进行一些健全性检查并没有什么坏处:

  • 纬度在 -90..90 之间;
  • -180..180 之间的经度(或 E..W、N..S、0..90 和 0..180,如果您正在阅读原始 NMEA 字符串);
  • 速度在 0 到 255 之间(对于普通汽车);
  • 与先前测量匹配的距离(基于纬度/经度)与指示的速度大致匹配;
  • 系统时间不大于 x 的时差(除非系统时钟不可信或依赖 GPS 同步:-));

要进行地图匹配,您基本上会遍历您的路段,并检查哪个路段最适合您当前的位置、方向、速度以及可能之前的 gps 测量和匹配。如果您不是在做实时应用程序,或者如果反馈延迟是可以接受的,您甚至可以查看“未来”以查看最有可能的部分。

做好这一切本身就是一门艺术,这里的空间太短,无法深入。通常很难以 100% 的信心确定某人居住在哪个路段。例如,如果有 2 条平行道路与当前位置同样接近,这就是创造性启发式的问题。

于 2008-12-23T03:40:02.917 回答