Modification de la fonction Strategie_aller_a pour être plus souple dans les choix d'évitement
This commit is contained in:
parent
34f0a45041
commit
d414eb1d07
14
Strategie.c
14
Strategie.c
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user