| The FlightGear forum has a
subforum related to: Autopilot & Route Manager
A real route-manager page!
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 STARsAs of FlightGear 2.4.0, the route manager has basic SID/STAR support. The route files are not free; access for a single
- 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.
- Run the executable file. When prompted, choose to extract the data files in a directory on your Desktop (or in another easily accessible place).
- 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 extract-navdata.py script, which can install the files from a directory or directly from a tarball. Run extract-navdata.py --help or python3 extract-navdata.py --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 "convert.sh". Put it into the lowest directory, where all the xml-files are stored. (.../Level-D Simulations/navdata/)
#!/bin/bash for file in *.xml do 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" done
- Now it's time to fire up a terminal and navigate to the files:
cd /path/to/Level-D Simulations/navdata
- To make the script executable type:
chmod +x convert.sh
- Now you're ready to run the script!
- Now it's time to fire up a terminal and navigate to the files:
- 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.
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.
To easily create entries for route manager the application;
- Flightgear Mapping is useful. With just a few clicks you can add navaids displayed on the map and as well a route you have defined there via waypoints. Navaids can be inserted into the list at any point, not just at the end.
- Kelpie Flight Planner appears to be a very thorough route planning tool that works on Windows, Linux and other operating systems.