FlightGear

       FlightGear je slobodný OpenSource multiplatformový simulátor letu lietadiel vyvíjaný od roku 1997 skupinou mnohých vývojárov na celom svete. Od roku 1997 sa tento projekt neustále vyvíja a v súčasnosti je distribuovaný vo verzii  1.0.0. Jej prvé uvoľnenie bolo v decembri 2007. Ide o multiplatformovú aplikáciu pre rozmanité operačné systémy ako Microsoft Windows (Win32), Mac Os X, Linux, IRIX, a Solaris. Jedinou podmienkou použitia je podpora grafického rozhrania OpenGL verzie 1.0. FlightGear kód je uvoľnený za podmienok GNU General Public License.



       FlightGear využíva, ako simulačné jadro, modul vlastného vývoja pod názvom SimGear, ktorý je používaný v dvoch smeroch, ako jadro aplikácií pre koncových používateľov (rôzne simulátory a herné zariadenia) alebo ako nástroj výskumu pre akademické a vedné inštitúcie, ktoré sa zaoberajú výskumom simulátorov a riadením simulácií. Široká prispôsobiteľnosť simulačného jadra SimGear je dôkazom použiteľnosti veľkého množstva modelov lietadiel, ktoré sú k dispozícii v FlightGear, od rôznych klzákov cez vrtuľníky a dopravné lietadlá až k bojovým stíhačkami. Tieto modely sú postupne pridávané ďalšími vývojármi.

        Aby bola zachovaná realistickosť správania sa jednotlivých modelov lietadiel v prostredí FlightGear-u podľa ich originálnej predlohy, je nutné zachovávať určité štandardy ich návrhu podľa definovaných modelov dynamiky letu, tzv. FDM (Flight Dynamics Models).

      Flight Dynamics Models (FDM) popisujú dynamické vlastnosti letu lietadiel tak, ako budú simulované počas letu. FlightGear dokáže využiť množstvo dynamických formátov, či už z vlastného vývoja alebo importovaných z iných projektov. Môžeme povedať, že FlightGear je vlastne virtuálna pilotná kabína nad simulačným jadrom, ktoré využíva definované vlastnosti jednotlivých modelov FDM.

FlightGear používa tieto najznámejšie FDM modely:

  • LaRCsim - matematický model dynamiky letu od NASA
  • JSBSim - implicitné FDM model (rok 2000)
  • YASim - FDM model používajúci odlišnú výpočtovú metódu ako JSBSim (v 0.7.9 rok 2002)
  • UIUC - vyvinutý UIUC Applied Aerodynamics Group na univerzite Illinois v Urbana-Champaign ako náhrada LaRCsim
  • FlightGear môže byť externe konfigurovaný použitím vstupov z externých FDM zdrojov ako napríklad Matlab

       Pre spracovanie terénu je využívaný vysokovýkonný nástroj TerraGear, ktorý je kompatibilný s mnohými GIS aplikáciami a mapovými štandardmi. Ako príklad uvediem mapový formát VMap0 (Vector Map Level 0), ktorý používa ako štandard vo svojich simulačných nástrojoch aj NATO. Ide o kolekciu máp celého sveta vo vysokom rozlíšení. (obsahom sú vysokokvalitné mapy Európy a severnej Ázie, severnej Ameriky, južnej Ázie a Oceánie a južnej Ameriky a Afriky). V súčasnosti podporuje taktiež 3D zobrazovanie oblakov, svetelné efekty denného a nočného času.
        Na rozdiel od komerčných softvérových titulov je FlightGear uvoľnený ako OpenSource, čiže vo forme zdrojových kódov. Aby ho bolo možné používať, musí byť skompilovaný pre danú používanú platformu. Doplnkové používané knižnice sa postupom času menili.

V poslednej vývojovej fáze je nutné pre skompilovanie výsledného binárneho kódu integrovať podporu v podobe týchto knižníc:

  • SimGear – nevyhnutné emulačné jadro systému
  • TerraGear – podpora spracovania geografických dát
  • OpenAL – podpora pre zvuk a multimédia, obsahuje podporu pre SDL
  • PLIB - knižnica pre podporu komunikácie s externým hardvérom vo forme  periférií
  • OpenGL – podpora 3D urýchlenia grafiky
  • OpenSceneGraph – sada 3D grafických knižníc pre 3D vizualizáciu, založená na OpenGL , umožňuje vkladanie 3d objektov do geografických máp (budovy, mosty, atď.)
  • ďalšie knižnice v závislosti na platforme, pre ktorú sa vytvára kompilácia.

Štruktúra FlightGear

       Aby bolo možné správne konfigurovať vlastnosti a nastavenia FlightGear-u pre potreby monitorovania a riadenia je nutné pochopiť štruktúru a princíp fungovania jadra systému.
       Na rozdiel od komerčných PC simulátorov, OpenSource povaha FlightGear-u dovoľuje modifikáciu jeho zdrojových textov k zlepšeniu výkonu celého systému. K tomu dopomáha aj vynikajúca modulová štruktúra a flexibilná štruktúra celého fungovania FlightGear-u.

        FlightGear stromová štruktúra zdrojového textu je veľmi jednoduchá. Všetky FDM modely lietadiel sú umiestnené vo vlastnom podadresári v zložke FDM. Každý adresár obsahuje niekoľko hlavičkových súborov ktoré vyjadrujú definície daného objektu. Ostatné zdrojové súbory sa priamo vzťahujú k danému hlavičkovému súboru. Rovnako prehľadne sú rozčlenené aj ostatné adresáre AIModel, Aircraft, Airports, ATC, Autopilot, Cockpit, Controls (v kabíne lietadla), Environment, FDM, GUI (ponuky v menu, atď.), Include (konfigurácia prekladača), Input (joysticks, atď.), Instrumentation (prístrojové vybavenie), Main (rozbor príkazového riadku), Model (3D), MultiPlayer, Navaids, Network (zdieľanie dát po sieti), Objects (dynamická zmena scény), Replay, Scenery (statická definícia scény), Scripting (vzdialené ovládanie letu), , Server, Sound, Systems and Time (nastavenie času v simulovanom svete).

        FlightGear zobrazuje vnútorný stav simulácie cez vlastnú databázu parametrov daných infraštruktúrou SimGear-u. Týchto parametrov je 170, ako napríklad pozícia/zemepisná šírka, zemepisná dĺžka, nastavenie motora, elevácia atď. Všetky konfigurácie objektov je možné nastavovať prostredníctvom XML súborov (panely, instruments, 3D poloha, sound, atď.). Táto konfigurácia dodáva SimGear-u totálnu flexibilitu a škálovateľnosť.

        Mnoho úloh vo vnútri simulátora je nutné spúšťať pravidelne a opakovane v nejakom čase, no sú úlohy, ktoré sa menia menej často. Sú to typické úlohy ktorých výpočet a výsledné hodnoty významne nezmenia v čase 1/60 sekundy ale raz za sekundu, minútu alebo hodinu. Iterácie každej tejto úlohy zbytočne degraduje výkon a tým spomaľuje reakciu obsluhy na zmenu stavu simulácie. Preto bolo nutné optimalizovať beh jednotlivých menej aktualizovaných úloh, čim bola významne urýchlená reakcia celého systému na reakcie obsluhy.