On Tuesday 26 September 2006 01:16, Milijana Babovic wrote: > What is the easiest way to find coordinates for parking places when create > parking.xml? I tried to create parking.xml using the airport chart for > parking places, but there are big differences (coordinates from airport > chart are very often away from airport place).
On Tuesday 26 September 2006 14:26, Stuart Buchanan wrote: > How does the AI code handle taxi-ing ? The document on the page only > refers to aircraft and flights. Do I need to define runways/taxiways for > airports in a separate file, or does it pick this information up from > apt.dat ? On Tuesday 26 September 2006 14:34, Darko Tasovac wrote: > I am also interesting in Taxinodes and TaxiwaySegments. How do you > determine the nodes? > The three questions above more or less relate to the same issue, so I'll try and explain how the taxi system works. I'm planning to write a more elaborate tutorial later on, so hopefully this email will give you guys a head start. 1. Ground networks: A technical perspective 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 precise location of this file is data/Airports/AI/[ICAO-id]/parking.xml. For 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 excerpt from this file. The first section of the file contains the parameters of the airport's parking locations. This section is followed by a list of all the nodes in the ground network, and the final section contains a list of segments or "arcs" as David Luff called them initially, which basically describe which node is connected to which other node. Each parking and ai node has a unique index number, which is used by the segments to link the startup location and the taxiways together. Parkings and AI nodes have the following parameters: - index (unique, consecutively numbered id) - lat (position in latitude) - lon (position in longitude) - name (name as found on airport charts: e.g. D23, or C1). Name is currently not used, Parking names will be used in future ATC, but AINode names will probably not be used except for some specific internal functions. airlineCodes= list any (comma separated) ICAO airline codes here to specify which airlines are allowed here. Say "NONE" if any airline is allowed to park here. -pushBack (used to determine whether departing aircraft can make left or right turns after pushback In addition, each parking has a number of additional parameters: type: specifies what type of aircraft can use this parking bay: Valid values for this parameter are: cargo, gate (=usually intermediate to heavy airline traffic), ramp (=usually smaller regional jets and commuter aircraft), ga (=general aviation), and mil (=military). See the description of the <flighttype> parameter in http://www.xs4all.nl/~dtalsma/FlightGear/fgtraffic-doc-2006-08-20.pdf for a comparison. number: Currently unused, and likely to be removed heading: the heading the aircraft parked in this bay. radius: a value used to determine whether the aircaft will fit in this bay: see also the description of the <radius> parameter in http://www.xs4all.nl/~dtalsma/FlightGear/fgtraffic-doc-2006-08-20.pdf Finally, the taxiway segments contain three parameters. - begin (= the id of the parking or AINode this segment starts) - end (= the id of the parking or AINode this segment ends) - Name (= name of the taxiway. Currently still unused) 2. Creating a ground network, a practical approach. Okay that finishes the technical description of the parking file format. The good news is, you probably don't need to know too much about the technical side of the file structure to create a ground network. 2.1 TaxiDraw The CVS version of taxidraw (http://taxidraw.sourceforge.net/) has ground network editing capabilities, and will in the short to intermediate term probably be the best option to create a ground network for FlightGear. Before I proceed, let me add a word of caution. Although I've fixed quite a number of taxiway editing bugs in taxidraw recently, I'm still experiencing occasional program crashes while using the undo function, so be prepared for a bit of frustration, and make regular backups (I'm working on fixes). 2.2.1 Obtaining taxidraw 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, linux users can try to check out a version of taxidraw from CVS by following the instructions on http://taxidraw.sourceforge.net/#download Windows users can also do this either by using the free winCVS program or using the free cygwin environment. 2.2 Getting good reference material. The first step in preparation of creating a ground network consists of getting some reference material, which relates to the question asked by Milijana Babovic. Ideally, You'd like to find a good satellite or arial image. If you can't find that, using a schematic diagram might also work. In most cases, using http://maps.google.com, and selecting the satellite imagery will work pretty well as reference. You can't save the google images, so importing them as a background image in taxidraw won't work. However, using these images as a reference and placing the parking notes at the approximate location indicated by the map will (at least for an initial version) give reasonable results. 2.3 Creating the network 2.3.1 Startup locations 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 ways to do this. 1) 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. 2) 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. 2.3.2 AI Network Nodes Next you want to insert the AINodes, without connecting them yet. The procedure is basically the same as placing the startup locations. Either select [Insert| Add AI Network Node ] from the menu, or move the mouse to the location where you want to place the node. Press the 'n' key to actually add the node. 2.3.3 Connecting the nodes: Drawing the network 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, as the nodes connection code is not entirely stable yet. Connecting nodes can be done by switching the editor to arcing mode, by pressing the 'm' key. The edit mode of taxidraw is indicated in the lower right corner of the status bar. After pressing 'm' it should read ARC. If you need to switch back to the standard edit mode press 'm' again. Okay, making sure we are still in "ARC" mode, select the first node or parking you want to connect to the network by clicking on it. The node you have clicked will be selected, and a red line with an arrow symbol will be drawn between this node and the mouse cursor. Now, select the second node that you wish to connect this node to. Click it with the mouse, and the red line will now be drawn between the the two nodes. You have created a taxiroute. Now repeat this process for all the nodes you want to connect. Note that taxi segments are unidirectional. If you want to create bidirectional taxiways, make sure you not only connect node "1" to node "2" but also to connect node "2" to node "1". Second, notice also that once you have connected two nodes to each other, and want to create a second taxiway that starts at the node that the previous node ended, you have to select this node again, to become the first node in the next taxiway. 2.3.4 Editing the startup location parameters. 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 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, 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 name, Once you're done editing, click okay to accept the new values, or cancel to discard. 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. (It'll be in a taxidraw near you soon. :-)) 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 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". 2.3.5 Copying the ground network into FlightGear's data directory 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, 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 2,3,6 Testing the network Startup flightGear at the airport for wich 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. 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. Okay, that's it for now. Hopefully, this is some material to chew on. Please let me know if there are any questions. Cheers, Durk Appendix: -- An example section from data/Airports/AI/EHAM/parking.xml <?xml version="1.0"?> <groundnet> <parkinglist> <Parking index="0" type="cargo" name="R02" number="1" lat="N52 17.664" lon="E04 44.527" heading="328.8" radius="43" airlineCodes="NONE" pushBack="left"/> <Parking index="1" type="cargo" name="R04" number="1" lat="N52 17.682" lon="E04 44.572" heading="328.8" radius="43" airlineCodes="NONE" pushBack="left"/> [SNIP] <Parking index="198" type="gate" name="J80" number="1" lat="N52 18.678" lon="E04 44.659" heading="0" radius="15" airlineCodes="NONE" pushBack="left"/> </parkinglist> <TaxiNodes> <node index="199" lat="N52 20.778" lon="E04 42.626" name="AI waypoint node"/> <node index="200" lat="N52 20.622" lon="E04 42.771" name="AI waypoint node"/> <node index="201" lat="N52 20.478" lon="E04 42.592" name="AI waypoint node"/> <node index="202" lat="N52 20.394" lon="E04 42.685" name="AI waypoint node"/> <node index="203" lat="N52 20.406" lon="E04 42.754" name="AI waypoint node"/> <node index="204" lat="N52 20.310" lon="E04 42.740" name="AI waypoint node"/> <node index="205" lat="N52 20.148" lon="E04 42.565" name="AI waypoint node"/> [SNIP]... <node index="597" lat="N52 18.666" lon="E04 45.372" name="AI waypoint node"/> <node index="598" lat="N52 18.678" lon="E04 45.358" name="AI waypoint node"/> <node index="599" lat="N52 18.678" lon="E04 45.377" name="AI waypoint node"/> </TaxiNodes> <TaxiWaySegments> <arc begin="237" end="234" name="Route"/> <arc begin="234" end="239" name="Route"/> <arc begin="239" end="242" name="Route"/> <arc begin="242" end="245" name="Route"/> <arc begin="369" end="374" name="Route"/> <arc begin="374" end="369" name="Route"/> <arc begin="370" end="373" name="Route"/> <arc begin="373" end="370" name="Route"/> </TaxiWaySegments> </groundnet> ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Flightgear-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/flightgear-users
