AI Traffic: Difference between revisions

Jump to navigation Jump to search
m
some wiki-cleanup
m (some wiki-cleanup)
Line 1: Line 1:
== Interactive Traffic in FlightGear ==
Starting with version 0.9.5, [[FlightGear]] has an interactive traffic system that is based on the AI-Models subsystem, and which is currently under active development. This page aims to provide the required documentation needed to set up some traffic.
Starting with version 0.9.5, [[FlightGear]] has an interactive traffic system that is based on the AI-Models subsystem, and which is currently under active development. This page aims to provide the required documentation needed to set up some traffic.


Line 15: Line 13:
</nowiki>
</nowiki>


or in the AI Aircraft's directory. Current FlightGear CVS (as of late December 2007) has its traffic files in the aircraft directories (e.g., in data/AI/Aircraft/737/, and older versions as well as the current PLIB built version of FlightGear have this file in <nowiki>${FGROOT}/Traffic</nowiki>.
or in the AI Aircraft's directory. Current [[FlightGear CVS]] (as of late December 2007) has its traffic files in the aircraft directories (e.g., in <tt>data/AI/Aircraft/737/</tt>, and older versions as well as the current PLIB built version of FlightGear have this file in <nowiki>${FGROOT}/Traffic</nowiki>.
Each traffic pattern is built around two entities: Aircraft and Flights. Before discussing the details, lets start by exploring these two concepts a little further.
Each traffic pattern is built around two entities: Aircraft and Flights. Before discussing the details, lets start by exploring these two concepts a little further.


Line 294: Line 292:
* '''<livery>''' This line is currently unused, and will likely remain unused. The original idea was to combine this with the '''<model>''' line (see above) to load a specific combination of aircraftype and paint scheme, but I abandoned that idea, because it didn't turn out to be very combatible with the existing FlightGear model loading code.  
* '''<livery>''' This line is currently unused, and will likely remain unused. The original idea was to combine this with the '''<model>''' line (see above) to load a specific combination of aircraftype and paint scheme, but I abandoned that idea, because it didn't turn out to be very combatible with the existing FlightGear model loading code.  
* '''<airline>''' This line refers to the airline operating the aircraft. This information is currently used by FlightGear to handle gate/parking assignments. Use the official 3-letter [[ICAO]] airline code here, in case of commercial traffic. This keyword is unlikely to be used for general aviation and military traffic.  
* '''<airline>''' This line refers to the airline operating the aircraft. This information is currently used by FlightGear to handle gate/parking assignments. Use the official 3-letter [[ICAO]] airline code here, in case of commercial traffic. This keyword is unlikely to be used for general aviation and military traffic.  
* '''<actype>''' A description of the aircraft type reserved for future use in ATC.
* '''<actype>''' A description of the aircraft type reserved for future use in [[ATC]].
* '''<offset>''' Ground offset of the 3D model. Not all aircraft 3D models are build using the same convention. Use this parameter to align the wheels with the ground. Notice that this parameter will probably become obsolete in the near future, because model view point references can also be done in the xml file that the '''<model>''' keyword refers to.
* '''<offset>''' Ground offset of the 3D model. Not all aircraft 3D models are build using the same convention. Use this parameter to align the wheels with the ground. Notice that this parameter will probably become obsolete in the near future, because model view point references can also be done in the xml file that the '''<model>''' keyword refers to.
* '''<radius>''' An estimate of the aircraft's size. This is mainly used at airports for gate assignments.
* '''<radius>''' An estimate of the aircraft's size. This is mainly used at airports for gate assignments.
* '''<flighttype>''' This line is also used for gate assignments and should be one of the following:
* '''<flighttype>''' In the near future, this keyword will be used for runway assignments, so that general aviation, commercial, and military traffic will use different runways if that is part of the airport's operational procedures. This line is also used for gate assignments and should be one of the following:
    '''ga''' (general aviation),  
** '''ga''' (general aviation),  
    '''cargo''' (cargo)
** '''cargo''' (cargo)
    '''gate''' (commercial passenger traffic)  
** '''gate''' (commercial passenger traffic)  
In addtion, it is expected that a '''mil''' value will be valid sometime soon. In the near future, this keyword will also be used for runway assignments, so that general aviation, commercial, and military traffic will use different runways if that is part of the airport's operational procedures.
** In addtion, it is expected that a '''mil''' value will be valid sometime soon.  
* '''<performance-class>''' This line is used to determine the performance characteristics of AI aircraft. This should match one of the performance classes that are predefined in FlightGear. Currently, the following performance classes are supported:
* '''<performance-class>''' This line is used to determine the performance characteristics of AI aircraft. This should match one of the performance classes that are predefined in FlightGear. Currently, the following performance classes are supported:
** '''light_aircraft''' (prop driven single or twin),
'''light_aircraft''' (prop driven single or twin),
** '''ww2_fighter'''    (world war two fighter),
'''ww2_fighter'''    (world war two fighter),
** '''jet_transport'''  (modern commercial jet),
'''jet_transport'''  (modern commercial jet),
** '''jet_fighter'''    (modern fighter aircraft)
'''jet_fighter'''    (modern fighter aircraft)
** '''tanker'''        (tanker aircraft), or.
'''tanker'''        (tanker aircraft), or.
** '''ufo'''            (allows extreme accel/decel capabilities).
'''ufo'''            (allows extreme accel/decel capabilities).
*'''<registration>''' The aircraft's tail number. Future versions of FlightGear will use this registration in ATC for general aviation traffic. For commercial traffic the registration number will likely remain unused.
*'''<registration>''' The aircraft's tail number. Future versions of FlightGear will use this registration in ATC for general aviation traffic. For commercial traffic the registration number will likely remain unused.


Line 315: Line 312:
The next series of lines within the '''<aircraft>''' section define the flights. Again, each flight is defined between the '''<flight>''' and '''</flight>''' statements. For example, let's have a look at the first two  
The next series of lines within the '''<aircraft>''' section define the flights. Again, each flight is defined between the '''<flight>''' and '''</flight>''' statements. For example, let's have a look at the first two  
flights specified in our PH-KCA example.  
flights specified in our PH-KCA example.  


         <!-- Day one: Amsterdam to San Fransisco, CA, USA -->
         <!-- Day one: Amsterdam to San Fransisco, CA, USA -->
Line 367: Line 363:
At startup, FlightGear (older versions, or CVS PLIB) reads a file called '''fgtraffic.xml'''. In order to let FlightGear use our newly built traffic file, all we need to do is add a reference to the new file. Suppose we saved our file as PH-KCA.xml, all that would be required would be to add the following line:  
At startup, FlightGear (older versions, or CVS PLIB) reads a file called '''fgtraffic.xml'''. In order to let FlightGear use our newly built traffic file, all we need to do is add a reference to the new file. Suppose we saved our file as PH-KCA.xml, all that would be required would be to add the following line:  


<traffic include="<path>/PH-KCA.xml",  
<traffic include="<path>/PH-KCA.xml",  


where '''<path>''' is the directory where the file is located, relative to the main '''Traffic''' directory. For example, fgtraffic could look like this:
where '''<path>''' is the directory where the file is located, relative to the main '''Traffic''' directory. For example, fgtraffic could look like this:
Line 406: Line 402:
AI aircraft pickup taxiway information from an xml file that resides in  
AI aircraft pickup taxiway information from an xml file that resides in  
FlightGear's data directory. This is done on an airport by airport basis. the  
FlightGear's data directory. This is done on an airport by airport basis. the  
precise location of this file is data/Airports/AI/[ICAO-id]/parking.xml. For  
precise location of this file is <tt>data/Airports/AI/[ICAO-id]/parking.xml</tt>. For  
an example, see the groundnetwork for EHAM, which is found in  
an example, see the groundnetwork for EHAM, which is found in  
data/Airports/AI/EHAM/parking.xml. See the end of this message for a small  
<tt>data/Airports/AI/EHAM/parking.xml</tt>. See the end of this message for a small  
excerpt from this file.
excerpt from this file.


Line 455: Line 451:
Notice that the ground editing facilities in TaxiDRaw are still rather new, and although the stability of this feature has increased dramatically over the last few weeks, there are still a few issues related to the undo function, so be prepared for a bit of frustration, and make regular backups.  
Notice that the ground editing facilities in TaxiDRaw are still rather new, and although the stability of this feature has increased dramatically over the last few weeks, there are still a few issues related to the undo function, so be prepared for a bit of frustration, and make regular backups.  


== Obtaining TaxiDraw ==
=== Obtaining TaxiDraw ===
I'm hoping that we can do a release of taxidraw fairly soon, so that the  
I'm hoping that we can do a release of taxidraw fairly soon, so that the  
groundnet editing capabilities will become easily accesible. Until that time,  
groundnet editing capabilities will become easily accesible. Until that time,  
Line 469: Line 465:


== Creating the network ==
== Creating the network ==
== Startup locations ==
=== Startup locations ===
Once you have the reference material, it's time to start building the ground  
Once you have the reference material, it's time to start building the ground  
network. I typically start by placing all the parkings first. There are two  
network. I typically start by placing all the parkings first. There are two  
ways to do this. 1) Using the mouse, choose [insert|Startup Location] from  
ways to do this.  
the main menu. This will create a new startup location. Then left-click on it  
# Using the mouse, choose [insert|Startup Location] from the main menu. This will create a new startup location. Then left-click on it and drag it to its desired location.  
and drag it to its desired location. 2) Move the mouse to the location where  
# Move the mouse to the location where you want to place the startup location and press the 's' key on the keyboard. This places the startup location directly where the mouse is located.  
you want to place the startup location and press the 's' key on the keyboard.  
This places the startup location directly where the mouse is located.  


== AI Network Nodes ==
=== AI Network Nodes ===
Next you want to insert the AINodes, without connecting them yet. The  
Next you want to insert the AINodes, without connecting them yet. The  
procedure is basically the same as placing the startup locations. Either  
procedure is basically the same as placing the startup locations. Either  
Line 485: Line 479:
the node.  
the node.  


== Connecting the nodes: Drawing the network ==
=== Connecting the nodes: Drawing the network ===
Once you are finished adding all the nodes, and startup locations, it's time  
Once you are finished adding all the nodes, and startup locations, it's time  
to connect the nodes . This is the time to save your work and MAKE A BACKUP,  
to connect the nodes . This is the time to save your work and MAKE A BACKUP,  
Line 536: Line 530:
== 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 data/Airports/AI directory,  
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  
with the name of the ICAO code of your airport. For example  
data/Airports/AI/EHAM. 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".
<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 ==
Line 550: Line 544:


== Appendix: ==
== Appendix: ==
An below is an example section from data/Airports/AI/EHAM/parking.xml
An below is an example section from <tt>data/Airports/AI/EHAM/parking.xml</tt>


  <?xml version="1.0"?>
  <?xml version="1.0"?>

Navigation menu