1
0
Fork 0
Commit graph

105 commits

Author SHA1 Message Date
James Turner
b0384d035f Remove remaining includes of simgear/waypoint 2012-05-11 23:49:12 +01:00
James Turner
84beec9325 TrafficManager - check model paths when loading schedules, and ignore schedules with a missing mode completely. 2012-05-03 11:05:37 +01:00
ThorstenB
645b0ae588 #607: change path in warning message
Code checks both, "Aircraft" and "AI/Aircraft" directory - but users
obviously prefer to see the AI/Aircraft directory in the reported
warnings... ;-)
2012-05-02 23:50:07 +02:00
ThorstenB
229fe3bff9 Support disabling AI traffic at run-time. 2012-05-01 10:32:30 +02:00
ThorstenB
38ca3dda60 #248: support enabling AI module at run-time
Traffic manager can also be enabled at run-time, so "ai enabled" check
also needs to be moved for traffic.
2012-04-30 19:44:11 +02:00
ThorstenB
9b51c5e87e #248: support enabling AI module at run-time
Also adapt MP and traffic module to enable the AI module when required.
This makes /sim/ai/enabled an internal property: it can default to false
(in future), and can be enabled as soon as any user-level feature (traffic,
MP, local weather, ...) requires it.
2012-04-30 17:26:04 +02:00
James Turner
9eb0f67a82 Make traffic-manager schedule XML loading incremental, to
avoid a long pause during startup.
2012-04-23 15:03:08 +01:00
ThorstenB
82d66caaf2 Comment out some unused vars. 2012-04-07 16:20:22 +02:00
Durk Talsma
aab04f44bd Bugfixes and some finetuning:
* Pregenerating taxiroutes could interfere with runway assignments by ATC, when conditions changed, resulting in a taxi to one runway and a takeoff from another
* A simpler solution for the "Error in Traffic record bug". This still needs some more testing, but I haven't seen any error message anymore, since changing to the current code.
* Initialize AI traffic at speed zero, this should prevent some weirdness observed under boundary conditions.
* Don't activate groundnetwork proximity detection for pushback traffic until the "ready for startup message is transmitted. this should allow sufficient time for them to reserve a route, but a little more testing still needs to be done.
2012-01-02 22:23:24 +01:00
ThorstenB
4b2506d709 Add new performance monitoring subsystem.
Rename some subsystems for naming consistency.
2011-11-19 15:37:49 +01:00
James Turner
70b4f38ebc Goodbye automake. 2011-11-01 11:15:53 +00:00
Durk Talsma
538e632f45 * Updated routing algorithm. Just sorting the schedules by usage heuristics doesn't work well for major multihub airlines.
* Improved groundnetwork routing algorithm. Don't uncesscarily block taxiways. Instead, use a "just-in-time" blocking system. The unblocking algorithm still needs some work, but the current version is already a major improvement over the previous version.
* Some tweaks to the handover from ground to tower controller. Aircraft could refuse to take-off of even refuse to taxi onto the runway. This now seems to be solved.
2011-10-26 22:26:37 +02:00
Durk Talsma
020d6a6363 -Revert to the original design. It still appearch to yield the best scheduling results. 2011-10-10 23:03:57 +02:00
Durk Talsma
da3c098a4b AITraffic exits the runway as soon as possible (in theory; the code still needs some fine tuning). 2011-10-09 23:44:42 +02:00
Durk Talsma
4640f5bb02 * A new algorithm for determining hold position instructions. This version still needs some finetuning, but already appears to be more solid than the old version.
* Some tweaks to the traffic scheduling algorithm.
* Misc cleanup.
2011-10-03 20:54:58 +02:00
Durk Talsma
db816deb90 Added a new startup option. By giving the command line option --parkpos=AVAILABLE you can -in principle- let FlightGear decide what the most optimal parking location is. This option does require a few properties to be set that are also needed for future ATC use. Hence, they are listed under /sim/ATC, but could move to a different location if desired.
/sim/ATC/radius should be a nummeric estimate of the size of your aircraft. A small aircraft fits into a large parking, but a large aircraft does not fit into a small parking space. Because the AI part of radius is also used for slightly different purposes (prioritizing gate assignmments, the given valuem may deviate slightly from the real aircraft size. See http:/wiki.flightgear.org/Aircraft.radii for an overview of currently used values for the redius property.
/sim/ATC/flight-type can be any one of "ga", "cargo", "gate", "mil-fighter", "mil-cargo", or "vtol". See http://wiki.flightgear.org/Interactive_traffic#A_technical_perspective for more information.
optionally, the property /sim/ATC/airline can be set set to a three letter icao airline code. By way of illustration, I will commit a number of startup preset files setting these properties shortly.

Also did some more finetuning to the traffic mananger routing algorithm can be any one of "ga", "cargo", "gate", "mil-fighter", "mil-cargo", or "vtol". See http://wiki.flightgear.org/Interactive_traffic#A_technical_perspective for more information.
optionally, the property /sim/ATC/airline can be set set to a three letter icao airline code. By way of illustration, I will commit a number of startup preset files setting these properties shortly.

Also did some more finetuning to the traffic mananger routing algorithm.
2011-09-17 16:51:00 +02:00
Durk Talsma
67c604a722 Some tweaks to the AI traffic scheduling algorithm. Remove the requirement for a home port, but keep planning until we are back at the original port of departure. 2011-09-16 20:04:13 +02:00
Durk Talsma
35abe6d0ab A number of cosmetic and/or infrastructural changes.
Traffic Manager:
	* Just continue routing until we run out of flights. This change removes one of the major requirements for setting the "Home port" field.
	* Add a time restriction requirement for the aircraft scheduler; this became necessary after removing the limited-to-home-port routing restriction.
	* Added a new field to the heuristics calculation: take into account whether an aircraft has already been used in a previous session. Rotate aircraft assignments for greater variability across sessions.
	* Added a revision number to the cache files, so that old cache results, which are no longer compatible with the new file format, are discarded.

Groundnetwork and traffic control:
	* Added a revision number to the cache files, so that old and incompatible results are discarded.
	* The caching algorithm probably didn't store the correct data for airports that were processed while the user was quite far away. This is now corrected by checking whether the cached elevation data are equal to the generic airport elevation.
AIAircraft:
	* I've been searching for the infamous aircraft bend-over-backward bug, that can occur during initialization, but to no avail yet. The only variable potentially responsible (tgt_vs) wich can explain the irregular jumping behavior, as well as the weird pitch results is initialized in AIAircraft's only constructor (through AIBase), and I can't find any situation in the ground handling code where this variable could get bizarre values. But,
	* a couple of tgt_vs. calculations appear to be completely redundant. This value was calculated twice inside the ProcessFlightplan function, and subsequently again in the updateSecondaryTargetValues function. I have removed the calculations in the process flightplan function, without any apparent side effect.
2011-09-04 20:27:36 +02:00
Durk Talsma
5228053f7f Merge branch 'next' into durk-atc 2011-07-24 08:44:22 +02:00
Torsten Dreyer
eab9a65ebc Fix some gcc warnings 2011-07-17 19:31:28 +02:00
Durk Talsma
f8a8805e2d Merge branch 'next' into durk-atc 2011-07-01 22:20:40 +02:00
James Turner
029d2b00eb Tone down some log output for the release, especially related to airways/navaid loading. 2011-06-25 16:18:07 +01:00
Durk Talsma
a7ccae9fca More work on AI/ATC integration:
- Fixed a bug in AI aircraft ground steering code: When aircraft were not moving, the value of headingchangeRate kept increasing to insane levels. Although this was clamped to a maximum of 30 degrees per second, the initial rate could still push the aircraft in the wrong direction. In practice, this bug would be visible when an AI aicraft would be pushed back, when it tended to veer to the right.
 - Make sure that the aircraft slows down well ahead of the pushback point. This change ensures that the AC will actually reach the pushback point. It also ensures a slightly tighter steering range.
 - AI ground steering rate is tuned to 30 degrees per second at a nominal taxispeed of 15. I now modulate the heading adjustment rate by manipulating the adjustment using a non-linear function (the sqrt). This allows for a slightly tighter turn radius at speeds < 15 and slightly looser turns at speeds > 15.
 - The AI Flightplan generation code can return false. This can be used to determine whether any additional AI aircraft may be created. Currently, the function returns false when no more parkings are available. This should limit the build-up of huge AIAircraft tower stacks.
 - The ground network can now graphically display all aircraft actitivy on the ground network by using a virtual marker system.
2011-04-19 18:01:24 +02:00
Durk Talsma
c597f72158 Added some interface function to traffic manager related classes and added a traffic record that mimicks the users aircraft's traffic intentions. 2011-04-12 23:28:48 +02:00
ThorstenB
4458f7ce73 Enable AI traffic for offline users and issue #248
- #248: new enable/disable-ai-traffic command-line option
- AI traffic: don't wait for METAR when real-wx-fetch disabled, to
enable AI traffic when running offline
2011-01-08 21:38:26 +01:00
James Turner
a91ec5f9f9 Initial work on CMake build files, with considerable help from Olaf Flebbe. 2010-12-19 15:06:04 +00:00
James Turner
b9976f7d34 Fix for bug #72 - don't init traffic manager if disabled.
Disabling the traffic-manager at runtime will prevent new flights being scheduled.
2010-12-02 20:29:28 +00:00
Christian Schmitt
0a5e86f4e6 remove old .cvsignore files 2010-11-11 01:16:29 +01:00
James Turner
7ccba95b9c Remove direct uses of PLIB ulXXX functions 2010-10-24 07:10:51 +01:00
Durk Talsma
df00df3feb - Fix compiler warnings. 2010-09-27 17:48:38 +02:00
Durk Talsma
aba57077fd Issue a warning when finding duplicate tail numbers. Note that this is far from a fatal error, but does interfere with the startup heuristics data collection mechanism. 2010-09-03 12:32:55 +02:00
Durk Talsma
558582b58d * A few new features to allow database management and traffic pattern developement:
--prop:/sim/traffic-manager/dumpdata=true: dumps the currently loaded datafile to the console for inspection.
  --prop:/sim/traffic-manager/datafile=/path/to/somefile.xml: Skips autoscanning and reads traffic only from the specified xml file.
  --prop:/sim/traffic-manager/datafile=/path/to/somefile.conf: Slips autoscanning and reads traffic from a plain text file, as described on the forum/wiki

* Removed the use of pointers for heuristics calculations, as urged by Frederic Bouvier
* Fixed domain error in proportion calculation during loading, resulting in random skipping of aircraft, as reported by Jorg van der Venne.
2010-09-03 10:47:05 +02:00
Durk Talsma
800352e26f - Whoops, missed committing this tiny but fatal-if-not-included change. 2010-08-31 16:57:07 +02:00
Durk Talsma
eb45d524a8 Provide an initial heuristic for airports for which we haven't collected any usage data yet. 2010-08-31 13:21:30 +02:00
Durk Talsma
b090d3dabc Enable the collection of AI aircraft position statistics. This will allow for a dramatic speedup of the establishment of AI traffic after program initialization. 2010-08-30 21:13:16 +02:00
Durk Talsma
467513cbaf Major update to the AI code:
* New features
    - More realistic descent paths
    - Separation during descent and approach
    - ATC approach controller (still silent)
    - inbound traffic flow will start immediately
  * Bug fixes
    - Properly handle vertical speed when on ground
    - Departing aircraft now wait for taxiclerance before moving
    - Traffic manager waits for proper weather initialization
    - Fixed instabilities in the preferential runway usage code
    - Fine tuning of waypoint following code.
2010-08-29 19:25:34 +02:00
James Turner
4c7fb6c91b Removes some references (in comments / disabled code) to Point3D 2010-07-30 09:07:24 +01:00
durk
e004e43553 Expanded ATC communication between AI aircraft and Airport ground control. 2010-05-05 11:59:37 +02:00
jmt
7523f05047 bug #80, exception flying west from NZAA (Auckland, NZ). The underlying
issue is numerical problems in _wgs84_inverse, triggered by the traffic-manager
testing enormous distances geodetically.

Changes
 - refactor AISchedule::update, so the aircraft approximate position
   calculation is simpler.
 - refactor AIAircraft to no longer use exceptions as a return value mechanism
 - change AISchedule::update to use cartesian math for in-visible-range check
2010-02-21 22:24:42 +01:00
Tim Moore
bb419b588c Merge branch 'durk/traffic' 2009-12-22 00:15:13 +01:00
Tim Moore
c4e62cc69f Don't allocate string temporaries for comparisons. 2009-12-20 10:34:07 +01:00
durk
bfd3efde5c Allow flights that arrive at their departure airport. 2009-12-07 00:12:28 +01:00
jmt
daadb16370 Logging: less verbose traffic-manager startup. 2009-09-17 22:45:30 +02:00
frohlich
8676c2bbd8 Replace the SGVec*::sg() methods with the equivalent SGVec*::data() calls.
Modified Files:
	src/Traffic/Schedule.cxx src/Sound/fg_fx.cxx src/Main/main.cxx
	src/Instrumentation/navradio.cxx
	src/AIModel/AIFlightPlanCreateCruise.cxx
2009-09-09 08:56:30 +02:00
Tim Moore
d838ef5f40 compilation fixes for gcc -Wall -Werror
Most are cosmetic, but the changes in the FGATCInstruction constructor
fix unitialized members.
2009-08-24 17:13:31 +02:00
jmt
6c65a26ddf Switch some log message from the traffic code to SG_BULK (with Durk's permission) 2009-07-02 08:59:16 +02:00
jmt
52bac46535 Replace CourseAndDistance uses in traffic code with SGGeodesy calls. 2009-06-11 16:05:20 +02:00
frohlich
a99ea1c7b5 Port over remaining Point3D usage to the more type and unit safe SG* classes.
Remove leftover headers from plib/sg.

Modified Files:
 	src/AIModel/AIBase.cxx
 	src/AIModel/AIFlightPlanCreateCruise.cxx
 	src/ATCDCL/AIEntity.cxx src/ATCDCL/AIEntity.hxx
 	src/ATCDCL/AIGAVFRTraffic.cxx src/ATCDCL/AIGAVFRTraffic.hxx
 	src/ATCDCL/AILocalTraffic.cxx src/ATCDCL/AILocalTraffic.hxx
 	src/ATCDCL/AIMgr.cxx src/ATCDCL/ATC.hxx
 	src/ATCDCL/ATCDialog.cxx src/ATCDCL/ATCProjection.cxx
 	src/ATCDCL/ATCProjection.hxx src/ATCDCL/ATCutils.cxx
 	src/ATCDCL/ATCutils.hxx src/ATCDCL/approach.cxx
 	src/ATCDCL/commlist.cxx src/ATCDCL/ground.cxx
	src/ATCDCL/ground.hxx src/ATCDCL/tower.cxx
 	src/ATCDCL/tower.hxx src/Airports/calc_loc.cxx
 	src/Airports/dynamics.cxx src/Airports/groundnetwork.cxx
 	src/Airports/parking.cxx src/Airports/runwayprefs.cxx
 	src/Airports/simple.cxx src/Cockpit/cockpit.cxx
 	src/Cockpit/hud.hxx src/Cockpit/hud_card.cxx
 	src/Cockpit/hud_rwy.cxx src/Environment/environment.cxx
 	src/FDM/UFO.cxx src/FDM/SP/MagicCarpet.cxx src/GUI/dialog.hxx
 	src/Instrumentation/HUD/HUD.hxx
 	src/Instrumentation/HUD/HUD_runway.cxx
 	src/Instrumentation/KLN89/kln89.cxx src/Main/fg_init.cxx
 	src/Main/viewer.cxx src/Main/viewmgr.cxx
 	src/Model/panelnode.cxx src/MultiPlayer/mpmessages.hxx
 	src/Scenery/tilemgr.cxx src/Traffic/SchedFlight.cxx
 	src/Traffic/TrafficMgr.cxx
2009-03-18 08:00:08 +01:00
durk
d24fe19914 One step further toward better integration of AI and ATC systems.
* Changed the runway XX. ATC message to actually report the real
   designated departure runway
 * In case of multiple active runways, select the one with a heading that is
   closest to the direction of the ultimate departure destination / lines up
   with the arrival path.
2009-02-16 00:56:44 +01:00
durk
c6f88e5b9b Development for two new features:
* Some support for geometry information provided by the custom scenery
   project. Current support is for AI groundnets and runway use files only
   since this is a switch that involves a lot of data verification and
   updating, during the transistion the actual path where the data can be
   read from is user configurable. setting the property

   /sim/traffic-manager/use-custom-scenery-data to true

  will cause flightgear to read the ground networks from the scenery
  directory (--{fg-scenery}/Airports/[I]/[C]/[A]/[ICAO].groundnet.xml to be
  precise). Setting this property to false will retain the original
  behvior.
* For departing aircraft, runway takeoff calculations will be done on the
  basis of the performance database. For testing purposes, a performance
 estimate for a heavy jet has been added.
2009-02-01 23:44:10 +01:00