Route manager

From FlightGear wiki
(Redirected from FMS)
Jump to navigation Jump to search

A real route-manager page!

The route manager dialog.


(in the following sections, familiarity with basic IFR concepts, Autopilot usage and radio navigation is assumed)

The route-manager models part of the functionality found in real-world GPS and FMS devices, but is usable in any aircraft. Some panel instruments may provide access to the route manager via their own UI, but the route-manager is always available through a generic dialog box. The route-manager is also how a flight plan is made available to FlightGear - in the future this will hopefully permit better ATC and multi-player interactions, since ATC logic or controllers will be able to observe the filed plan associated with a pilot.

It's important to realize that the route-manager (and GPS) are pieces that a panel instrument might present as a single real world device - the mapping between C++ modules, generic user interface and in-panel instruments is very fluid, by design. In general core features exist in whichever place seems the most natural, and it's up to instruments to aggregate the core modules as they require.


The route-manager maintains a flight-plan, consisting of departure, destination, alternate airport and cruise information, as well as a list of waypoints. All information is currently optional, which is highly unrealistic, but convenient.

Route manager waypoints are entered as a navaid ident, an explicit latitude/longitude pair, or as an offset (bearing and distance) from another navaid. Each waypoint may also have an altitude associated with it, for vertical navigation modes (VNAV). In the future, other data, especially speed restrictions, may also be associated with waypoints.

The route-manager maintains a current waypoint, which is shown in route-manager dialog, the GPS dialog (in LEG mode), on the default HUD, and potentially in cockpit displays in the aircraft. Normally, the route-manager moves automatically to the next waypoint after passing the current point (this is known as 'sequencing'), but if necessary the active waypoint can be manually adjusted.

An important piece of terminology is a leg, which is a section of route between two waypoints. Many real-world devices deal in legs primarily, since each leg corresponds to a desired track, a distance and possibly an altitude to climb / descend. In the FlightGear route manager, the active leg is from the previous waypoint to the current waypoint - i.e the current waypoint is where you're heading to at the moment.

Defining a Route

The simplest way to define a route is to add waypoints one at a time by identifier. Since navaid identifiers are not unique, the route-manager uses your departure airport or the previously defined waypoint to locate the identifier search. In practice, navaids with conflicting names are located far enough apart that this works automatically in practice.

From Flightgear 2016.2.0 onwards, it is also possible to add a list of waypoints using the route manager dialog. These should be separated by spaces, e.g. "TLA DCS HON WCO BNN" and the result is the same as typing individually and pressing the add button for each.

Until departure and arrival procedures are supported, you can often define them yourself, by creating offset waypoints, as shown in the examples below.

Routes can be loaded and saved to and from a simple XML format, so you may prefer to create the routes in a text editor, and load them instead of entering them by hand. You can also use a 3rd party flight-planning tool to create the route, export the route in GPX format and load the file with the route manager (requires FlightGear >= 2.99 and the file must have the suffix ".gpx"). Contact the developer list if you are interested on working on support for further file formats.

In the future, auto-routing using airways or VOR-VOR routing will also be added.

Example waypoint definitions:

airport identifier
navaid identifier (NDB, VOR or a fix/interaction)
offset from a navaid - in this example, the 210-degree magnetic radial from TLA VOR, 35 nautical miles out
WOBAD fix, at eighteen thousand feet altitude
12.3 nautical miles from SPL VOR on the 050 magnetic radial, at two thousand feet
virtual point at W020N55, eg. when flying North Atlantic Tracks

See also #Useful Software

SIDs and STARs

As of FlightGear 2.4.0, the route manager has basic SID/STAR support. The route files are not free; access for a single AIRAC This is a link to a Wikipedia article cycle and subscriptions can be bought at Navigraph.

  1. Download the Level-D formatted files from the Navigraph manual install page; log in and pay for the access when prompted. Save the .exe file somewhere safe (in case you need to reinstall the route files in the future): Navigraph won't provide you with another copy when the next data update comes out.
  2. Run the executable file. When prompted, choose to extract the data files in a directory on your Desktop (or in another easily accessible place).
  3. Open that directory, you will find many XML files named ICAO.procedures.xml (where ICAO is the ICAO code of the airport the XML file refers to): move each of them to $FG_SCENERY/Airports/I/C/A/ICAO.procedures.xml (replace I, C, A and ICAO with the corresponding letters of the ICAO code). (Example: put EDDF.procedures.xml in $FG_SCENERY/Airports/E/D/D/EDDF.procedures.xml).

The third point can be automated to install many procedure files at once:

  • If you have Ruby installed on your computer, you can use this renaming script.
  • Another possibility, using Python 3, is this script, which can install the files from a directory or directly from a tarball. Run --help or python3 --help for instructions. You may need to use py -3 instead of python3 on Windows, cf. Using Python on Windows.
  • You could also use a small bash-script to do the work for you. Bash is a shell, native on Linux, also exists on Macs. Copy the following code into a new file, name it "". Put it into the lowest directory, where all the xml-files are stored. (.../Level-D Simulations/navdata/)

for file in *.xml
    FILENAME=$( echo $file | sed s/.xml// )
    DIR=$( echo "$FILENAME" | sed s/[A-Z0-9]\$// )
    ONE=$( echo "$DIR" | sed s/[A-Z0-9]\$// | sed s/[A-Z0-9]\$// )
    TWO=$( echo "$DIR" | sed s/[A-Z0-9]// | sed s/[A-Z0-9]\$// )
    THREE=$( echo "$DIR" | sed s/[A-Z0-9]// | sed s/[A-Z0-9]// )
    #echo "$file => $DIR => $ONE / $TWO / $THREE / $file"
    mkdir -pv "../Airports/$ONE/$TWO/$THREE"
    cp -v $file "../Airports/$ONE/$TWO/$THREE/$FILENAME.procedures.xml"
  1. Now it's time to fire up a terminal and navigate to the files: cd /path/to/Level-D Simulations/navdata
  2. To make the script executable type: chmod +x
  3. Now you're ready to run the script! ./
When the script is done, you will find a new folder on your hard-disk: "/path/to/LevelD/Airports" which contains the files in our "I/C/A/ICAO.procedures.xml fashion". You can now copy this Airports-folder into a new scenery-folder and add it to your scenery-list.

Next time you start FlightGear, you can load the routes through the route manager interface.

Flying Approaches

The route manager can also be used to fly from airport to airport without using navaids or waypoints. The following is a step-by-step tutorial on how to plan a flight from KSFO-KLAX without using navaids or waypoints.

In the route manager, you will see two rows at the top: departure and arrival. They are almost the same, except departure has SID and the arrival airport has STAR (see below, SID/STAR).

1. In the departure airport row, fill in the ICAO of the airport you are departing from (KSFO) as well as the runway you are taking off from. (10R) If you are not familiar with the airport, choose your departure runway carefully, as your taxi time will depend on the distance of this runway. The SID dropdown can remain as it is.

2. In the arrival airport row, fill in the ICAO of the airport you are arriving at (KLAX) as well as the runway you will be landing on. (06L) Again, if you are not familiar with this airport, choose your arrival runway carefully, as this may significantly extend flight time. Next, select "Default" in the approach dropdown box. STAR can remain as it is.

3. There should now be a list of waypoints below the information fields. The first waypoint (outside of the airport) is a ways from the departure airport (in this example, 283.9 NM). However, the waypoints following that continue the approach, so they are only a few nautical miles away from the previous. The list should be populated with at least 4 waypoints, excluding the airports. When this is true, proceed to the next step.

4. There is a row of buttons at the bottom of the route manager. Press the button that says "Activate". This will enable the route that you have created (in this case, KSFO-KLAX). However, we don't want to fly to the airport we're already at. We want to fly to the first waypoint, which should be APP-4. To do this, click on APP-4 and click the "Jump To" button at the bottom. APP-4 should now be highlighted in orange. This means that autopilot is ready to fly to that waypoint.

5. Once you get above 500ft, after takeoff, enable autopilot. Click LNAV for lateral navigation to that first waypoint. Your plane will make a slight turn (in this case) towards Los Angeles. Altitude works separately, so you will have to set your own altitude and vertical speed. (If pressing the LNAV button only produces this error: "Captain, we forgot to program or activate the route manager!", you forgot to click the activate button! Repeat step 4 and 5, then proceed to step 6. You should pause the simulation while doing this.)

6. Your planes will make all the turns for you to get on approach. Remember that you, the pilot, are responsible for altitude, which deserves a whole different tutorial in itself.

Activating a Route

Activating a route performs certain checks, and creates start and end waypoints based on the selected departure and arrival info. For the moment, that consists of adding the departure runway as waypoint zero, but in the future (when departure procedures are supported) this will create the appropriate procedure waypoints.

This will also be the hook point for calculating cruise information, such as top-of-climb and top-of-descent points in the future.

Other devices (especially a GPS/FMS) may trigger other changes based on activating a route, such as sequencing the first leg of the route, resetting internal counters / timers, and so on.

Flying a Route

When a route is activated, the GPS system enters 'leg' mode, and will automatically sequence waypoints as they are overflown. Note that all aircraft can use the default route-manager and GPS functions, even aircraft that would never (historically) has such systems. This is a convenience to casual users, testing, and so on.

In particular, the GPS drives some properties of the generic autopilot, so 'true heading hold' mode can be used to fly the route manager route (or any other GPS course).

The default HUD (activated by pressing 'h') shows information about the active waypoint and leg, in the top-left corner. Notably, it includes the identifier, time and distance to the current waypoint, the magnetic bearing to the waypoint, and the current ground track, and finally the deviation (in nautical miles) from the leg course.

In aircraft with realistic navigation systems, or customised autopilots, the default behaviours above may not work; hopefully the aircraft author has provided alternative methods, such as panel instruments, to control the interaction with that aircraft's autopilot and panel.

Lining up with Runways

The route-manager only provides guidance to a particular location - to arrive on a particular heading, such as lined up with a runway or ILS localizer, it is necessary to use multiple waypoints. Virtually all ILS approaches define multiple fixes that can be used for this purpose, usually including altitude restrictions. For example, for the KPHX 08 approach, waypoints ALLIS, SARTE, HIKID, ILIKE, JAMIL and WAZUP are defined, extending 20nm from the threshold. Typically you enter the initial approach fix (IAF), ALLIS in this example, and as many of the intermediate waypoints as necessary, depending on required descent profile. It is helpful to include the glidepath capture waypoint (WAZUP), to provide an easy altitude reference and cross-check that your ILS receiver is working.


When a route is active, the route-manage provides various pieces of information based upon current aircraft position / speed, and the route progress. These values would be calculated by the navigation computer in a real system, but are handled by route-manage in FG for convenience. Values logged include the takeoff time, estimated time enroute (ETE), distance remaining enroute, and so on - browse the property tree to see what's available.

Useful Software

To easily create entries for route manager the application;

  • Kelpie Flight Planner appears to be a very thorough route planning tool that works on Windows, Linux and other operating systems.
  • Little Nav Map is a free flight planner written in C++. It is cross platform compatible.

Related content

Wiki articles

Forum topics