I thought some people may be interested in the progress we have made with the development of S-Curve navigation.
We have got the first proof of concept working and so far it is living up to all my expectations.
Here is a video showing the performance of 4.0 navigation. This video highlights the problems with the current approach when we use low accelerations and high speeds. The first half of the video looks pretty good because the acceleration is only 1/3 the speed. When the acceleration drops to 1/15 the speed we start to see the aircraft cutting the corners. This can be addressed by slowing the aircraft down through these tighter sections or adding a delay to those waypoints so the aircraft goes all the way to the waypoint before moving onto the next one. However we would like the aircraft chose an optimal path without user intervention.
The following video shows the same parameters using S-Curve navigation.
Here you can see that there is a small change between the two on how much the aircraft cuts the corners. The aircraft follows the track much closer and slows the aircraft down as needed. I have set the corner radius to 5m to let the aircraft cut the corner a lot to maintain speed. With a smaller value of 1m both acceleration settings would be almost identical but the 1m/s/s setting would require a slower speed through the fast corners to turn within the waypoint radius.
Splines will still be required to implement long sweeping corners but the aircraft will follow the spline precisely rather than cutting inside the curve. We have not implemented the spline navigation using S-Curves yet. Once we finalise our streight waypoint handling we will move onto the spline implementation.