Annonce

Réduire
Aucune annonce.

Accelerations X plane

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Accelerations X plane

    Bonjour à tous,

    Je suis étudiant à l'IUT de Nantes en Informatique et j'ai pour projet de réaliser un simulateur de vol dynamique avec deux autres personnes. Notre client est une école de pilotage et le simulateur sera utilisé pour piloter des ULM.
    Nous devons seulement nous occuper de la partie récupération des données (avec X-Plane 9) et le traitement des données pour ensuite les envoyer à une cabine.

    La cabine qui sera construite (par un autre département de l'IUT) sera fermée (aucun repère visuel), elle sera contrôlée par 2 moteurs. Nous souhaiterions donc obtenir deux angles (de -30° à 30°) qui seront envoyés aux deux moteurs.

    Nous savons qu'il faut uniquement prendre en compte les accélérations de l'avion et les transformer en mouvement pour la plateforme. Le problème est que dans les sorties d'X plane, on ne peut que récupérer les accélérations angulaires de l'avion. Est ce que en multipliant cette accélération par le rayon de l'avion ( distance entre le nez et les ailes) on peut simuler les accélérations subies par le pilote?
    Autrement, y a t-il une autre façon de calculer l'accélération subie par le pilote?
    En esprérant avoir publié dans la bonne section.
    Bonne journée a tous.

    Antonin

  • #1
    Les accélérations sont disponibles dans les datarefs sous différentes formes (à explorer) :
    sim/flightmodel/forces/g_nrml float n ??? ???
    sim/flightmodel/forces/g_axil float n ??? ???
    sim/flightmodel/forces/g_side float n ??? ???
    sim/flightmodel/position/local_ax float y mtr/sec2 The acceleration in local OGL coordinates
    sim/flightmodel/position/local_ay float y mtr/sec2 The acceleration in local OGL coordinates
    sim/flightmodel/position/local_az float y mtr/sec2 The acceleration in local OGL coordinates
    sim/flightmodel/position/P_dot float n deg/sec2 The roll angular acceleration (relative to the flight)
    sim/flightmodel/position/Q_dot float n deg/sec2 The pitch angular acceleration (relative to the flight)
    sim/flightmodel/position/R_dot float n deg/sec2 The yaw angular acceleration rates (relative to the flight)

    Daniel
    Intel I5 6500 3,2 Ghz, RAM 16 Go, GeForce GTX 960 2 Go, Linux Ubuntu 18.04
    Portable Asus Intel i5 2,8 Ghz, RAM 8 Go, GeForce 840M, Windows 8.1 64bits
    #AMD II X2 245 2,9 Ghz, RAM 8 Go, GeForce GTX 650 1 Go, Linux Ubuntu 14.04
    #AMD 64x2 5200 2,6 Ghz, RAM 4 Go, GeForce 9600 GT 512 Mo, Linux Ubuntu 10.04
    #MacBook Pro 15" 2,4 Ghz, RAM 4 Go, GeForce GT 330 M 256 Mo, Mac OS 10.6

    Commentaire


    • #1
      Bonjour Daniel,

      Je ne vois pas à quoi correspond le chemin que vous donnez (sim/flightmodel/position/local_ax float y mtr/sec2).
      Est-ce un chemin dans le repertoire d'installation de Xplane dans quel cas je n'ai pas ce chemin, ou alors est-ce une donnée output (Données Entré & Sorties de l'onglet Réglages) du simulateur en lui même.
      Merci beaucoup
      Antonin

      Commentaire


      • #1
        Ce sont des données internes au logiciel X-Plane auxquelles on a accès via un plugin (DataRef Editor) non seulement en lecture, mais aussi (pour certaines) en écriture.

        Ces données sont connues sous le nom général de DataRef et peuvent être obtenues via un plugin. Voir le wiki d'X-Plane (en anglais) qui donne les outils nécessaires à l'élaboration d'un plugin (SDK).

        Pour DataRef Editor, c'est ici : http://wiki.x-plane.com/DataRefEditor
        Vous y trouverez les liens vers d'autres chapitres...

        Commentaire


        • #1
          Merci pour cette réponse, je comprends mieux maintenant.
          J'ai téléchargé les fichiers ".xpl", et j'en ai copié certain dans le dossier plugins dans xplane.
          J'ai aussi ouvert le fichier dataRef.txt, où j'y ai trouvé les différentes lignes évoquées par Daniel. Le problème est que je ne vois pas quel fichier xpl du plugin datarefeditor permet de recupérer les valeurs correspondantes à ces lignes.
          De plus, il faudrait que je les récupère à l'aide d'un programme, si possible en java. Est-ce possible?
          Merci de vos réponses.

          Commentaire


          • #1
            pour le moment, il faut un plug ing pour récupérer les données via le SDK.
            il est possible, mais il faut oir s'il ne faut pas un plug ing de récupérer les données data en les envoyant en udp via Ethernet sur une machine tierce.

            il faut étudier soigneusement le plug ing, en générale il peut être réaliser en C ou C++.
            Regarder un exemple, compiler le sous Visual basic, ensuite modifier.

            Par contre pour une plug in java regarder le projet XHSI.

            De tout façon, le .xpl est impératif en terme de constrution.(plug ing).
            C'est lui qui sera charger par X-plane et devrat etre compatible alec l'interface SDK

            voir les liens suivants

            Dernière modification par maclinuxg4, 22 février 2011, 19h42.
            IVAO/VATSIMF-HFCE
            mac OS 10.6.8+ Cybord 3D ch throttle 4 quadrant /mac OS 10.6.8/TS (plantronics DSP 500) /Xplane v9.70 + palonnier CH + TrackiR 5 + TrackPRO

            Commentaire


            • #1
              Si j'ai tout compris il te faut lire des valeurs dans X-Plane pour les faire parvenir à un module qui va asservir deux moteurs en position angulaire.

              Il y a deux façons de lire des valeurs dans X-Plane :

              1 - Utiliser la transmission de données intégrée à X-Plane. Dans ce cas ce sont des paquets UDP qui sont utilisés, le format est décrit dans le fichier "Sending Data to X-Plane.html" qui se trouve dans le répertoire "Instructions", la sélection des valeurs à envoyer / recevoir se fait dans un des menus de X-Plane ( de mémoire). L'avantage est qu'il suffit de faire la partie "hors X-Plane". Le bémol étant que le-dit format des paquets peut changer n'importe quand, et que donc il faudra s'y plier ou se limiter à une version de X-Plane.

              2 - Réaliser son propre plug-in de transmission. Dans ce cas plus de dépendance vis-à-vis de X-Plane, possibilité de transmettre sur tout support imaginable pas seulement sur Ethernet. L'inconvénient, dans ton cas, c'est qu'il n'y a pas de support pour Java, c'est C/C++ ou Python et rien d'autre.

              N'oublie pas de prendre en considération que X-Plane est un système temps réel, et qu'il n'est pas recommandé de bloquer sa boucle de traitement sur des opérations d'entrées/sorties.

              Ils vous font faire que du Java dans les IUTs ? :oh noes:

              PhM
              Dernière modification par PhM, 23 février 2011, 00h36.
              X-Plane 9.70 & 11.5r1 / W10 / AMD Ryzen 7 2700 / 8Go RAM / Sapphire R9 390 Nitro 8Go / Sapphire HD7870 GHz 2Go / Samsung LN40C530 / Oculus DK2 / LeapMotion / Saitek X56 / Thrustmaster Pendular Rudder

              Commentaire


              • #1
                Bonjour à tous et merci pour vos réponses.

                Tout d'abord nous avons déjà réussi à récupérer les données par udp par l'intermédiaire d'xplane, mais nous nous sommes rendu compte que les données potentiellement récupérable ne sont pas intéressantes pour nous, car il nous faudrait l'accélération linéraire (et non l'accélération angulaire). C'est pourquoi je pense que nous allons essayer de développer un plugin, mais je ne vois pas vraiment la marche a suivre. Il faut un fichier xpl dans le dossier ressources/plugins. Mais je ne vois pas quel est le fichier spécifique qui nous sera utile pour l'accélération linéaire.
                Ensuite il nous faudra développer en c un programme qui va récupérer les données du plugin si j'ai bien compris. Nous avons des notions en C, mais c'est vrai que nous faisons beaucoup plus de java...
                C'est pourquoi si vous avez une doc qui explique en détail la procedure que nous devons suivre pour réaliser le programme, je vous en serais reconnaisant.
                Merci beaucoup de prendre du temps pour nous répondre.
                Antonin

                Commentaire


                • #1
                  Envoyé par haprock Voir le message
                  Tout d'abord nous avons déjà réussi à récupérer les données par udp par l'intermédiaire d'xplane, mais nous nous sommes rendu compte que les données potentiellement récupérable ne sont pas intéressantes pour nous, car il nous faudrait l'accélération linéraire (et non l'accélération angulaire).
                  Par UDP on n'a accès qu'à une toute petite partie des variables du simulateur. C'est pourquoi il vaut mieux passer par un plugin.

                  Envoyé par haprock Voir le message
                  C'est pourquoi je pense que nous allons essayer de développer un plugin, mais je ne vois pas vraiment la marche a suivre. Il faut un fichier xpl dans le dossier ressources/plugins. Mais je ne vois pas quel est le fichier spécifique qui nous sera utile pour l'accélération linéaire.
                  Ensuite il nous faudra développer en c un programme qui va récupérer les données du plugin si j'ai bien compris. Nous avons des notions en C, mais c'est vrai que nous faisons beaucoup plus de java...
                  C'est pourquoi si vous avez une doc qui explique en détail la procedure que nous devons suivre pour réaliser le programme, je vous en serais reconnaisant.
                  Pour la documention, voir les liens de MacLinux plus haut.

                  Le fichier .xpl est un programme. C'est ce qu'il faut écrire en C ou C++. Par ce programme vous aurez accès à plus de variables d'X-Plane comme celles que j'ai indiquées plus haut.
                  Ensuite vous pouvez vous contenter de faire un plugin (= programme, = fichier .xpl) minimal qui récupèrera les données souhaitées puis les enverra en UDP à un autre programme dans un autre langage (java par exemple) qui utilisera ces données pour commander vos moteurs.

                  Daniel
                  Intel I5 6500 3,2 Ghz, RAM 16 Go, GeForce GTX 960 2 Go, Linux Ubuntu 18.04
                  Portable Asus Intel i5 2,8 Ghz, RAM 8 Go, GeForce 840M, Windows 8.1 64bits
                  #AMD II X2 245 2,9 Ghz, RAM 8 Go, GeForce GTX 650 1 Go, Linux Ubuntu 14.04
                  #AMD 64x2 5200 2,6 Ghz, RAM 4 Go, GeForce 9600 GT 512 Mo, Linux Ubuntu 10.04
                  #MacBook Pro 15" 2,4 Ghz, RAM 4 Go, GeForce GT 330 M 256 Mo, Mac OS 10.6

                  Commentaire


                  • #1
                    Bonjour à tous,

                    Je compte créer un fichier xpl qui récupérera les accélérations et les enverra en udp vers le programme java de gestion de la carte.
                    Mais je rencontre beaucoup de problème avec ce SDK. J'ai lu la doc et j'ai essayé de créer un scanner comme expliqué dans le tutorial (http://www.xsquawkbox.net/xpsdk/medi...mpleteBeginner), mais si je vous ai bien suivit le xpl est le résultat de l'édition des lien du fichier.c. Or, je ne peux que compiler mon programme, et donc le fichier xpl n'est pas créé. De plus je ne vois pas comment ajouter les librairies du SDK dans le projet xcode donné dans l'archive SDKExamples.zip.
                    J'aurais une dernière question: Si j'arrive à créer un plugin sur OSX, est-ce qu'il sera portable sur windows, avec la même version de Xplane (9.x)?
                    Je suis désolé de vous poser encore des questions, mais je n'ai pas trouvé ces réponse dans le tutorial, et vous avez l'air d'en connaitre pas mal sur ce sdk alors j'en profite.
                    Encore merci.
                    Antonin

                    Commentaire


                    • #1
                      Envoyé par haprock Voir le message
                      J'aurais une dernière question: Si j'arrive à créer un plugin sur OSX, est-ce qu'il sera portable sur windows, avec la même version de Xplane (9.x)?
                      Un plugin est un exécutable et comme tout programme exécutable il est dépendant de la plateforme pour laquelle il a été compilé. C'est pourquoi il y a des versions de plugins pour Mac, Windows ou Linux.

                      Daniel
                      Intel I5 6500 3,2 Ghz, RAM 16 Go, GeForce GTX 960 2 Go, Linux Ubuntu 18.04
                      Portable Asus Intel i5 2,8 Ghz, RAM 8 Go, GeForce 840M, Windows 8.1 64bits
                      #AMD II X2 245 2,9 Ghz, RAM 8 Go, GeForce GTX 650 1 Go, Linux Ubuntu 14.04
                      #AMD 64x2 5200 2,6 Ghz, RAM 4 Go, GeForce 9600 GT 512 Mo, Linux Ubuntu 10.04
                      #MacBook Pro 15" 2,4 Ghz, RAM 4 Go, GeForce GT 330 M 256 Mo, Mac OS 10.6

                      Commentaire


                      • #1
                        Problème pour recuperer l'acceleration

                        Bonjour à tous, et désolé de revenir à la charge avec les questions.
                        J'ai avancé depuis la dernière fois et j'arrive maintenant a faire fonctionner mon plugin. Le problème est que j'ai mit en place une boucle while infinie pour récupérer en permanence les 3 accélérations et les mettre dans un fichier ( par le réseau dans une prochaine version) pour l'instant. Le problème est qu'enfaite xplane plante car il exécute ma boucle et n'en sort jamais et ne progresse pas dans le chargement du jeu.
                        Avez vous une méthode pour récupérer en permanence une variable sans mettre en place une boucle qui fait planter Xplane?
                        Je vous remercie.
                        Si vous voulez voir le code dites le moi.
                        Antonin

                        Commentaire


                        • #1
                          Envoyé par haprock Voir le message
                          Le problème est qu'en fait xplane plante car il exécute ma boucle et n'en sort jamais et ne progresse pas dans le chargement du jeu.
                          ...
                          Ben oui c'est toi même qui lui a demandé de le faire :

                          Envoyé par haprock Voir le message
                          ...j'ai mis en place une boucle while infinie pour récupérer en permanence les 3 accélérations...
                          J'avais précisé :

                          Envoyé par PhM
                          N'oublie pas de prendre en considération que X-Plane est un système temps réel, et qu'il n'est pas recommandé de bloquer sa boucle de traitement sur des opérations d'entrées/sorties.
                          Ce qui se trouve ici devrait t'être utile.

                          PhM
                          X-Plane 9.70 & 11.5r1 / W10 / AMD Ryzen 7 2700 / 8Go RAM / Sapphire R9 390 Nitro 8Go / Sapphire HD7870 GHz 2Go / Samsung LN40C530 / Oculus DK2 / LeapMotion / Saitek X56 / Thrustmaster Pendular Rudder

                          Commentaire


                          • #1
                            Une dernière question...

                            Bonsoir à tous. Merci pour vos réponses. J'ai enfin réussi, et j'envoi mes données par réseau et je recupère le tout avec un programme java.
                            Mais en faisant quelques test je me pose une question.
                            Que veut dire le OGL dans sim/flightmodel/position/local_ax float y mtr/sec2 The acceleration in local OGL coordinates? OpenGL peut être. Mais alors à quoi cette accélération correspond?
                            Je souhaiterais avoir l'accélération linéraire. Est-ce que c'est celle ci?
                            Bonne soirée et merci de prendre du temps pour me répondre.

                            Commentaire


                            • #1
                              Bonjour haprock,

                              Projet très intéressant!

                              1. Coordonnées OGL >< coordonnées avion
                              OGL=OpenGL. Si je ne m'abuse, les coordonnées OGL correspondent à la position du centre de gravité de l'avion par rapport à un référentiel extérieur fixe (X = avant horizontal, Y latéral horizontal, Z = vertical par rapport à la terre ou du moins par rapport au modèle local de la terre utilisé par X-Plane). Les coordonnées avion sont relatives à la structure de l'avion (X axe du fuselage, ...).
                              Prenons comme exemple un vol horizontal rectiligne stabilisé à basse vitesse, donc grand angle d'incidence:
                              La seule force extérieure est la gravité
                              En coordonnées OGL : force selon Z uniquement
                              En coordonnées avion : forces selon X et Z
                              Passer d'un référentiel à l'autre exigerait un nombre important de calculs si X-Plane ne nous fournissait pas le quaternion (voir dataref "Sim/flightmodel/position/q") qui permet de passer de l'un à l'autre sans s'encombrer de trigonométrie.
                              N'hésite pas à me contacter si tu ne maîtrises pas le quaternion.

                              2. Dataref disponibles et qui pourraient t'être utiles - la plupart ont déjà été citées par Daniel.
                              Lien = http://www.xsquawkbox.net/xpsdk/docs/DataRefs.html
                              Forces (force = masse * accélération):
                              sim/flightmodel/forces/g_nrml (selon Z)
                              sim/flightmodel/forces/g_axil (selon X)
                              sim/flightmodel/forces/g_side (selon Y)

                              Accélérations linéaires:
                              sim/flightmodel/position/local_ax (in OpenGL)
                              sim/flightmodel/position/local_ay (in OpenGL)
                              sim/flightmodel/position/local_az (in OpenGL)

                              Accélérations angulaires
                              sim/flightmodel/position/P_dot (roulis en degrés/s²)
                              sim/flightmodel/position/Q_dot (tangage en degrés/s²)
                              sim/flightmodel/position/R_dot (lacet en degrés/s²)
                              sim/flightmodel/position/Prad (roulis en radian/s²) - plus commode pour les calculs
                              sim/flightmodel/position/Qrad (tangage en radian/s²) - plus commode pour les calculs
                              sim/flightmodel/position/Rrad (lacet en radian/s²) - plus commode pour les calculs

                              Quaternion de rotation entre coordonnées OpenGL et coordonnées avion (calcul matriciel plus simple/rapide que les conversions trigonométriques)
                              sim/flightmodel/position/q

                              3. Angles "X-Plane" et angles "cabine"
                              Après avoir transmis les données de X-Plane au PC de commande de la cabine, il ne faut pas oublier qu'il reste un traitement important à faire au niveau du logiciel de pilotage des moteurs de cabine: induire des mouvements qui vont créer le ressenti des accélérations.
                              Exemple : l'avion effectue un vol horizontal et ralentit (sans utiliser de dispositifs hypersustentateurs). Que se passe-t-il?
                              Dans le simulateur (X-Plane):
                              la réduction de vitesse v entraîne une réduction de la portance (Portance L = 1/2 * Cl * rho * S * v²)
                              la portance doit équilibrer le poids (qui ne change pas), il faut donc compenser par une augmentation de l'angle d'attaque (effect sur Cl)
                              l'angle et l'accélération angulaire selon Y vont donc être positifs (le nez de l'avion se lève)
                              l'affichage va montrer une vue plus haute par rapport à l'horizon
                              Dans la cabine:
                              il faut afficher ce que voit le pilote (vue vers le HAUT comme indiquée par X-Plane)
                              il faut incliner la cabine/le siège vers le BAS pour donner l'impression de décélération au pilote (c'est encore plus sensible pour un simulateur de voiture)
                              Pour résumer, X-Plane fournit toutes les données liées au mouvement et aux accélérations de l'avion, mais il faut en plus gérer le mouvement du pilote par rapport à l'avion

                              Bon courage!
                              XP11.41 - WIN 7 - i7 - GTX970

                              Commentaire

                              Chargement...
                              X