IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Prediction de trajectoire


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2017
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 27
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 7
    Par d�faut Prediction de trajectoire
    Bonjour,

    J'ai pour projet de cr�er un algorithme qui pr�dit la trajectoire d'un objet en temps r�el grace � python et opencv. Cependant ma fonction cens�e me donner la position des points futurs me renvoie n'importe quoi...
    Il y a de fortes chances que j'ai mal �crit mon mod�le donc si vous pouviez jeter un coup d'oeil. Le test le plus simple �tant de prendre une position al�atoire pour un objet anim� d'une vitesse nulle : je devrais r�cup�rer une trajectoire verticale alors que la j'obtiens une droite affine.
    Aussi, mon axe y est orient� vers le bas donc il y a peut �tre un jeu � faire au niveau des signes.
    Merci d'avance pour l'aide.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Dureeimage = 1/Fps #Durée entre chaque image
     
    g = 9.81 * Pixelsparmetre # en pixels/s**2
     
    def Prediction(position , vitesse):
        position = list(position)
        position[0] = position[0] +vitesse[0] * Dureeimage
        position[1] = position[1] +vitesse[1] * Dureeimage -0.5*g*(Dureeimage**2)
     
        vitesse = list(vitesse)
        vitesse[0] = vitesse[0] - g * Dureeimage
        vitesse[1] = vitesse[1] - g * Dureeimage
     
        return (position,vitesse)
     
    def Trajectoire(positioninitiale, vitesseinitiale):
        positions = []
     
        position = list(positioninitiale)
        vitesse = list(vitesseinitiale)
        for k in range(18):
            position, vitesse = Prediction(position, vitesse)
            positions.append(position)
        return positions

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par TalsaD Voir le message
    Code python : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def Trajectoire(positioninitiale, vitesseinitiale):
        positions = []
        
        position = list(positioninitiale)
        vitesse = list(vitesseinitiale)
        for k in range(18):
            position, vitesse = Prediction(position, vitesse)
            positions.append(position)
        return positions
    Bonjour
    Il me semble que le soucis est ici. Tu commences par initialiser une variable "position" (en opposition � une autre "positionS" que j'ai eu du mal � discerner) puis tu l'�crases ensuite par le retour de la fonction. Tu as donc perdu ton initialisation initiale.
    C'est comme si tu appliquais la fonction "f(x)=-1/2g� + vt + x" aux y retourn�s par ladite fonction (style y1=f(x1) puis y2=f(y1) puis y3=f(y2)) alors que cette fonction devrait s'appliquer � des x initiaux (syle y1=f(x1) puis y2=f(x2) puis y3=f(x3)).
    De toute fa�on, tu as � ta disposition un outil magique nomm� print(). N'h�site pas � l'utiliser pour v�rifier tes valeurs.

    Et concernant tes noms de variable, tu devrais vraiment faire un effort d'originalit�...
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2017
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 27
    Localisation : France, Seine Saint Denis (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 7
    Par d�faut
    Ma liste "positionS" est cens�e regrouper toutes les positions trouv�es par la fonction "Prediction". Mais tu as raison je vais changer les noms, il faut que ca soit clair pour ceux qui liront mon code !
    Sinon j'ai r�solu en partie mon probl�me, j'effectuais une operation sur la vitesse par rapport � x alors qu'elle doit rest�e inchang�e.

    Maintenant j'ai surtout un probl�me par rapport � la vitesse trouv�e par ma fonction.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    def EstimationVitesse(position0, position1):
        position0 = list(position0)
        position1 = list(position1)
        vitesse = ((position1[0] - position0[0])*1/Fps, (position1[1] - position0[1])*1/Fps)
        return vitesse
    Il n'y a pas de probl�me de code mais je n'arrive pas a trouver une relation lin�aire liant la distance r�elle et mon nombre de pixels sur ma vid�o, ce qui fait que la vitesse trouv�e est tellement faible que ma pr�diction me renvoie une chute verticale.

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 850
    Billets dans le blog
    1
    Par d�faut
    Citation Envoy� par TalsaD Voir le message
    Il n'y a pas de probl�me de code mais je n'arrive pas a trouver une relation lin�aire liant la distance r�elle et mon nombre de pixels sur ma vid�o
    Ben �a devrait-�tre une simple histoire de proportionnelle (appel� aussi plus simplement "r�gle de 3") non ???
    Exemple: Si ta vid�o fait 1800 pixels de large, et que ta distance va de 0 � 100, alors
    1800p <=> 100d
    1p <=> 100/1800 = 1/18d

    Et dans l'autre sens
    100d <=> 1800p
    1d <=> 1800/100=18p

    Et pareil pour la hauteur...
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. R�ponses: 6
    Dernier message: 16/03/2006, 11h30
  2. [IA] Calcul de trajectoire, heurstique et A*
    Par Olivier_ dans le forum Algorithmes et structures de donn�es
    R�ponses: 6
    Dernier message: 03/01/2006, 17h47
  3. analyse de trajectoire
    Par victorracine dans le forum Algorithmes et structures de donn�es
    R�ponses: 23
    Dernier message: 23/10/2005, 10h53
  4. Pr�diction de trajectoire
    Par Xfennec dans le forum D�veloppement
    R�ponses: 3
    Dernier message: 27/07/2004, 16h08
  5. trajectoire anime en AS2
    Par savoyard dans le forum Flash
    R�ponses: 20
    Dernier message: 07/11/2003, 13h08

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