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 : Tout sélectionner
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