1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 6
    Points : 2
    Points
    2

    Par défaut Transformer roulis tangage en azimut et inclinaison

    Bonjour,

    J'ai un petit souci, j'ai des couples roulis tangage et azimut elevation mais je n'ai pas la formule pour passer de l'un à l'autre...
    Par exemple :
    Az ele ::: Roulis Tangage
    45° 6° <> -8.655° 8.655°
    90° 2° <> 0° 2°

    Qui aurait l'algo pour cette passerelle SVP ?

    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 6
    Points : 2
    Points
    2

    Par défaut Azimut ok mais elevation en cours...

    Pour azimut il y a la formule azimut = atan2(roulis,tangage)
    Mais pour elevation ce n'est pas simple avec les rotations : RzRyRx

  3. #3
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 880
    Points : 5 927
    Points
    5 927

    Par défaut

    Salut,
    Je suis désolé de me pointer avec une question mais je suis très intrigué par ta formule azimut = atan2(roulis,tangage)
    Tu as une source ou un lien qui explique comment on en arrive là ?


    Lorsque je regarde la figure ci dessous, je ne vois pas du tout comment faire ou alors ça ne me saute pas aux yeux. Ce qui me dérange pour tout te dire c'est que le tangage et le roulis sont des phénomènes qui font références à l'objet lui même. En d'autres termes, il tangue et/ou fait du roulis sur lui même. Il y a plusieurs dimensions là dedans.

    Nom : uhSC6.jpg
Affichages : 57
Taille : 20,2 Ko

    Alors que la détermination d'un azimut et d'une élévation se font en fonction de références extérieures, une référence (le nord) et un point de visé, le tout sur le plan horizontal uniquement.

    Nom : azelzen.gif
Affichages : 57
Taille : 8,9 Ko

    Si je prends des exemples :
    Imagines qu'un bateau se trouve sur la flèche de A du schéma ci dessus (la flèche de l'azimut). Quand bien même le bateau ferait du roulis (droite, gauche) et du tangage (plonge vers l'avant, plonge de l'arrière) de malade, si il garde son cap initial son azimut n'est absolument pas impacté ?

    Par contre l'élévation h sur le schéma, est impacté par le tangage = le plan horizontal bouge (il tangue).

    Bref, j'arrive vraiment pas à voir comment faire une éventuelle transformation roulis/tangage en azimut/inclinaison ???
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  4. #4
    Membre expérimenté Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    mai 2007
    Messages
    853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mai 2007
    Messages : 853
    Points : 1 525
    Points
    1 525

    Par défaut

    Bonjour,

    Je ne comprends pas ce que tu veux exactement et je pense que tu mélanges des choses. Le Yaw,Pitch, Roll n'a pas de rapport avec l'élévation. Le Yaw,Pitch,Roll va te donner une orientation, l'élévation te donne une "Altitude par rapport a un plan/point/référence

    Si tu veux les axes il faut faire une orthogonalisation de Gram-Schimdt ==> https://en.wikipedia.org/wiki/Gram%E2%80%93Schmidt_process
    L’algorithme est simple, mais tu dois le comprendre par toi même sinon ça n'aura aucun intérêt.
    La seul chose que je pourrais te dire tout de suite c'est que tu peux trouver (dans un repère orthonormé) le vecteur Up et Right juste avec le vecteur de direction ( Très utile pour la gestion de caméra ) en te basant sur le repère orthonormé ( X(1,0,0), Y(0,0,1), Z(0,0,1) que l'on pourrais nommé différemment pour la compréhension ( Forward, Up, Right ) ou ( Direction, Up, Right)....

    Pour les angles, tu dois passer par les axes et la projection de vecteur ( Bien moins couteux que le atan, cos, etc... ). Sachant que la projection de l'axe Yaw sur X te donne le résultat |Yaw|*Cos(Theta) où Theta est l'angle entre Yaw et X... Donc si ton axe Yaw est normalisé ( |Yaw| == 1 ) la projection te donne le Cos(Theta). De la tu n'as pas a convertir en angle mais travaillé que avec des valeurs Cos(Angle), ce qui permettra nombreuse optimisation de calcul dans de futur calcul..
    Homer J. Simpson


  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 6
    Points : 2
    Points
    2

    Par défaut

    Bonsoir,

    Les termes azimut et élévation ne sont peut être pas les bons car en fait : quand on a un roulis négatif et un tangage positif la formule atan2(roulis, tangage) donne l'angle de rotation sur Oz afin de savoir dans quel cadran sur 2pi on est (0 45 90 135 180 225 270 315°). Ensuite la plateforme est inclinée vers le bas dans ce cadran, c'est cet angle qui m'intéresse. par exemple sur roulis = -10° et tangage 0° on a le nez de l'aéronef qui est orienté vers le bas on doit avoir une formule qui me donne l'inclinaison de -10°. aussi si roulis 0° et tangage -10°, on est sur un aéronef qui a un cadran de 270° et une inclinaison aussi de -10°. en revanche si on a un roulis de 8.655° et un tangage de 8.655°, on est sur un angle orienté (azimut) de 45° mais ce que je recherche c'est la formule qui me donne une inclinaison de 6° car si je fais un enchaînement de rotation sur Z, Y, X je veux que je puisse extraire de ma matrice de rotation finale l'angle entre le plan horizontal et le point du nez de mon aéronef (ce que j'appelle l'inclinaison)

    Merci

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    avril 2004
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2004
    Messages : 3 530
    Points : 6 441
    Points
    6 441

    Par défaut

    Citation Envoyé par Danyj Voir le message
    par exemple sur roulis = -10° et tangage 0° on a le nez de l'aéronef qui est orienté vers le bas
    euh... bah non, avec un tangage à 0°, le nez de l'aéronef est à l'horizontale...

    Pour ton problème, en passant par la matrice de rotation globale, et en utilisant le vecteur directeur de ton avion avant et après transformation, tu devrais trouver ton angle facilement (genre avec un produit scalaire des deux vecteurs, éventuellement couplé avec un produit vectoriel ou un test sur la composante z après transformation pour peaufiner l'orientation de l'angle entre -90 et +90°)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    septembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2007
    Messages : 6
    Points : 2
    Points
    2

    Par défaut

    C'est bon j'ai trouve la formule

    pour info aprés avoir trouver azimut apres : azi = atan(roll, pitch)
    il faut créer le vecteur A = [ cos(azi) sin(azi) 0]
    ensuite on applique la rotation de R sur x avec le roulis et encore rz avec tangage sur les secteur azi entre 315 et 45° ou entre 135 et 225 et R sur y avec tangage et rz avec roulis sur 45-135 et 225-315 et le tout multiplier par A et ensuite de la matrice finale on extrait l'angle sur z avec angle = atan(Mat(3)/(sqrt(mat(1)²+mat(2)²)) et voilà

    Merci à vous tout de même

  8. #8
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    1 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 1 880
    Points : 5 927
    Points
    5 927

    Par défaut

    Aaaahhhhhhh ! Mais c'est le lacet que tu calcules ! C'est pas l'azimut.



    Il m'a fait retourner tous mes livres de maths Tu m'étonnes que mon cerveau était entrain de faire un noeud car c'est simplement impossible de calculer un azimut avec le roulis et le tangage. Ça reviendrait à trouver le nord sur un cercle de trigo .... Mais le lacet (qui tourne sur lui même comme le roulis et le tangage) ça oui, on est dans une sphère.....
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

Discussions similaires

  1. [PERL] transformation de fichier
    Par bob20000 dans le forum Langage
    Réponses: 6
    Dernier message: 27/07/2006, 12h13
  2. transformer un fichire Xml en pdf
    Par SuperFoustan dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/02/2003, 12h45
  3. transformer un jour en JJ/MM/AA
    Par gemini_010 dans le forum Général Algorithmique
    Réponses: 8
    Dernier message: 08/11/2002, 23h55
  4. Transformer un caractère en type énuméré
    Par HT dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2002, 21h46
  5. FFT(Fast Fourier Transform)
    Par IngBen dans le forum Général Algorithmique
    Réponses: 6
    Dernier message: 23/05/2002, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo