Premisse de la stratégie

This commit is contained in:
Samuel 2025-04-01 17:54:52 +02:00
parent f13a5ec458
commit bce282cc61

View File

@ -320,7 +320,7 @@ void gestion_match(){
rotation_rad = 100;
Triangulation_send_immobile(1);
//index_Maitre = DEPLACEMENT_RELATIF;
index_Maitre = MATCH_EN_COURS;
}
break;
@ -345,6 +345,9 @@ void gestion_match(){
break;
case MATCH_EN_COURS:
if(Strategie() == ACTION_TERMINEE){
index_Maitre = ATTENTE_ORDRE;
}
break;
case TEST_DEPLACEMENT_ABSOLU:
@ -354,6 +357,46 @@ void gestion_match(){
break;
}
}
enum etat_action_t Strategie(void){
static enum {
STRAT_RECULE_BANDEROLE, // Deplacement relatif
STRAT_ALLER_GRADINS_1, // Déplacement absolu
STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement absolu
STRAT_ALLER_BACKSTAGE // Déplacement relatif
}etat_strategie = STRAT_RECULE_BANDEROLE;
enum etat_action_t etat_action;
int translation_x_mm, translation_y_mm;
float rotation_rad;
switch(etat_strategie){
case STRAT_RECULE_BANDEROLE:
// Déplacement en X
translation_x_mm = -450;
translation_y_mm = 0;
rotation_rad = 0;
etat_action = deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 0);
if(etat_action == ACTION_TERMINEE){
etat_strategie = STRAT_ALLER_GRADINS_1;
}
break;
case STRAT_ALLER_GRADINS_1:
etat_action = deplacement_absolu(730, 550, M_PI/2., 0);
if(etat_action == ACTION_TERMINEE){
etat_strategie = STRAT_RECULE_BANDEROLE;
return ACTION_TERMINEE;
}
}
return ACTION_EN_COURS;
}
/// @brief : compare la position actuelle et la position lue par la balise
/// Note : Pour l'instant, on ne déclenche un mouvment qu'en cas d'ecart sur la distance, pas sur l'orientation.
void compar_cinematique(int consigne_x_mm, int consigne_y_mm, float consigne_orientation_rad,