AI Traffic: Difference between revisions

Jump to navigation Jump to search
44 bytes removed ,  25 March 2010
m
small fixes
m (→‎SIDs / STARs: + wikilink)
m (small fixes)
Line 11: Line 11:
Traffic patterns are stored in data files in extended markup language (.xml) format. The actual location of these files are version dependent. For FlightGear 0.9.x, traffic files are  stored in a sudirectory called '''Traffic''' in FlightGear's main data directory, hereafter referred to with it's technical name:
Traffic patterns are stored in data files in extended markup language (.xml) format. The actual location of these files are version dependent. For FlightGear 0.9.x, traffic files are  stored in a sudirectory called '''Traffic''' in FlightGear's main data directory, hereafter referred to with it's technical name:


<nowiki>
<tt>[[$FG_ROOT]]/Traffic/</tt>
${FGROOT}/Traffic
</nowiki>


In FlightGear 1.0., the traffic files can be found in a subdirectory of:
In FlightGear 1.0, the traffic files can be found in a subdirectory of:


<nowiki>
<tt>[[$FG_ROOT]]/AI/Aircraft/</tt>
${FGROOT}/AI/Aircraft/
</nowiki>


For example, traffic belonging to a united airlines 737 would be located in: <tt>data/AI/Aircraft/737/737-UnitedAirlines-traffic.xml</tt>
For example, traffic belonging to a united airlines 737 would be located in: <tt>[[$FG_ROOT]]/AI/Aircraft/737/737-UnitedAirlines-traffic.xml</tt>


FlightGear 1.9.0 has seen yet another move. In this version, the traffic files can be located in:
FlightGear 1.9.0 has seen yet another move. In this version, the traffic files can be located in:


<nowiki>
<tt>[[$FG_ROOT]]/AI/Traffic/</tt>
${FGROOT}/AI/Traffic/
</nowiki>


For FlightGear 1.9.0 and later, a new traffic file format was introduced (henceforth referred to as "traffic manager II" format (TM-II), in which aircraft and flights are no longer directly coupled, leading to more flexibility.  
For FlightGear 1.9.0 and later, a new traffic file format was introduced (henceforth referred to as "traffic manager II" format (TM-II), in which aircraft and flights are no longer directly coupled, leading to more flexibility.  
Line 174: Line 168:


== Defining a flight ==
== Defining a flight ==
The original traffic file format contained a series of flights enclosed within the <aircraft> section, e.g.,
The original traffic file format contained a series of flights enclosed within the <aircraft> section, e.g.,


Line 215: Line 207:
             <repeat>WEEK</repeat>
             <repeat>WEEK</repeat>
         </flight>
         </flight>


The '''<flights>''' section is slightly more complex than the aircraft definition itself, because it has a few nested levels, however, these should mostly be self-explanatory. The following keywords should be specified:
The '''<flights>''' section is slightly more complex than the aircraft definition itself, because it has a few nested levels, however, these should mostly be self-explanatory. The following keywords should be specified:
Line 232: Line 223:
After creating a traffic file, all we need to do is make sure FlightGear knows how to use this. In earlier versions of FlightGear, this used to involve quite a bit of editing, because every file had to be referenced in a master traffic file, named fgtraffic.xml.
After creating a traffic file, all we need to do is make sure FlightGear knows how to use this. In earlier versions of FlightGear, this used to involve quite a bit of editing, because every file had to be referenced in a master traffic file, named fgtraffic.xml.


Those days are gone, however, since FlightGear 1.0.0, when a directory scanning mechanism was put in place. Both flightgear 1.0.0., and 1.9.0 and beyond use this directory scanning mechanims, however, in order to separate between the traffic manager 1 format used by flightgear 1.0.0, and the traffic manager II format used by later versions, these files are located in two different locations. In flightgear 1.0.0, traffic files should be located in a subdirectory of the data/AI/Aircraft directory. For example, traffic for a Boeing 737 could be located in in an xml file in data/AI/Aircraft/737, and traffic for a 747 should be located in data/AI/Aircraft/747.
Those days are gone, however, since FlightGear 1.0.0, when a directory scanning mechanism was put in place. Both FlightGear 1.0.0., and 1.9.0 and beyond use this directory scanning mechanims, however, in order to separate between the traffic manager 1 format used by FlightGear 1.0.0, and the traffic manager II format used by later versions, these files are located in two different locations. In FlightGear 1.0.0, traffic files should be located in a subdirectory of the data/AI/Aircraft directory. For example, traffic for a Boeing 737 could be located in in an xml file in data/AI/Aircraft/737, and traffic for a 747 should be located in data/AI/Aircraft/747.


Since traffic files for FlightGear 1.9.0 are stricktly speaking no longer tied to one particular aircraft, or aircraft type, the traffic files were moved to a different directory, namely data/AI/Traffic. Again, the actual traffic files should be stored in a subdirectory one level below /AI/Traffic. In the demo that is provided with FlightGear 1.9.0, all traffic is organized by airline, and stored in a single letter directory. For example, KLM traffic can be found in data/AI/Traffic/K/KLM.xml, and United Airlines traffic is stored in data/AI/Traffic/U/UAL.xml. Although currently no formal definition exists for military or general aviation traffic, a similar scheme could be adapted. For instance, military traffic could be placed in data/AI/Traffic/mil/USAF.xml
Since traffic files for FlightGear 1.9.0 are stricktly speaking no longer tied to one particular aircraft, or aircraft type, the traffic files were moved to a different directory, namely data/AI/Traffic. Again, the actual traffic files should be stored in a subdirectory one level below /AI/Traffic. In the demo that is provided with FlightGear 1.9.0, all traffic is organized by airline, and stored in a single letter directory. For example, KLM traffic can be found in data/AI/Traffic/K/KLM.xml, and United Airlines traffic is stored in data/AI/Traffic/U/UAL.xml. Although currently no formal definition exists for military or general aviation traffic, a similar scheme could be adapted. For instance, military traffic could be placed in data/AI/Traffic/mil/USAF.xml
Line 240: Line 231:


Secondly, the author of the traffic manager code has written some scripts, mainly for private use,  that will allow one to input the flight data into a simple text format and then convert the resulting text file to xml. These scrips are not available yet, because they haven't been tested well enough for general use, but that is likely to change in the not too distant future.  
Secondly, the author of the traffic manager code has written some scripts, mainly for private use,  that will allow one to input the flight data into a simple text format and then convert the resulting text file to xml. These scrips are not available yet, because they haven't been tested well enough for general use, but that is likely to change in the not too distant future.  


= Ground networks =
= Ground networks =
The next major aspect of the AI traffic system contains taxiway information. Although the physical layout of each airport is contained in FlightGear's airport database, this information is not sufficient to provide taxiway information. Therefore AI aircraft pickup this type of routing information from an xml file inside the data/AI/Airports directory/. Currently, this information is provided on a one file per airport basis, that can be found in a file called data/AI/Airports/[ICAO]/parking.xml, where ICAO stands for the 4 letter ICAO code for the airport in question.  
The next major aspect of the AI traffic system contains taxiway information. Although the physical layout of each airport is contained in FlightGear's airport database, this information is not sufficient to provide taxiway information. Therefore AI aircraft pickup this type of routing information from an xml file inside the data/AI/Airports directory/. Currently, this information is provided on a one file per airport basis, that can be found in a file called data/AI/Airports/[ICAO]/parking.xml, where ICAO stands for the 4 letter ICAO code for the airport in question.  


Line 249: Line 238:
excerpt from this file. It should be noted that current development work is planned that aims to move these files from the base package to the scenery repository, so that ground network information and the physical layout of the airport can be updated in parallel. Once this is done, the new location / name for the file will be [fg-scenery]/Airports/[ICAO1]/[ICAO2]/[ICA03]/[ICAO].groundnet.xml. Here [ICAO] stands for the 4 letter ICAO code of the airport in question, and [ICAO1], [ICAO2], and [ICAO3] for the first to third letter of this code.  
excerpt from this file. It should be noted that current development work is planned that aims to move these files from the base package to the scenery repository, so that ground network information and the physical layout of the airport can be updated in parallel. Once this is done, the new location / name for the file will be [fg-scenery]/Airports/[ICAO1]/[ICAO2]/[ICA03]/[ICAO].groundnet.xml. Here [ICAO] stands for the 4 letter ICAO code of the airport in question, and [ICAO1], [ICAO2], and [ICAO3] for the first to third letter of this code.  


'''NOTE:''' Taxidraw versions with a build date of Feb. 5, or later, 2009 support the new naming convention. To make use of this new functionality, make sure to set the FlightGear scenery directory in TaxiDraw (tab 4 in the preferences menu). The directory specified here should be the top level directory, i.e. the one that contains the "Airports", "Objects", and "Terrain" subdirectory. Note that support for this naming convention was introduced somewhat earlier, but versions of taxidraw before Feb 5 contain a potentially fatal bug that might ruin your work.
'''NOTE:''' Taxidraw versions with a build date of Feb. 5, or later, 2009 support the new naming convention. To make use of this new functionality, make sure to set the FlightGear scenery directory in TaxiDraw (tab 4 in the preferences menu). The directory specified here should be the top level directory, i.e. the one that contains the "Airports", "Objects", and "Terrain" subdirectory. Note that support for this naming convention was introduced somewhat earlier, but versions of TaxiDraw before Feb 5 contain a potentially fatal bug that might ruin your work.


In addition, FlightGear cvs of approximately the same date also has support for reading the ground networks from the scenery directory. This feature is not enabled by default. To enable, make sure the property /sim/traffic-manager/use-custom-scenery-data is set to true. This can be done by editing preferences.xml or specifying this property on the command line.  
In addition, FlightGear cvs of approximately the same date also has support for reading the ground networks from the scenery directory. This feature is not enabled by default. To enable, make sure the property /sim/traffic-manager/use-custom-scenery-data is set to true. This can be done by editing preferences.xml or specifying this property on the command line.  


== A technical perspective ==  
== A technical perspective ==  
A ground network file consists of 4 major sections. The first section is optional, although recent versions of TaxiDraw add this section automatically. This section contains a list of all the radio frequencies for the airport in question. FlightGear currently (as of 1.9.0) uses these frequencies to display some ATC messages. As of FlightGear 1.9.0, only startup approval requests are implemented. You can "hear" these by tuning to the first ground frequency listed in the frequencies section.  
A ground network file consists of 4 major sections. The first section is optional, although recent versions of TaxiDraw add this section automatically. This section contains a list of all the radio frequencies for the airport in question. FlightGear currently (as of 1.9.0) uses these frequencies to display some ATC messages. As of FlightGear 1.9.0, only startup approval requests are implemented. You can "hear" these by tuning to the first ground frequency listed in the frequencies section.  


Line 270: Line 258:
* '''lon'''    (position in longitude)
* '''lon'''    (position in longitude)
* '''name'''  (name as found on airport charts: e.g. D23, or C1).  
* '''name'''  (name as found on airport charts: e.g. D23, or C1).  


In addition, each parking has a number of additional parameters:
In addition, each parking has a number of additional parameters:
Line 279: Line 266:
** '''mil-fighter'''  (military fighter)
** '''mil-fighter'''  (military fighter)
** '''mil-cargo'''    (military transport)
** '''mil-cargo'''    (military transport)


* '''number:'''  Currently used in combination with the <name> parameter to determine the full name of the gate.
* '''number:'''  Currently used in combination with the <name> parameter to determine the full name of the gate.
Line 307: Line 293:


== TaxiDraw ==
== TaxiDraw ==
Although currently no officially released version of [[TaxiDraw]] (http://taxidraw.sourceforge.net/) exists with the ground editing capability, the current CVS version is capable of doing so. Network editing capabilities in taxidraw are currently about as stable as the other editing features, however, the ground network module is still somewhat separate from the rest of the airport project code, and ground networks will 'not' automatically be saved together with the airport project. Therefore, do regular exports while editing, to prevent loss of work.  
Although currently no officially released version of [[TaxiDraw]] (http://TaxiDraw.sourceforge.net/) exists with the ground editing capability, the current CVS version is capable of doing so. Network editing capabilities in TaxiDraw are currently about as stable as the other editing features, however, the ground network module is still somewhat separate from the rest of the airport project code, and ground networks will 'not' automatically be saved together with the airport project. Therefore, do regular exports while editing, to prevent loss of work.  


=== Obtaining TaxiDraw ===
=== Obtaining TaxiDraw ===
Until an official release has been done, linux users can try to check out a version of taxidraw from CVS by following  
Until an official release has been done, linux users can try to check out a version of TaxiDraw from CVS by following  
the instructions on http://taxidraw.sourceforge.net/#download
the instructions on http://TaxiDraw.sourceforge.net/#download


[[Ubuntu]] or [[Debian]] users may look at the [[Ubuntu_fg_tools]] page to have taxidraw installed in a easy way.
[[Ubuntu]] or [[Debian]] users may look at the [[Ubuntu_fg_tools]] page to have TaxiDraw installed in a easy way.


Windows users can also do this either by using the free winCVS program or  
Windows users can also do this either by using the free winCVS program or  
Line 324: Line 310:


=== Creating the network ===
=== Creating the network ===
The current documentation describes the procedure for the TaxiDraw NEW_GUI_CODE branch, which is rather drastically different from the procedure used by the original TaxiDraw, previously documented here. This section describes some of the general procedures involved in building a ground network.


The current documentation describes the procedure for the TaxiDraw NEW_GUI_CODE branch, which is rather drastically different from the procedure used by the original taxidraw, previously documented here. This section describes some of the general procedures involved in building a ground network.
Note: export your work regularly: Although ground network editing capabilities have improved dramatically, this part of TaxiDraw is still somewhat separate from the rest of the code, and ground networks are not automatically saved together with the project. When exporting, TaxiDraw asks wether the ground network should be saved directly into FlightGear's data directory. Usually, this is okay, so just clicking "yes" takes care of saving the file in the correct location. Likewise, while importing an existing network, TaxiDraw first looks in FlightGear's data directory, to check for an existing default file to be inported.
 
Note: export your work regularly: Although ground network editing capabilities have improved dramatically, this part of TaxiDraw is still somewhat separate from the rest of the code, and ground networks are not automatically saved together with the project. When exporting, taxidraw asks wether the ground network should be saved directly into flightgear's data directory. Usually, this is okay, so just clicking "yes" takes care of saving the file in the correct location. Likewise, while importing an existing network, TaxiDraw first looks in FlightGear's data directory, to check for an existing default file to be inported.
 


==== Set up a rough outline ====
==== Set up a rough outline ====
To make best use of the background image, right click, choose the "view" menu, and unselect "taxiways", this way, all network drawing can be based on the real airport location. First, select the "Insert startup location" edit mode. This way, each left mouse click will place a startup location at the position of the mouse cursor. Once the major startup locations have been placed, switch back to "selection" mode, by clicking the little arrow button.  
To make best use of the background image, right click, choose the "view" menu, and unselect "taxiways", this way, all network drawing can be based on the real airport location. First, select the "Insert startup location" edit mode. This way, each left mouse click will place a startup location at the position of the mouse cursor. Once the major startup locations have been placed, switch back to "selection" mode, by clicking the little arrow button.  


Line 343: Line 326:


Repeat this procedure until all parking locations are connected to each runway.
Repeat this procedure until all parking locations are connected to each runway.


==== Refining the network: Mark points on the runway as such ====
==== Refining the network: Mark points on the runway as such ====
With the basic infrastructure in place, the next step is to fine-tune the network. The first step in this process is to mark the network nodes that are located on a runway. This is important for a number of reasons: Taxidraw needs these OnRunway points for it's network verification tool. Secondly, the use of the type of runway marking will be used in future versions of FlightGear for runway entrance / exit calculations, in addition to a host of other possible uses in routing (such as blocking a certain node then a crossing runway is in use, etc, etc).  
With the basic infrastructure in place, the next step is to fine-tune the network. The first step in this process is to mark the network nodes that are located on a runway. This is important for a number of reasons: Taxidraw needs these OnRunway points for it's network verification tool. Secondly, the use of the type of runway marking will be used in future versions of FlightGear for runway entrance / exit calculations, in addition to a host of other possible uses in routing (such as blocking a certain node then a crossing runway is in use, etc, etc).  


It should be noted that there is no reason why TaxiDraw should not be able to mark the runway points as such automatically. After all, the geometry information of both runways and AI nodes is available. Although this automatic feature is planned, the taxidraw developers have as of yet not found the opportunity to implement this feature. Until that time, on runway marking has to be done by hand.
It should be noted that there is no reason why TaxiDraw should not be able to mark the runway points as such automatically. After all, the geometry information of both runways and AI nodes is available. Although this automatic feature is planned, the TaxiDraw developers have as of yet not found the opportunity to implement this feature. Until that time, on runway marking has to be done by hand.


==== Refining the network: Set Holding points ====
==== Refining the network: Set Holding points ====
Holding points are nodes in the network that do something special. They can be used by FlightGear to make traffic wait at certain specific locations. As a matter of fact, the 'normal' and 'Cat II/III' hold points are not yet used by FlightGear, but are part of the development plan. Currently, hold points are implicitly assigned by the FlightGear AI code. For instance, traffic waiting for takeoff clearance is holding at the first point before the runway. Likewise, traffic can receive a hold position instruction just before an intersection in the taxiway system, when traffic is approaching at the other leg. While these implicit hold points work reasonably, there are some limitations. Consider for example runway 07 at CYYC (Calgary Intl, Canada). In the FlightGear rendition of this airport, there are no taxiways leading to this runway, so departing aircraft should back track the runway from an entrance point at the middle of the runway. Currently that point will also become the runway entrance holding point. This is clearly undesirable, because it means that traffic is actually waiting ''on the runway'' in order to get clearance to enter it. For this reason, airport ground network designers should have a means to have explicit control over holding points. The normal hold point is meant for just that.
Holding points are nodes in the network that do something special. They can be used by FlightGear to make traffic wait at certain specific locations. As a matter of fact, the 'normal' and 'Cat II/III' hold points are not yet used by FlightGear, but are part of the development plan. Currently, hold points are implicitly assigned by the FlightGear AI code. For instance, traffic waiting for takeoff clearance is holding at the first point before the runway. Likewise, traffic can receive a hold position instruction just before an intersection in the taxiway system, when traffic is approaching at the other leg. While these implicit hold points work reasonably, there are some limitations. Consider for example runway 07 at CYYC (Calgary Intl, Canada). In the FlightGear rendition of this airport, there are no taxiways leading to this runway, so departing aircraft should back track the runway from an entrance point at the middle of the runway. Currently that point will also become the runway entrance holding point. This is clearly undesirable, because it means that traffic is actually waiting ''on the runway'' in order to get clearance to enter it. For this reason, airport ground network designers should have a means to have explicit control over holding points. The normal hold point is meant for just that.


Line 358: Line 338:


==== Refining the network: Pushback routes ====
==== Refining the network: Pushback routes ====
With the above-mentioned refinements, the ground network should be fully working, with one notable exception. Aircraft will be driving forward when leaving the gate, making a sharp turn (while probably destroying themselves and the terminal building in the process). To prevent this, a ''push back'' route should be created. A push back route consists of at least one or more taxiway segments that have the "PushBack Route" property set to true. The last of these segments should be terminated by a PushBack HoldPoint network node.  
With the above-mentioned refinements, the ground network should be fully working, with one notable exception. Aircraft will be driving forward when leaving the gate, making a sharp turn (while probably destroying themselves and the terminal building in the process). To prevent this, a ''push back'' route should be created. A push back route consists of at least one or more taxiway segments that have the "PushBack Route" property set to true. The last of these segments should be terminated by a PushBack HoldPoint network node.  


Line 366: Line 344:
It is important to note that the "Verify Ground network" process ''should be run'' in order to get a correctly working push back system, because this function runs some internal consistency checks. Push back routes can be very simple, from just one route segment, to fairly complex, as illustrated below. Shown here are 3 examples from the EHAM ground network. 1) Shows a fairly complex example, where all aircraft from one side of the E terminal are being linked to one shared push back point. In the example, the push back route of an aircraft departing from gate E20 is illustrated. 2) Shows a simple example, where one aircraft is being pushed back, and makes a left turn. In essence, 3) shows a similar example, but now in a slightly more crowded space, where pushback nodes are overlapping. The current push back system allows for fairly complicated behavior. To get a full understanding of it's workings, it is advisable to play with some of the existing ground networks. EHAM and KFSO currently provide the most complex setups.  
It is important to note that the "Verify Ground network" process ''should be run'' in order to get a correctly working push back system, because this function runs some internal consistency checks. Push back routes can be very simple, from just one route segment, to fairly complex, as illustrated below. Shown here are 3 examples from the EHAM ground network. 1) Shows a fairly complex example, where all aircraft from one side of the E terminal are being linked to one shared push back point. In the example, the push back route of an aircraft departing from gate E20 is illustrated. 2) Shows a simple example, where one aircraft is being pushed back, and makes a left turn. In essence, 3) shows a similar example, but now in a slightly more crowded space, where pushback nodes are overlapping. The current push back system allows for fairly complicated behavior. To get a full understanding of it's workings, it is advisable to play with some of the existing ground networks. EHAM and KFSO currently provide the most complex setups.  


Finally, please notice that you need a version of taxidraw with a build date of February 5, 2009, or later, for this to work correctly. Earlier version did not export the pushBackRoute attribute correctly. Support for this functionality was introduced late January 2009, but versions earlier than February 4 contain a potentially fatal bug, that may seriously damage your work.  
Finally, please notice that you need a version of TaxiDraw with a build date of February 5, 2009, or later, for this to work correctly. Earlier version did not export the pushBackRoute attribute correctly. Support for this functionality was introduced late January 2009, but versions earlier than February 4 contain a potentially fatal bug, that may seriously damage your work.  
 


[[Image:TaxiDraw2.png]]
[[Image:TaxiDraw2.png|500px]]


==== Verifying the network ====
==== Verifying the network ====
Finally, with a network complete, it is important to verify it! The verification function not only detects obvious problems with the network, it also updates some internal states that FlightGear relies. on. Presumably, an automatic verification process will be added to the export function, but until that is the case, make sure to do this manually. The verify network function can be found in the "Tools" menu.  
Finally, with a network complete, it is important to verify it! The verification function not only detects obvious problems with the network, it also updates some internal states that FlightGear relies. on. Presumably, an automatic verification process will be added to the export function, but until that is the case, make sure to do this manually. The verify network function can be found in the "Tools" menu.  


 
Notice that TaxiDraw does not automatically fix problems. It is left to the user to fix the problems manually. TaxiDraw does select the offending node(s) / segments(s) for easier identification. Also note that TaxiDraw stops verifying at the first problem encountered, so it is worthwhile to continue checking until no further errors are found. Currently, the following checks are performed.
Notice that taxidraw does not automatically fix problems. It is left to the user to fix the problems manually. TaxiDraw does select the offending node(s) / segments(s) for easier identification. Also note that TaxiDraw stops verifying at the first problem encountered, so it is worthwhile to continue checking until no further errors are found. Currently, the following checks are performed.


* '''On runway points''' Added on January 24, 2009, this check is most likely not yet available in any distributed version. This is currently just a very lame check to see if any point in the network has been marked as such. This check is not exhaustive, but simply meant as a reminder to the editor that the OnRunway points should still be marked. Ultimately, this check should be replaced by the aformentioned automatic geometry function.
* '''On runway points''' Added on January 24, 2009, this check is most likely not yet available in any distributed version. This is currently just a very lame check to see if any point in the network has been marked as such. This check is not exhaustive, but simply meant as a reminder to the editor that the OnRunway points should still be marked. Ultimately, this check should be replaced by the aformentioned automatic geometry function.
Line 384: Line 359:


== Editing the startup location parameters ==
== Editing the startup location parameters ==
Once you have created a ground network, you'll find that it probably won't  
Once you have created a ground network, you'll find that it probably won't work yet in FlightGear. The main reason for this is that the default gate  
work yet in flightgear. The main reason for this is that the default gate  
size is set to a fairly small size, and most aircraft won't fit into the gate. Therefore, you'd need to edit the parking parameters. In addition,  
size is set to a fairly small size, and most aircraft won't fit into the  
you'd also need to give each parking a name, and a heading, and probably airlines codes. Changing name, and heading can be done in TaxiDraw, by right  
gate. Therefore, you'd need to edit the parking parameters. In addition,  
clicking on the startup location. This will bring up a dialog, in which you can change latitude, longitude, heading, and name. Once you're done editing, click okay to accept the new values, or cancel to discard.  
you'd also need to give each parking a name, and a heading, and probably  
airlines codes. Changing name, and heading can be done in taxidraw, by right  
clicking on the startup location. This will bring up a dialog, in which you  
can change latitude, longitude, heading, and nameOnce you're done editing,  
click okay to accept the new values, or cancel to discard.  


Editing the starup location radius, type, airlineCodes, and pushBack  
Editing the starup location radius, type, airlineCodes, and pushBack parameters is not yet possible in TaxiDraw. So changing these requires saving the project and editing these using a texteditor. Once you save the project, this will be done in a file [filename].tpj (TaxiDraw project). The groundnetwork will be saved in a file named [filename]-groundnet.xml, which will be in the same folder as where you saved the project.
parameters is not yet possible in taxidraw. So changing these requires saving  
the project and editing these using a texteditor. Once you save the project, this will be done in a file [filename].tpj (taxidraw project). The groundnetwork will be saved in a file named [filename]-groundnet.xml, which will be in the same folder as where you saved the project.


You can edit the remaining parameters by loading this groundnet.xml file into  
You can edit the remaining parameters by loading this groundnet.xml file into a text editor. Once you are done editing make sure you import these changes into TaxiDraw immediately. Do this by going to [File| Import FlightGear AI Network]. This will open a file selection dialog. Choose the file you just edited and click okay. TaxiDraw will ask for confirmation to overwrite existing ground network data and confirm this  by clicking on "yes".
a text editor. Once you are done editing make sure you import these changes  
into taxidraw immediately. Do this by going to [File| Import FlightGear AI  
Network]. This will open a file selection dialog. Choose the file you just  
edited and click okay. TaxiDraw will ask for confirmation to overwrite  
existing ground network data and confirm this  by clicking on "yes".


== Copying the ground network into FlightGear's data directory ==
== Copying the ground network into FlightGear's data directory ==
Finally, once you have finished creating a groundnet work you can test it in  
Finally, once you have finished creating a groundnet work you can test it in FlightGear. Create a directory in FlightGear's <tt>data/Airports/AI</tt> directory, with the name of the ICAO code of your airport. For example <tt>[[$FG_ROOT]]/Airports/AI/EHAM</tt>. Next. locate the file [filename]-groundnetwork.xml and copy this to the directory you just created. Finally, rename the file you just copied to "parking.xml".
FlightGear. Create a directory in FlightGear's <tt>data/Airports/AI</tt> directory,  
with the name of the ICAO code of your airport. For example  
<tt>data/Airports/AI/EHAM</tt>. Next. locate the file [filename]-groundnetwork.xml and copy this to the directory you just created. Finally, rename the file you just copied to "parking.xml".


== Testing the network ==
== Testing the network ==
Startup flightGear at the airport for which you have just created the network,  
Startup flightGear at the airport for which you have just created the network, and make sure you have traffic for that aircraft. FlightGear will check the network and report errors on the console. Aircraft than can't be placed at one of the parking locations will be placed at a default location.  
and make sure you have traffic for that aircraft. FlightGear will check the  
network and report errors on the console. Aircraft than can't be placed at  
one of the parking locations will be placed at a default location.  


If the FlightGear AI system can't find a valid route between startup location  
If the FlightGear AI system can't find a valid route between startup location and runway, it will list which nodes are not connected and exit.
and runway, it will list which nodes are not connected and exit.


= SIDs / STARs =
= SIDs / STARs =
SID is an acronym for Standard Instrument Departure. Likewise, STAR is an acronym for [[Standard Terminal Arrival Route]]. Directly after takeoff, in particular at busy airports, aircraft follow a standard flightpath, that will keep them safely separated from arriving traffic, avoid ground obstructions, and also keeps traffic away from populated areas as much as possible. Currently, steps are in progress to allow FlightGear traffic to follow SIDs. Ultimately, the plan is to provide SID and star data in a format that can also be used by the user controlled Aircraft's Flight Management Computer. Currently, some sample data exist in the form of a PropertyList formatted xml file that contains a list of waypoints.  
SID is an acronym for Standard Instrument Departure. Likewise, STAR is an acronym for [[Standard Terminal Arrival Route]]. Directly after takeoff, in particular at busy airports, aircraft follow a standard flightpath, that will keep them safely separated from arriving traffic, avoid ground obstructions, and also keeps traffic away from populated areas as much as possible. Currently, steps are in progress to allow FlightGear traffic to follow SIDs. Ultimately, the plan is to provide SID and star data in a format that can also be used by the user controlled Aircraft's Flight Management Computer. Currently, some sample data exist in the form of a PropertyList formatted xml file that contains a list of waypoints.  


Line 427: Line 382:


= Appendix: Special Notes =
= Appendix: Special Notes =
== Realism ==
== Realism ==
With [[FGFS 1.0.0]] Interactive Traffic also responds to other Non-AI aicraft.
With [[FGFS 1.0.0]] Interactive Traffic also responds to other Non-AI aicraft.
Line 433: Line 387:


==Perfomance==
==Perfomance==
With FGFS 1.0.0, the AI Interactive Traffic needs a lot of CPU-power. With the current CVS-versions, however, we now have much better performance so realistic density of traffic is currently possible, even for slower computers.
With FGFS 1.0.0, the AI Interactive Traffic needs a lot of CPU-power. With the current CVS-versions, however, we now have much better performance so realistic density of traffic is currently possible, even for slower computers. For those who are still afraid, there is an, as of yet, unpublished feature: Set a new property "/sim/traffic-manager/proportion" to any value between 0 and 1 in your preferences.xml. During program start up, the traffic manager draws a random number (between 0 and 1) for each aircraft, and if that random number is smaller than the value specified in /sim/traffic-manager/proportion, the aircraft is added, otherwise it is discarded. In essence, only the specified proportion of aircraft will be loaded.  
For those who are still afraid, there is an, as of yet, unpublished feature:
Set a new property "/sim/traffic-manager/proportion" to any value between 0 and 1 in your preferences.xml.
During program start up, the traffic manager draws a random number (between 0 and 1) for each aircraft, and if that random number is smaller than the value  
specified in /sim/traffic-manager/proportion, the aircraft is added, otherwise it is discarded. In essence, only the specified proportion of aircraft will be loaded.  


Unfortunately you can't change this at runtime yet, so you need a little bit trial and error! However, it should allow the combination of slower computers and dense traffic files.
Unfortunately you can't change this at runtime yet, so you need a little bit trial and error! However, it should allow the combination of slower computers and dense traffic files.


==External links==
==External links==
* [http://www.xs4all.nl/~dtalsma/flightgear.html The FlightGear AI aircraft download page]
* [http://www.xs4all.nl/~dtalsma/FlightGear.html The FlightGear AI aircraft download page]
* [http://www.ilovelinux.de/svn/fgfs-ffm/user/data/AI/   Created a dense AI traffic for EDDF, LSZH and a lot of other airports depending on real timetables. More to come!]
* [http://www.ilovelinux.de/svn/fgfs-ffm/user/data/AI/ Created a dense AI traffic for EDDF, LSZH and a lot of other airports depending on real timetables. More to come!]

Navigation menu