I'm tempted to commit my autopilot changes to cvs.

Here's what I have done so far.

- I've implimented Roy's suggested PID algorithm. Compared to what we had, this algorithm is better behaved, is much more configurable, and much more tunable. It can be made to do a much better job of easing into large control inputs rather than slamming the controls full stop. It handles the integrator windup problem. And also impliments the "D" portion of the PID which we never had before. For what it's worth the new algorithm works on the change in error from the previous frame rather than the absolute error.

- I have completely overhauled the autopilot config mechanism. The autopilot and it's various modes are now configured via an xml data file. There is a global generic one that all aircraft will inherit, but this can be easily overridden with an aircraft specific AP config in the <aircraft>-set.xml file. This has had a cascading effect on a lot of files (gui, input, controls, hud, etc.) that made reference to the HUD.

- newauto.cxx and newauto.hxx are now axed. I will probably let them exist (but not be compiled) for a while in case there are any nuggets left in there that we still want to extract.

- I've rewritten the autopilot config dialog box to match my new updates.

- Here are the various modes that are currently implimented:

  Heading modes:
  - wing leveler
  - heading bug hold
  - true heading hold (the route manager manipulates the true heading)
  - Nav1 CDI hold

  Pitch/Altitude modes:
  - Pitch hold
  - AOA hold
  - Altitude hold
  - AGL hold (i.e. crude terrain following)
  - Nav1 GS hold

  Velocity modes:
  - Speed hold (by manipulating throttle)
  - Speed hold (by manipulating pitch)

- You can tweak the autopilot config/gains on the fly via a roundabout mechanism. Open up the property browser and find the /autopilot/new-config/ tree. Find the particular PID controller you want to manipulate and make changes. Then select "Reconfig Autopilot" at the bottom of the Autopilot menu. Right now the autopilot config sliders don't work.

What I haven't done.

- I need to write up some documentation on the new PID algorithm, the meaning of the input parameters, and some basic strategies for tweaking the gains.

- I haven't set up (or ported) any specific autopilot configurations for existing aircraft, other than the C172.

- XML instruments that reference/control the autopilot will need to be updated.

- I haven't addressed issues of FCS systems. That would be an interesting follow up of this project. We would probably need to put an abstraction layer in between the control inputs and the control surface output. For simple aircraft like the cub, these could be directly mapped, but for complex aircraft like an airbus, we could put a FCS in between.

So if I do a commit now, there might be some temporary breakage and a slightly different subset of functionality, but I think this will be a good stepping stone from which we can then move forward towards addressing the remaining issues.

Comments? Any objections to committing my updates?

Thanks,

Curt.
--
Curtis Olson   Intelligent Vehicles Lab         FlightGear Project
Twin Cities    [EMAIL PROTECTED]                  [EMAIL PROTECTED]
Minnesota      http://www.menet.umn.edu/~curt   http://www.flightgear.org


_______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to