Bonsoir, je travaille actuellement sur un projet c++/cli permettant de créer des mobiles autonomes, leurs attribuer une cible, vitesse et de les faire se déplacer en conséquence.
J'ai codé une première méthode de calcul sur le principe de la courbe du chien et je souhaiterai faire évoluer ce calcul de trajectoire en utilisant l'anticipation de trajectoire. On m'a parlé du filtre de kalman qui permet de faire ceci... seulement je n'en connais pas les subtiltées.
Voici le code de ma première méthode de calcul :
Un exemple de tracer pour quatre mobiles ayant la même vitesse :
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
25
26
27
28 private: void Calcul() { double d_x = 0.0; double d_y = 0.0; while(pb_fin == true ) { Thread::BeginCriticalRegion();//Début section critique !!! d_x = pCmob_cible->X - X;//Différence en X d_y = pCmob_cible->Y - Y;//Différence en Y d_x = d_x*(Vitess/10.0);//Déplacement en X d_y = d_y*(Vitess/10.0);//Déplacement en Y X = X + d_x;//On se déplace Y = Y + d_y;//On se déplace if((abs(pCmob_cible->X - X) < 5 )&& (abs(pCmob_cible->Y - Y) < 5) ) //Quand on est proche de la cible...Distance en valeur absolue this->Stop(); if((X < COORD_MIN_X) || (X > COORD_MAX_X) || (Y < COORD_MIN_Y) || (Y > COORD_MAX_Y))//Si on sort du cadre this->Stop(); Thread::EndCriticalRegion();//Fin section critique !!! Thread::Sleep(500);//Le mobile se déplace toutes les 500ms } }
Merci de m'aider
Partager