需要准确的并行扫描算法(GPS)指导

时间:2011-11-11 13:18:59

标签: algorithm delphi computational-geometry wgs84

我写了一个delphi程序,生成一个gpx文件,作为通过超轻型飞机进行空中喷射的“穷人导航系统”的输入。

总的来说,它使用gpx文件作为输出产生路径(并行行)。

该路线的引擎基于“Vincenty”算法,该算法适用于任何wgs84计算,但是 我无法获得由Topografix的ExpertGPS(要求)生成的网格的准确性。

我假设在椭圆体上进行2D计算:

  • 1)从开始rtept(路线点)开始,计算给定轴承和任意距离(条带长度)的下一个rtept。

  • 2)计算相应于前一个方位(90°转弯)和另一个任意距离(刈幅距离)的下一个rtept。

  • 3)重做1)以最后一个rtept作为起点,但方向相反,依此类推。

它出了什么问题?

2 个答案:

答案 0 :(得分:2)

您没有描述Vincenty的地球椭球模型的Pascal实现,因此以下是推测:

  1. 该模型利用了许多几何触发功能--ATAN2, COS,SIN等取决于您是否使用内部Delphi功能 或者你自己的版本,有可能缺乏精确性 在计算中。你所使用的pi值的精确度 计算可能会影响您所需的精度。
  2. 浮点运算会导致小数位错误。它会 无论你使用单人,双人还是真人,都会有所作为。一世 相信一些内部Delphi功能已经改变了 不同的版本,所以你可能是Delphi的版本 使用会影响内部功能的实现方式。
  3. 如果准确实施,Vincenty的公式应该是 精确到0.5mm以内。惊人的准确性如果有四舍五入 Delphi实现中的错误或缺乏精确性,位置 错误可能会大得多。
  4. 考虑GPS信息的准确性。取决于如何 GPS接收器在任何时候都在使用许多卫星, 位置信息的准确性发生变化。错误 可以达到50英尺或更高的数量级。另外,刷新 GPS接收器上的位置信息不一定是 瞬间;因此,如果条带“转”发生得很快,那么你 必须确保GPS在转折点更新。
  5. 你计算模式的程序似乎合理,所以看 在你的Delphi代码中实现Vincenty的算法。
  6. 此列表并非详尽无遗,我想其他人可以改进它 大幅提升。我提到的是基于我对GPS和GPS的经验 各种版本的Delphi以及我能想到的最重要的东西。
  7. 你可能尝试的是比较你的计算 使用你的算法实现的距离/方位 互联网上提供的示例。有几个在线 计算器。如果您没有去过那里,那么 Aviation Formulary 是寻找其他导航技巧示例的绝佳场所。 http://williams.best.vwh.net/avform.htm。比较会 让您对Delphi的精确度有信心 使用数据计算的Vincenty算法的实现 数学家。简单地说,您对Vincenty的实施可能不是 精确。然后,错误可能在其他地方。

答案 1 :(得分:1)

I am doing farm GPS guidance  similar  for ground rig just with Android. Great for second tractor to help follow previous A B tracks especially  when they disappear  for a bit .

从一天到下一天的GPS精确度重复能力将提供更大的距离。昂贵的系统使用dGPS2cm-10cm.5-30米不同dGPS。简单的解决方案是在已知位置重新校准。更便宜的灯条使用这种方法。

漂移如上所述,除了与工作期间的移动有关。大多数不明显<20cm 3小时。很少能跳1-2米。我认为卫星连接或断开时。再次在已知坐标处重新校准,即。喷雾填充点

GPS准确度。大多数手机更新速度1hz。 3?修复之间的秒数,例如50km / hr,修复之间的距离为41.66m。在地面钻机18公里小时,但在第一次运行后将成为轨道。尝试蓝牙GPS 10hz检查更新速度,如上所述快速转换问题。

输入的准确性以及您的指导是否使用dGPS将产生巨大的差异。

一旦你离开你的线路,说100米处的5米直到下一点,然后在50米处仍然是2.5米,除非你的指导带你回到路线而不是下一个坐标。

我没有使用Vincenty,因为我可以手动“撞”到线上超过1公里,差距<30厘米根据我所看到的唯一参考但是我得到2点并且创造了平行点。

希望这些想法能够帮助您实现目标。