Attrape cerise bas et cerise haut côté gauche
This commit is contained in:
parent
2a0bde7385
commit
702e99b788
24
Strategie.c
24
Strategie.c
@ -34,6 +34,9 @@ enum etat_action_t lance_balles_dans_panier(enum couleur_t couleur, uint32_t ste
|
|||||||
enum etat_action_t calage_angle(enum longer_direction_t longer_direction, float x_mm, float y_mm, float angle_radian);
|
enum etat_action_t calage_angle(enum longer_direction_t longer_direction, float x_mm, float y_mm, float angle_radian);
|
||||||
enum etat_action_t lance_balles(uint32_t step_ms);
|
enum etat_action_t lance_balles(uint32_t step_ms);
|
||||||
|
|
||||||
|
int Robot_est_dans_quart_haut_gauche();
|
||||||
|
int Robot_est_dans_quart_haut_droit();
|
||||||
|
|
||||||
enum etat_homologation_t etat_homologation=STRATEGIE_INIT;
|
enum etat_homologation_t etat_homologation=STRATEGIE_INIT;
|
||||||
|
|
||||||
|
|
||||||
@ -147,10 +150,10 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
|||||||
case ATTRAPER_CERISE_HAUT:
|
case ATTRAPER_CERISE_HAUT:
|
||||||
recal_pos_y = 3000 - RAYON_ROBOT;
|
recal_pos_y = 3000 - RAYON_ROBOT;
|
||||||
if(couleur == COULEUR_BLEU){
|
if(couleur == COULEUR_BLEU){
|
||||||
longer_direction = LONGER_VERS_C;
|
longer_direction = LONGER_VERS_A;
|
||||||
recal_pos_x = 1000 - 15 - PETIT_RAYON_ROBOT_MM;
|
recal_pos_x = 1000 - 15 - PETIT_RAYON_ROBOT_MM;
|
||||||
}else{
|
}else{
|
||||||
longer_direction = LONGER_VERS_A;
|
longer_direction = LONGER_VERS_C;
|
||||||
recal_pos_x = 1000 + 15 + PETIT_RAYON_ROBOT_MM;
|
recal_pos_x = 1000 + 15 + PETIT_RAYON_ROBOT_MM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,22 +164,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ALLER_PANIER:
|
case ALLER_PANIER:
|
||||||
Trajet_config(500, 500);
|
if(Strategie_aller_panier(couleur, step_ms) == ACTION_TERMINEE){
|
||||||
if(couleur == COULEUR_BLEU){
|
|
||||||
Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
|
|
||||||
485, Localisation_get().y_mm,
|
|
||||||
465, 857,
|
|
||||||
465,2830,
|
|
||||||
+30. * DEGRE_EN_RADIAN, +120. * DEGRE_EN_RADIAN);
|
|
||||||
}else{
|
|
||||||
Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
|
|
||||||
485, Localisation_get().y_mm,
|
|
||||||
2000-465, 857,
|
|
||||||
2000-465,2830,
|
|
||||||
-150. * DEGRE_EN_RADIAN, -240. * DEGRE_EN_RADIAN);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
|
||||||
etat_strategie = LANCER_PANIER;
|
etat_strategie = LANCER_PANIER;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -57,6 +57,7 @@ int test_panier(void);
|
|||||||
void Strategie(enum couleur_t couleur, uint32_t step_ms);
|
void Strategie(enum couleur_t couleur, uint32_t step_ms);
|
||||||
|
|
||||||
int temporisation_terminee(uint32_t * tempo_ms, uint32_t step_ms);
|
int temporisation_terminee(uint32_t * tempo_ms, uint32_t step_ms);
|
||||||
|
enum etat_action_t Strategie_aller_panier(enum couleur_t couleur, uint32_t step_ms);
|
||||||
|
|
||||||
extern float distance_obstacle;
|
extern float distance_obstacle;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ enum etat_action_t cerise_attraper_bordure(enum longer_direction_t longer_direct
|
|||||||
|
|
||||||
case ASPIRE_LONGE:
|
case ASPIRE_LONGE:
|
||||||
longer_direction_aspire = inverser_longe_direction(longer_direction);
|
longer_direction_aspire = inverser_longe_direction(longer_direction);
|
||||||
avance_puis_longe_bordure(LONGER_VERS_A);
|
avance_puis_longe_bordure(longer_direction_aspire);
|
||||||
// La fonction cerise_longer_bord n'est efficace que tant que le robot a ses deux contacteur sur le support
|
// La fonction cerise_longer_bord n'est efficace que tant que le robot a ses deux contacteur sur le support
|
||||||
// Le robot n'a les deux contacteurs sur le support que tant qu'il est à moins de 240mm (MAX_LONGE_MM) de la bordure
|
// Le robot n'a les deux contacteurs sur le support que tant qu'il est à moins de 240mm (MAX_LONGE_MM) de la bordure
|
||||||
// En fonction du demi-terrain sur lequel se trouve le robot, on surveille la position en Z pour respecter cette condition
|
// En fonction du demi-terrain sur lequel se trouve le robot, on surveille la position en Z pour respecter cette condition
|
||||||
|
Loading…
Reference in New Issue
Block a user