Autopilot configuration reference: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(New Page)
 
(include and alias attributes, top level elements)
Line 39: Line 39:


== Available Elements ==
== Available Elements ==
All elements may contain the attributes "include" and "alias".
The "include" property takes a file name as a parameter. This can be used to read the document tree of an external XML file into the node containing the "include" attribute. The included file must have a PropertyList node as the root node. All nodes under this PropertyList node will be added to the node containing the "include" attribute.
The "alias" attribute refers to an element defined elsewhere in this XMl document. Alias references are in a path-style syntax, either as a relative or absolute path. Absolute paths start with a slash, like <foo alias="/params/bar/baz"/>. Use the colon to move through the document tree, similar to file system paths like <foo alias="../../bar/baz"/>.
There is no restriction regarding the top level nodes under the PropertyList root node. Nodes, that create instances of filters and controllers are
* <pid-controller>
* <pi-simple-controller>
* <filter>
* <predict-simple>


== Input Values ==
== Input Values ==

Revision as of 11:18, 4 May 2010

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

This page serves as a reference for the elements of FlightGear xml autopilot configuration files. It describes all elements available within the autopilot configuration file supported in the bleeding edge CVS sources. Some of the elements may not be available in the current release version of FlightGear. Refer to Howto:_Design_an_autopilot as a guide how to use these elements.

Structure Of a Configuration File

Autopilot configurations live in a separate file, formatted using the well known XML syntax like so many other FlightGear files with a PropertyList node as a root element. A basic skeleton file looks like this:

<?xml version="1.0" encoding="utf8"?>
<PropertyList>
  <params>
    <controls>
      <aileron>controls/flight/aileron</aileron>
      <rudder>controls/flight/rudder</rudder>
      <elevator>controls/flight/elevator</elevator>
    </controls>
  </params>
  
</PropertyList>

Note: Using aliased property names is good style and makes the configuration file more readable. For complex autopilot systems spread over multiple autopilot configuration files, the params section may be included from an extern file using <params include="my-params.xml"/> to avoid duplication of code.


The location and the name of the configuration file is up to the developer. A descriptive name like 'autopilot.xml' might be a good choice. Most developer put these files into the Systems folder of the aircraft.

Adding a Autopilot Configuration to Aircraft

Autopilot configuration files are added to the aircraft by adding

 <autopilot>
   <path>Aircraft/MyAircraft/Systems/my-autopilot.xml</path>
 </autopilot>

to the

<sim>
  <systems>
    <!- - many other elements live here - ->
    <autopilot>
      <path>Aircraft/MyAircraft/Systems/my-autopilot.xml</path>
    </autopilot>
  </systems>
 </sim>

node of your aircraft-set.xml file. Note, that more than one <autopilot> node may be present, each will create a new instance of the autopilot subsystem when running FlightGear. They run in the order of appearance under <systems>.

Available Elements

All elements may contain the attributes "include" and "alias". The "include" property takes a file name as a parameter. This can be used to read the document tree of an external XML file into the node containing the "include" attribute. The included file must have a PropertyList node as the root node. All nodes under this PropertyList node will be added to the node containing the "include" attribute. The "alias" attribute refers to an element defined elsewhere in this XMl document. Alias references are in a path-style syntax, either as a relative or absolute path. Absolute paths start with a slash, like <foo alias="/params/bar/baz"/>. Use the colon to move through the document tree, similar to file system paths like <foo alias="../../bar/baz"/>.

There is no restriction regarding the top level nodes under the PropertyList root node. Nodes, that create instances of filters and controllers are

  • <pid-controller>
  • <pi-simple-controller>
  • <filter>
  • <predict-simple>

Input Values

Output Values

filter

gain

exponential

double-exponential

moving-average

noise-spike

reciprocal

pid-controller

pi-simple-controller

predict-simple