Hi fellow wiki editors!

To help newly registered users get more familiar with the wiki (and maybe older users too) there is now a {{Welcome to the wiki}} template. Have a look at it and feel free to add it to new users discussion pages (and perhaps your own).

I have tried to keep the template short, but meaningful. /Johan G

Autobrake internals

From FlightGear wiki
Jump to: navigation, search

This page discusses the operation of the generic, C++ based autobrake system. It is assumed the reader is familiar with the general concepts of autobrakes as discussed here.


The code is built around the notion of steps, with 0 being off/disarmed, and positive steps (up to a limit) corresponding to increasing braking severity. Steps above and below this range are ignored; the Boeing rotary selectors use 0 to represent 'disarmed' and '-1' to represent 'off'. RTO mode is defined as a step value; it can be negative, positive, and overlap the valid step range out be outside it. Overlapping the range is typically used to make the 'maximum' step automatically select RTO mode if activated while on the ground (eg, in Airbuses)

Aircraft Integration

The -set.xml file should specify the configuration parameters as discussed below. An autopilot controller should be created to relate the target-decel-ft-sec property to the fcs-brake property, using gains that are appropriate to the aircraft.

For YASim based aircraft, the gear section of the FDM XML file should be updated to use /autopilot/autobrake/left-brake-output and right-brake-output to control the wheel brakes as appropriate. For JSBSim aircraft, this connection is done in JSBSim.cxx.


   <name>Autobrake System</name>

Where Aircraft/.../Systems/autobrake.xml can be a copy of 777-200/Systems/777-autobrake.xml (for YASim aircraft) or 747-400/Systems/autobrake.xml (for JSBSim).


Real-world devices differ in their interface and behaviour; this is expressed in FlightGear via the config properties. If you encounter a real-world device that can't be modelled by the current code, ask on the developer mailing list; support can probably be added. There is also a possibility of adding Nasal callbacks to allow scripted behaviour for various conditions.


  <step type="int">-1</step> 
   <idle-throttle type="double">0.10</idle-throttle>
   <pilot-input type="double">0.25</pilot-input> 
  • step:
  • idle-throttle: the value of /controls/engine[n]/throttle at which the system may engage.
  • pilot-input: input from pilot's brake pedals at which the system should disarm. This has (almost) no effect on keyboard-simmers, but can make quite a difference for pedal-simmers.

Related content