Modification fin trajet + correction bug dans la fin de la strategie

This commit is contained in:
Samuel 2023-05-08 09:21:05 +02:00
parent c66f1011bc
commit 24912e2bda
3 changed files with 9 additions and 4 deletions

View File

@ -31,7 +31,9 @@ void temps_cycle_reset(){
} }
void Monitoring_display(){ void Monitoring_display(){
while(1){
temps_cycle_display(); temps_cycle_display();
}
} }
void temps_cycle_display(){ void temps_cycle_display(){

View File

@ -116,7 +116,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
case LANCER_PANIER: case LANCER_PANIER:
if(lance_balles_dans_panier(couleur, step_ms)== ACTION_TERMINEE){ if(lance_balles_dans_panier(couleur, step_ms)== ACTION_TERMINEE){
etat_homologation = STRATEGIE_FIN; etat_strategie = STRATEGIE_FIN;
} }
break; break;
@ -277,7 +277,8 @@ enum etat_action_t lance_balles_dans_panier(enum couleur_t couleur, uint32_t ste
case LANCE_DANS_PANIER: case LANCE_DANS_PANIER:
Asser_Position_maintien(); Asser_Position_maintien();
if(lance_balles(step_ms) == ACTION_TERMINEE){ if(lance_balles(step_ms) == ACTION_TERMINEE){
etat_action=ACTION_TERMINEE; etat_action = ACTION_TERMINEE;
etat_lance_balles_dans_panier = CALAGE_PANIER_1;
} }
break; break;
} }

View File

@ -18,6 +18,7 @@ struct trajectoire_t trajet_trajectoire;
struct position_t position_consigne; struct position_t position_consigne;
float distance_obstacle_mm; float distance_obstacle_mm;
float distance_fin_trajectoire_mm;
const float distance_pas_obstacle = 2000; const float distance_pas_obstacle = 2000;
/// @brief Initialise le module Trajet. A appeler en phase d'initilisation /// @brief Initialise le module Trajet. A appeler en phase d'initilisation
@ -96,7 +97,7 @@ int Trajet_terminee(float abscisse){
}*/ }*/
if(trajet_trajectoire.type != TRAJECTOIRE_BEZIER){ if(trajet_trajectoire.type != TRAJECTOIRE_BEZIER){
if(abscisse >= 1 ){ if(abscisse >= 1 || distance_fin_trajectoire_mm < 0.1){
return 1; return 1;
} }
}else{ }else{
@ -126,6 +127,7 @@ float Trajet_calcul_vitesse(float pas_de_temps_s){
// Calcul de la vitesse maximale due à la contrainte en fin de trajectoire (0 mm/s) // Calcul de la vitesse maximale due à la contrainte en fin de trajectoire (0 mm/s)
// https://poivron-robotique.fr/Consigne-de-vitesse.html // https://poivron-robotique.fr/Consigne-de-vitesse.html
distance_contrainte = Trajectoire_get_longueur_mm(&trajet_trajectoire) - position_mm; distance_contrainte = Trajectoire_get_longueur_mm(&trajet_trajectoire) - position_mm;
distance_fin_trajectoire_mm=distance_contrainte;
// En cas de dépassement, on veut garder la contrainte, pour l'instant // En cas de dépassement, on veut garder la contrainte, pour l'instant
if(distance_contrainte > 0){ if(distance_contrainte > 0){
vitesse_max_contrainte = sqrtf(2 * acceleration_mm_ss * distance_contrainte); vitesse_max_contrainte = sqrtf(2 * acceleration_mm_ss * distance_contrainte);