Modification de la fonction Strategie_aller_a pour être plus souple dans les choix d'évitement

This commit is contained in:
Samuel 2024-05-07 23:50:58 +02:00
parent 34f0a45041
commit d414eb1d07
3 changed files with 9 additions and 9 deletions

View File

@ -269,14 +269,14 @@ int temporisation_terminee(uint32_t * tempo_ms, uint32_t step_ms){
}
}
enum etat_action_t Strategie_aller_a(float pos_x, float pos_y, uint32_t step_ms){
enum etat_action_t Strategie_aller_a(float pos_x, float pos_y, enum evitement_t evitement, uint32_t step_ms){
struct trajectoire_t trajectoire;
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
pos_x, pos_y,
Localisation_get().angle_radian, Localisation_get().angle_radian);
return Strategie_parcourir_trajet(trajectoire, step_ms, EVITEMENT_ARRET_DEVANT_OBSTACLE);
return Strategie_parcourir_trajet(trajectoire, step_ms, evitement);
}
enum etat_action_t Strategie_tourner_et_aller_a(float pos_x, float pos_y, float angle_radian, enum evitement_t evitement,uint32_t step_ms){
@ -415,7 +415,7 @@ enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_
}else{
pos_x = 2000 - 250;
}
return Strategie_aller_a(pos_x, pos_y, step_ms);
return Strategie_aller_a(pos_x, pos_y, EVITEMENT_ARRET_DEVANT_OBSTACLE, step_ms);
case ZONE_2:
pos_y = 1125;
@ -424,7 +424,7 @@ enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_
}else{
pos_x = 2000 - 250;
}
return Strategie_aller_a(pos_x, pos_y, step_ms);
return Strategie_aller_a(pos_x, pos_y, EVITEMENT_ARRET_DEVANT_OBSTACLE, step_ms);
case ZONE_3:
pos_y = 250;
@ -433,7 +433,7 @@ enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_
}else{
pos_x = 2000 - 725;
}
return Strategie_aller_a(pos_x, pos_y, step_ms);
return Strategie_aller_a(pos_x, pos_y, EVITEMENT_ARRET_DEVANT_OBSTACLE, step_ms);
case ZONE_4:
pos_y = 250;
@ -442,7 +442,7 @@ enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_
}else{
pos_x = 250;
}
return Strategie_aller_a(pos_x, pos_y, step_ms);
return Strategie_aller_a(pos_x, pos_y, EVITEMENT_ARRET_DEVANT_OBSTACLE, step_ms);
case ZONE_5:
pos_y = 1850;
@ -451,7 +451,7 @@ enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_
}else{
pos_x = 250;
}
return Strategie_aller_a(pos_x, pos_y, step_ms);
return Strategie_aller_a(pos_x, pos_y, EVITEMENT_ARRET_DEVANT_OBSTACLE, step_ms);
}
}

View File

@ -64,10 +64,10 @@ enum etat_action_t Strategie_preparation();
enum etat_action_t Strategie_pieds_dans_plat_trajet(struct objectif_t *objectif_plat_courant, enum couleur_t couleur, uint32_t step_ms);
enum etat_action_t Strategie_pieds_dans_plat(enum couleur_t couleur, uint32_t step_ms);
enum etat_action_t Strategie_aller_a(float pos_x, float pos_y, uint32_t step_ms);
enum etat_action_t Strategie_calage_debut(enum couleur_t couleur, uint32_t step_ms);
enum etat_action_t Strategie_calage_debut_manuel(enum couleur_t couleur, uint32_t step_ms);
enum etat_action_t Strategie_aller_a(float pos_x, float pos_y, enum evitement_t evitement, uint32_t step_ms);
enum etat_action_t Strategie_tourner_et_aller_a(float pos_x, float pos_y, float angle_radian, enum evitement_t evitement,uint32_t step_ms);
enum etat_action_t Strategie_aller_a_puis_tourner(float pos_x, float pos_y, float angle_radian, enum evitement_t evitement,uint32_t step_ms);
enum etat_action_t Strategie_tourner_a(float angle_radian,uint32_t step_ms);

View File

@ -774,7 +774,7 @@ int test_attrape_1_pot(void){
break;
case TAP_APPROCHE_POT:
Trajet_config(TRAJECT_CONFIG_AVANCE_ET_TOURNE);
if(Strategie_aller_a(position_approche_pot.x_mm, position_approche_pot.y_mm, _step_ms) == ACTION_TERMINEE){
if(Strategie_aller_a(position_approche_pot.x_mm, position_approche_pot.y_mm, EVITEMENT_PAUSE_DEVANT_OBSTACLE, _step_ms) == ACTION_TERMINEE){
etat_test=TAP_TOURNE_POT;
}
break;