Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
fr:informatics:le_trajet_et_les_trajectoires [29/09/2024 18:17] Keuronde En cours de création |
fr:informatics:le_trajet_et_les_trajectoires [30/09/2024 21:52] (Version actuelle) Keuronde [Module Trajet] |
||
---|---|---|---|
Ligne 36: | Ligne 36: | ||
La vitesse suivant la courbe de décélération (V< | La vitesse suivant la courbe de décélération (V< | ||
- | $$ V_dec = \sqrt{2 \times acceleration \times Distance\_restante} | + | $$ Distance\_restante = longueur\_trajectoire - Distance\_parcourue$$ |
- | a =b$$ | + | $$ V_{dec} |
Note : nous utilisons la même valeur pour l’accélération et la décélération. | Note : nous utilisons la même valeur pour l’accélération et la décélération. | ||
+ | |||
La vitesse retenue est la plus faible de ces trois vitesses. | La vitesse retenue est la plus faible de ces trois vitesses. | ||
- | Note : Pour une version plus détaillée, | + | {{ : |
- | Module simplifié de trajectoire | + | |
+ | Note : Pour une version plus détaillée, | ||
+ | |||
+ | === Fin du trajet === | ||
+ | |||
+ | Reste à savoir quand le trajet est terminé. Le plus évident est de tester la valeur de l’abscisse. Si celle-ci est supérieure ou égale à 1 alors le trajet est terminé. | ||
+ | Mais avec certaines trajectoires, | ||
+ | ==== Module simplifié de trajectoire | ||
Le module simplifié ne gère qu’une seule trajectoire, | Le module simplifié ne gère qu’une seule trajectoire, | ||
- | Voici les interfaces avec le module Trajet et leur implémentation sommaire | + | Voici les interfaces avec le module Trajet et leur implémentation sommaire. |
- | Avancer sur la trajectoire à partir d’une abscisse | + | === Avancer sur la trajectoire à partir d’une abscisse |
- | float Trajectoire_avance(float abscisse, float distance){ | + | |
- | return abscisse + distance / longueur_trajectoire | + | |
- | } | + | return abscisse + distance / longueur_trajectoire |
- | Obtenir la position dans le plan à partir de l’abscisse curviligne | + | } |
- | struct point_t Trajectoire_get_point(float abscisse){ | + | === Obtenir la position dans le plan à partir de l’abscisse curviligne |
- | struct point_t point; | + | struct point_t Trajectoire_get_point(float abscisse){ |
- | point.x_mm = abscisse * longueur_trajectoire; | + | struct point_t point; |
- | point.y_mm = 0; | + | point.x_mm = abscisse * longueur_trajectoire; |
- | return point ; | + | point.y_mm = 0; |
- | } | + | return point ; |
- | Obtenir la longueur de la trajectoire | + | } |
- | float Trajectroire_get_longueur_mm(){ | + | === Obtenir la longueur de la trajectoire |
- | return 500; | + | float Trajectroire_get_longueur_mm(){ |
- | } | + | return 500; |
- | Code de démonstration | + | } |
+ | ===== Code de démonstration | ||
Faites parcourir à votre PAMI la trajectoire simplifiée en variant les paramètres d’accélération et de vitesse maximale. | Faites parcourir à votre PAMI la trajectoire simplifiée en variant les paramètres d’accélération et de vitesse maximale. | ||
- | Débogage | + | ===== Débogage |
Surveillez la vitesse consigne et la consigne de position. En cas de comportement erratique du PAMI en début ou en fin de trajectoire, | Surveillez la vitesse consigne et la consigne de position. En cas de comportement erratique du PAMI en début ou en fin de trajectoire, |