Quest for the perfect flight path...

After some decent results described in my previous post regarding PID tuning for high winds:, I wanted to see what it would take to get the best possible flight path with the least amount of flight planning possible. The end result was a three waypoint 90degree corner, as shown below.



The problem of course is wind... The above path was with no wind whatsoever, as soon as high winds are added the entire thing falls apart completely, as the plane often missed the last waypoint in the downwind turns and has to circle back.


I figured that if I could get a near perfect flight path with just three waypoints on each corner, what if I went back to using a single waypoint, but simply increased the waypoint radius such that the plane had enough room to make a perfect turn. In theory this should at least be flyable in high winds without having to circle back to hit any of the waypoints...


Unfortunately this failed as well, due to what I think is the Xtrack entry angle, and possibly a bug, or at least odd behavior from my understanding.


It appears that the plane always tries to approach the path at the Xtrack entry angle after a turn, but it also always overshoots the track by a similar angle then has to correct itself. I created the following path by starting with a 90degree Xtrack entry angle at waypoint #2, then cutting that in half for each subsequent waypoint until waypoint #5 where it was 11degrees:

I can understand some overshoot after waypoint #2 (90degree entry angle), and even #3 (45degree), but #4 (22.5degree) makes no sense to me. Its such a shallow angle there should be no problem whatsoever straightening out at the track and following it right on, especially with a Xtrack gain of 225 as shown below, but Ardupilot is still pointing the plane *off* the track (based on the green line) until its well past, then it finally corrects and gets it right.



Can anyone explain why the Xtrack entry angle causes the track overshoot after every waypoint, regardless of how low the entry angle is set? Of course the major problem here is that if there is any wind at all this angle needs to be set sufficiently high enough for it to correct for the wind, otherwise the plane is hopelessly lost. 


Something seems strange to me...



Views: 2105

Comment by Michael Oborne on October 31, 2011 at 4:46pm

i accedently appplied my change to the master git repo, and wasnt meant to, so undid it.

i would probly just make the changes above in navigation.pde and try that.

Comment by Andy Demartini on November 8, 2011 at 7:03pm

You all may already be including this in the discussion, but I don't see any reference to it all all, so...


General aviation (and larger) airplanes now use a technique called "GPSS" to make a smooth transition between flightplan segments.  In a nutshell, this is a calculation made before arriving at the waypoint that determines when to start the turn to the next segment.  The airplane flies very near to, but absolutely over, the waypoint.  Instead, it uses ground speed and track error angle to make a (very) good estimate for when to start a standard rate turn to the next segment's heading.  Once the turn is done, heading may have to be adjusted slightly to correct for actual cross track error, but there is no overshoot and/or s-turns to get established on the new segment.


The trick is to anticipate, not react.  Could this be incorporated into APM?



You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service