Accurate parallel swathing algorithm for (GPS) guidance needed

久未见 提交于 2019-12-24 01:58:09

问题


I wrote a delphi program generating a gpx file as input for a "poor man's guidance system" for aerial spray by means of ultralight plane.

By and large, it produces route (parallel swaths) using gpx file as output.

The route's engine is based on the "Vincenty" algorithm which works fine for any wgs84 computation but I can't get the accuracy of grid generated by ExpertGPS of Topografix (requirement).

I assume a 2D computation on the ellipsoïd :

  • 1) From the start rtept (route point), compute the next rtept given a bearing and an arbitrary distance (swath length).

  • 2) Compute the next rtept respective respective to previous bearing (90° turn) and another arbitrary distance (swath distance).

  • 3) Redo 1) with the last rtept as starting point but in the opposite direction, and so on.

What's wrong with it ?


回答1:


You do not describe your Pascal implementation of Vincenty's earth ellipsoid model so the following is speculation:

  1. The model makes use of numerous geometrical trig functions-- ATAN2, COS, SIN etc. Depending whether you use internal Delphi functions or your own versions, there is the possibility of lack of precision in calculations. The precision in the value of pi used in your calculations could affect the precision you require.
  2. Floating point arithmetic can cause decimal place errors. It will make a difference whether you use single, double or real. I believe some of the internal Delphi functions have changed with different versions so possibly the version of Delphi you are using will affect how the internal function is implemented.
  3. If implemented accurately, Vincenty’s formula is supposed to be accurate to within 0.5mm. Amazing accuracy. If there are rounding errors or lack of precision in your Delphi implemention, the positional errors can be significantly larger.
  4. Consider the accuracy of your GPS information. Depending on how many satellites are being used by the GPS receiver at any one time, the accuracy of the positional information changes. Errors on the order of 50 feet or more is possible. Additionally, the refresh of positional information on the GPS receiver is not necessarily instantaneous; therefore if the swath 'turns' occur rapidly, you will have to ensure the GPS has updated at the turning point.
  5. Your procedure to calculate the pattern seems reasonable so look at your implementation of Vincenty's algorithm in your Delphi code.
  6. This list is not exhaustive, I imagine others can improve it dramatically. What I mention is based on my experience with GPS and various versions of Delphi and what I could recall off the top of my head.
  7. Something you might try is compare your calculations of distance/bearing using your implementation of the algorithm with examples provided on the Internet. There are several online calculators. If you have not been there, the Aviation Formulary is an excellent place to find examples of other navigational tricks. http://williams.best.vwh.net/avform.htm . A comparison will allow you to gain confidence in the precision of the Delphi implementation of Vincenty's algorithm with data calculated by mathematicians. Simply, your implementation of Vincenty may not be precise. Then again, the error may be elsewhere.



回答2:


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.



来源:https://stackoverflow.com/questions/8094547/accurate-parallel-swathing-algorithm-for-gps-guidance-needed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!