An update on the navigator concept:

(see here )

I think the screen shot is interesting.

On the left is ArduPlane Desktop in default config, running the "autotest" mission at 1000hz perfect world data.

On the right is the vector field guidance autopilot for navigation, using a different heading and roll autopilot as well.

No wind in either scenario, but LVFG can do all kinds of wind as well.


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • On the left is the Arduplane default, the heading hold is done with nose-to-bearing, so it is not accounting for wind. (Not that in this test there was any wind). In addition the heading hold is mixed with cross-track gain to try to get the plane onto the lines joining the points not just fly as a crow to the new point. A PID controls the roll attitude based on the bearing error, that is the nav_roll pid in the setup screen.

    On the right, the heading hold is holding the GPS ground track, not the nose of the plane, but that works out to be the same thing in a no wind scenario. In addition the heading hold is done with by linear choice of a roll attitude from the instant bearing error with a clamp to the maximum allowable. The roll attitude is held with a roll rate hold which chooses an instant roll rate according to error on roll attitude, with a clamp for the maximum allowable roll rate. The roll rate is generated by aileron position, again, linear for roll rate error, with a clamp for max deflection.

    Now a heading hold autopilot is only good for straight lines. and this nav autopilot needs the plane to follow curves, so that it can stay on the vector field (which is always changing) as the vector field leads it to each goal. So.. the navigation autopilot leads the heading hold autopilot by managing the continuous heading hold signal so the plane, although always correcting and chasing a new heading, is in reality always where the navigation autopilot wants it to be.

    It is the math version of following a curve in a car: at any instant, your "heading hold" for the car is changing as it is the tangent of the curve and of course the car, the wheels, the steering, and your hands, are not able to catch up to this number. So instead you find the right wheel position such that you stay within inches of where you need to be, even if you're driving a semi-trailer with very indirect and slow steering reactions. In addition, if you drift just a bit, you make a nudging corrective motion to get back to the track. This is also built in. See "sliding mode control" on wikipedia.

  • How is the heading/roll autopilot different between the two navigation control law examples? 

  • I need to run more tests. To defend the idea that a configuration can be derived from a few basics on aircraft performance inputs (roll rate, bank angle, wingspan) and it will fly really well out of the box without changing numbers in a grid.

    Automation of testing on that is tricky and no connectable sim has different RC sized small models to choose from. I'd have to settle for throwing in some full scale aircraft as well, then there can be high wing, low wing, pusher, motor assisted glider etc.

  • Moderator

    The vector field method definitely seems to "think ahead". When is your implementation coming to real life?  :)

This reply was deleted.