Fr/High-Level Architecture: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
(Traduction intégrale)
mNo edit summary
Line 25: Line 25:
Il y a trois principaux avantages à cela par rapport à une simulation monolithique (par exemple FlightGear V3.6) :
Il y a trois principaux avantages à cela par rapport à une simulation monolithique (par exemple FlightGear V3.6) :


# Il met en oeuvre un environnement robuste pour rendre le simulateur multi-thread, en tirant parti des ordinateurs multi-cœurs, ou en exécutant différentes parties de la simulation sur différents ordinateurs (y compris surdifférentes plates-formes et systèmes d'exploitation).
# Il met en oeuvre un environnement robuste pour rendre le simulateur multi-thread, en tirant parti des ordinateurs multi-cœurs, ou en exécutant différentes parties de la simulation sur différents ordinateurs (y compris sur différentes plates-formes et systèmes d'exploitation).
# Cela permet aussi de répartir des parties du simulateur telles que l'[[AI|IA]] (en [[Decoupling the AI traffic system|découplant le système de trafic IA]]), le [[Fr/Modèles de dynamique de vol|FDM]], les [[Nasal scripting language|scripts Nasal]]<nowiki/>n le rendu des uns des autres, et des sous-systèmes moins critiques tels que la [[Advanced weather|météo]], afin que nous ayons un résultat cohérents (et peut-être même amélioré) des fréquences d'images (c'est-à-dire un impact réduit de [[How the Nasal GC works|Nasal GC]] sur la fréquence d'images).
# Cela permet aussi de répartir des parties du simulateur telles que l'[[AI|IA]] (en [[Decoupling the AI traffic system|découplant le système de trafic IA]]), le [[Fr/Modèles de dynamique de vol|FDM]], les [[Nasal scripting language|scripts Nasal]]<nowiki/>, le rendu des uns des autres, et des sous-systèmes moins critiques tels que la [[Advanced weather|météo]], afin que nous ayons un résultat cohérents (et peut-être même amélioré) des fréquences d'images (c'est-à-dire un impact réduit de [[How the Nasal GC works|Nasal GC]] sur la fréquence d'images).
# Il fournit un très bon environnement pour permettre à quiconque de créer des composants qui interagissent avec FlightGear en utilisant des langages de programmation autres que C/C++ (pensez Ada, Java, Python, etc.). Ceux-ci peuvent s'exécuter dans leurs propres threads et résident dans des binaires séparés, qui seront certainement plus faciles à déboguer/dépanner (pensez aux tests de régression, c'est-à-dire exécuter un sous-système autonome dans une session gdb/valgrind dédiée), sans se soucier de comment modifier/corriger et recompiler FlightGear.
# Il fournit un très bon environnement pour permettre à quiconque de créer des composants qui interagissent avec FlightGear en utilisant des langages de programmation autres que C/C++ (pensez Ada, Java, Python, etc.). Ceux-ci peuvent s'exécuter dans leurs propres threads et résident dans des binaires séparés, qui seront certainement plus faciles à maintenir (pensez aux tests de régression, c'est-à-dire exécuter un sous-système autonome dans une session gdb/valgrind dédiée), sans se soucier de comment modifier/corriger et recompiler FlightGear.


Un bon aperçu du fonctionnement de l'architecture HLA est disponible ici (en anglais) : [https://pitchtechnologies.com/wp-content/uploads/2020/06/TheHLAtutorial.pdf http://www.pitchtechnologies.com/wp-content/uploads/2014/04/TheHLAtutorial.pdf]
Un bon aperçu du fonctionnement de l'architecture HLA est disponible ici (en anglais) : [https://pitchtechnologies.com/wp-content/uploads/2020/06/TheHLAtutorial.pdf http://www.pitchtechnologies.com/wp-content/uploads/2014/04/TheHLAtutorial.pdf]
Line 36: Line 36:


* Intention d'utiliser OpenRTI comme RTI sous-jacent. Il s'agit d'un RTI standard IEEE 1516 open source, écrit par Mathias Fröhlich et disponible sur https://sourceforge.net/projects/openrti/.
* Intention d'utiliser OpenRTI comme RTI sous-jacent. Il s'agit d'un RTI standard IEEE 1516 open source, écrit par Mathias Fröhlich et disponible sur https://sourceforge.net/projects/openrti/.
* Mathias a également développé une boîte à outils open source pour agir comme une bibliothèque d'interface, avec pour nom de code [[SimKit]]. Cela se trouve au-dessus du RTI et simplifie grandement l'interfaçage avec le RTI. L'intégration Python est également excellente , ce qui facilite l'écriture de scripts pour les modules fédérés. Simkit est disponible sur : https://sourceforge.net/projects/sim-kit/
* Mathias a également développé une boîte à outils open source pour agir comme une bibliothèque d'interface, avec pour nom de code [[SimKit]]. Cela se trouve au-dessus du RTI et simplifie grandement l'interfaçage avec le RTI. L'intégration Python est également excellente, ce qui facilite l'écriture de scripts pour les modules fédérés. Simkit est disponible sur : https://sourceforge.net/projects/sim-kit/


En utilisant SimKit, le point d'intégration se trouve dans le code FlightGear au lieu de  [[SimGear]]), en particulier le code se trouvant dans $FG_SRC/Network/HLA.
En utilisant SimKit, le point d'intégration se trouve dans le code FlightGear au lieu de  [[SimGear]]), en particulier le code se trouvant dans $FG_SRC/Network/HLA.
Line 44: Line 44:
Le FOM est un jeu de fichiers XML dans [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/HLA/ FGData/HLA].
Le FOM est un jeu de fichiers XML dans [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/HLA/ FGData/HLA].


Les données d'orientation dans le FOM (SGOrientationWGS84) sont des Quaternions ([https://fr.wikipedia.org/wiki/Quaternion https://en.wikipedia.org/wiki/Quaternion]), et ce sont les valeurs i,j,k. De mémoire, l'orientation est relative à un cadre centré sur la Terre, et il existe des fonctions dans SimGear pour convertir en cap/tangage/roulis en les ombinant avec la position de l'objet.<ref> {{cite web
Les données d'orientation dans le FOM (SGOrientationWGS84) sont des Quaternions ([https://fr.wikipedia.org/wiki/Quaternion https://en.wikipedia.org/wiki/Quaternion]), et ce sont les valeurs i,j,k. De mémoire, l'orientation est relative à un cadre centré sur la Terre, et il existe des fonctions dans SimGear pour convertir en cap/tangage/roulis en les combinant avec la position de l'objet.<ref> {{cite web
   | url    = http://forum.flightgear.org/viewtopic.php?p=280098#p280098
   | url    = http://forum.flightgear.org/viewtopic.php?p=280098#p280098
   | title  = <nowiki>Re: HLA </nowiki>
   | title  = <nowiki>Re: HLA </nowiki>
742

edits

Navigation menu