Amélioration de la détection de fin de trajet pour les courbes de bézier
This commit is contained in:
		
							parent
							
								
									36c6ebf3f2
								
							
						
					
					
						commit
						d1a249e0d5
					
				
							
								
								
									
										20
									
								
								Trajet.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Trajet.c
									
									
									
									
									
								
							| @ -5,6 +5,7 @@ | ||||
| #include "Asser_Position.h" | ||||
| 
 | ||||
| double Trajet_calcul_vitesse(double temps_s); | ||||
| int Trajet_terminee(double abscisse); | ||||
| 
 | ||||
| double abscisse;    // Position entre 0 et 1 sur la trajectoire
 | ||||
| double position_mm; // Position en mm sur la trajectoire
 | ||||
| @ -65,13 +66,30 @@ enum etat_trajet_t Trajet_avance(double pas_de_temps_s){ | ||||
|     position_consigne=position; | ||||
|     Asser_Position(position); | ||||
| 
 | ||||
|     if(abscisse >= 1 ){ | ||||
|     if(Trajet_terminee(abscisse)){ | ||||
|         trajet_etat = TRAJET_TERMINE; | ||||
|     } | ||||
|     return trajet_etat; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /// @brief Savoir si un trajet est terminé est trivial sauf pour les courbes de Bézier
 | ||||
| /// où les approximations font que l'abscisse peut ne pas atteindre 1.
 | ||||
| /// @param abscisse : abscisse sur la trajectoire
 | ||||
| /// @return 1 si le trajet est terminé, 0 sinon
 | ||||
| int Trajet_terminee(double abscisse){ | ||||
|     if(trajet_trajectoire.type != TRAJECTOIRE_BEZIER){ | ||||
|         if(abscisse >= 1 ){ | ||||
|             return 1; | ||||
|         } | ||||
|     }else{ | ||||
|         if(abscisse >= 0.99 ){ | ||||
|             return 1; | ||||
|         } | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| /// @brief Envoie la consigne de position calculée par le module trajet. Principalement pour le débug/réglage asservissement.
 | ||||
| struct position_t Trajet_get_consigne(){ | ||||
|     return position_consigne; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user