2

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

总的来说,它使用 gpx 文件作为输出生成路线(平行条带)。

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

我假设在 ellipsoïd 上进行 2D 计算:

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

  • 2) 分别计算与前一个方位(90° 转)和另一个任意距离(条带距离)相关的下一个 rtept。

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

它出什么问题了 ?

4

2 回答 2

2

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

  1. 该模型使用了许多几何三角函数——ATAN2、COS、SIN 等。根据您使用的是内部 Delphi 函数还是您自己的版本,计算可能会缺乏精度。计算中使用的 pi 值的精度可能会影响您所需的精度。
  2. 浮点运算会导致小数位错误。无论您使用单、双还是实数,都会有所不同。我相信 Delphi 的一些内部函数已经随着不同的版本而改变,所以您使用的 Delphi 版本可能会影响内部函数的实现方式。
  3. 如果实施得当,文森蒂的公式应该可以精确到 0.5mm 以内。惊人的准确性。如果您的 Delphi 实现中存在舍入误差或缺乏精度,则位置误差可能会大得多。
  4. 考虑 GPS 信息的准确性。根据 GPS 接收器在任何时候使用多少颗卫星,位置信息的准确性会发生变化。大约 50 英尺或更多的误差是可能的。此外,GPS 接收器上位置信息的刷新不一定是瞬时的;因此,如果条带“转弯”迅速发生,您必须确保 GPS 已在转弯点更新。
  5. 您计算模式的过程似乎是合理的,因此请查看您在 Delphi 代码中对 Vincenty 算法的实现。
  6. 这个列表并不详尽,我想其他人可以大大改进它。我提到的是基于我对 GPS 和各种版本的 Delphi 的经验以及我能从脑海中回想起的内容。
  7. 您可能会尝试将使用您的算法实现的距离/方位计算与 Internet 上提供的示例进行比较。有几个在线计算器。如果您还没有去过那里,Aviation Formulary 是寻找其他导航技巧示例的好地方。 http://williams.best.vwh.net/avform.htm 。比较将使您对 Vincenty 算法的 Delphi 实现与数学家计算的数据的精度有信心。简单地说,您对 Vincenty 的实现可能并不精确。再说一次,错误可能在其他地方。
于 2011-11-11T22:49:46.453 回答
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 accuracy repeat ability from one day to next will give larger distance. Expensive system's use dGPS2cm-10cm.5-30metres different without dGPS. Simple solution is recalibrate at known location. Cheaper light bars use this method.

Drift As above except relates to movement during job. Mostly unnoticeable <20cm 3hrs. Can jump 1-2metres rarely. I think when satellite connect or disconnect. Again recalibrate regularly at known coordinates ,i.e. spray fill point

GPS accuracy. Most phone update speed 1hz. 3? seconds between fixes at say 50km/hr , 41.66m between fixes. On ground rig 18km hrs but will be tracks after first run. Try a Bluetooth GPS 10hz check update speed and as mentioned fast turns a problem.

Accuracy of inputs and whether your guidance uses dGPS will make huge difference.

Once you are off your line say 5 metres at 100metres till next point, then at 50 metres your still 2.5 metres off unless your guidance takes you back to the route not the next coordinates.

I am not using Vincenty as I can 'bump'back onto line manually and over 1km across difference <30cm according to only reference I saw however I am taking 2 points and create parrallel points across.

Hope these ideas help your situation.

于 2013-05-22T23:00:45.263 回答