Trajectoire courbe le long d'une ligne brisée.
Plus de détails...
#include <PurePursuit.h>
Est dérivée de AbstractMoveStrategy.
|
void | setDirection (Direction direction) |
| Setter du sens de marche du robot.
|
|
void | setFinalAngle (float finalAngle) |
| Setter de l'angle à atteindre en fin de trajectoire.
|
|
bool | addWaypoint (const Waypoint &waypoint) |
| Ajout un point en fin de ligne brisée.
|
|
void | reset () |
| Initialise le Purpuisuit. Supprime les points de la ligne brisée et les paramètres temporaires.
|
|
void | setLookAhead (float lookAhead) |
| Setter du lookAhead.
|
|
void | setLookAheadBis (float lookAheadBis) |
| Setter du lookAheadBis.
|
|
Direction | getDirection () const |
| Getter de la direction courant.
|
|
float | getFinalAngle () const |
| Getter de l'angle final.
|
|
const Waypoint & | getWaypoint (int index) const |
| Getter d'un point de passage.
|
|
int | getNumWaypoints () const |
| Getter du nombre de point de passage.
|
|
float | getLookAhead () const |
| Getter du lookahead.
|
|
float | getLookAheadBis () const |
| Getter du LookAHead de fin de trajectoire.
|
|
void | load (int address) |
| Charge les paramètres sauvegardés.
|
|
void | save (int address) const |
| Sauvegarde les paramètres actuels.
|
|
|
virtual void | computeVelSetpoints (float timestep) |
| Calcul les nouvelles vitesses désirer.
|
|
virtual bool | getPositionReached () |
| Indique si la position désirée est atteinte.
|
|
bool | checkLookAheadGoal (const float x, const float y) |
| Calcul le point intermediaire sur la ligne brisée.
|
|
void | checkProjectionGoal (const float x, const float y) |
| Calcule le point intermediaire sur la ligne brisée.
|
|
float | getDistAfterGoal () |
| Retourne la distance restante à parcourir.
|
|
const Position & | getPosInput () const |
| Retourne la position du robot.
|
|
const Position & | getPosSetpoint () const |
| Retourne la position à atteindre.
|
|
void | setVelSetpoints (float linVelSetpoint, float angVelSetpoint) |
| Charge une nouvelle vitesse pour le robot.
|
|
float | getLinVelKp () const |
| Retourne le coef proportionnel de vitesse linéaire.
|
|
float | getAngVelKp () const |
| Retourne le coef proportionnel de vitesse angulaire.
|
|
float | getLinVelMax () const |
| Retourne vitesse linéaire max.
|
|
float | getAngVelMax () const |
| Retourne vitesse angulaire max.
|
|
float | getLinPosThreshold () const |
| Retourne la précision cartésienne à atteindre.
|
|
float | getAngPosThreshold () const |
| Retourne la précision angulaire à atteindre.
|
|
Trajectoire courbe le long d'une ligne brisée.
class PurePursuit
est un AbstractMoveStrategy.
◆ Direction
Sens de déplacement pour le robot.
enum Direction
Valeurs énumérées |
---|
FORWARD | Le robot avance en marche avant.
|
BACKWARD | Le robot avance en marche arrière.
|
◆ addWaypoint()
bool PurePursuit::addWaypoint |
( |
const Waypoint & | waypoint | ) |
|
Ajout un point en fin de ligne brisée.
- Paramètres
-
waypoint | Nouveau point à ajouter. |
- Renvoie
- true Ajout réussi.
-
false L'ajout a rencontré un problème.
◆ checkLookAheadGoal()
bool PurePursuit::checkLookAheadGoal |
( |
const float | x, |
|
|
const float | y ) |
|
protected |
Calcul le point intermediaire sur la ligne brisée.
Calcul le point intermediaire sur la courbe et met à jour le segment courant.
- Paramètres
-
x | Coordonnées x du robot (mm). |
y | Coordonnées y du robot (mm). |
- Renvoie
- true Un point a été trouvé.
-
false Aucun point n'a été trouvé.
◆ checkProjectionGoal()
void PurePursuit::checkProjectionGoal |
( |
const float | x, |
|
|
const float | y ) |
|
protected |
Calcule le point intermediaire sur la ligne brisée.
Calcule le point le plus près du robot sur la ligne brisée non parcouru.
- Paramètres
-
x | Coordonnées x du robot (mm). |
y | Coordonnées y du robot (mm). |
◆ computeVelSetpoints()
void PurePursuit::computeVelSetpoints |
( |
float | timestep | ) |
|
|
protectedvirtual |
Calcul les nouvelles vitesses désirer.
Méthode à implémenter pour réaliser une AbstractMoveStrategy. Cette méthode calcul à partir de la position du robot des vitesses à suivre pour le robot.
- Paramètres
-
timestep | Temps depuis le dernier appel en secondes. |
Implémente AbstractMoveStrategy.
◆ getDirection()
Direction PurePursuit::getDirection |
( |
| ) |
const |
|
inline |
Getter de la direction courant.
- Renvoie
- Direction Sens utilisé.
◆ getDistAfterGoal()
float PurePursuit::getDistAfterGoal |
( |
| ) |
|
|
protected |
Retourne la distance restante à parcourir.
- Renvoie
- float Distance en mm à parcourir.
◆ getFinalAngle()
float PurePursuit::getFinalAngle |
( |
| ) |
const |
|
inline |
Getter de l'angle final.
Retourne l'angle final que le robot va atteindre en fin de trajectoire.
- Renvoie
- float Angle final en rad.
◆ getLookAhead()
float PurePursuit::getLookAhead |
( |
| ) |
const |
|
inline |
Getter du lookahead.
- Renvoie
- float LookaHead en mm.
◆ getLookAheadBis()
float PurePursuit::getLookAheadBis |
( |
| ) |
const |
|
inline |
Getter du LookAHead de fin de trajectoire.
- Renvoie
- float LookaHeadbis en mm.
◆ getNumWaypoints()
int PurePursuit::getNumWaypoints |
( |
| ) |
const |
|
inline |
Getter du nombre de point de passage.
- Renvoie
- int Nombre de points de la ligne brisée.
◆ getPositionReached()
bool PurePursuit::getPositionReached |
( |
| ) |
|
|
protectedvirtual |
Indique si la position désirée est atteinte.
Calcul la distance entre la position du robot et la position désirée selon le mode de calcul de l'AbstractMoveStrategy.
- Renvoie
- true Si la position est atteinte.
-
false Si la position n'est pas atteinte.
Implémente AbstractMoveStrategy.
◆ getWaypoint()
const Waypoint & PurePursuit::getWaypoint |
( |
int | index | ) |
const |
|
inline |
Getter d'un point de passage.
Retourne le point de passage sous la forme d'un Waypoint. L'index permet d'identifier le point à retourner.
- Paramètres
-
index | Numéro du point à retourner. |
- Renvoie
- Waypoint& Point de passage demandé.
◆ load()
void PurePursuit::load |
( |
int | address | ) |
|
Charge les paramètres sauvegardés.
- Paramètres
-
address | Adresse à utiliser. |
◆ save()
void PurePursuit::save |
( |
int | address | ) |
const |
Sauvegarde les paramètres actuels.
- Paramètres
-
address | Adresse à utiliser. |
◆ setDirection()
void PurePursuit::setDirection |
( |
Direction | direction | ) |
|
Setter du sens de marche du robot.
- Paramètres
-
direction | Sens à utiliser pour le déplacement du robot. |
◆ setFinalAngle()
void PurePursuit::setFinalAngle |
( |
float | finalAngle | ) |
|
Setter de l'angle à atteindre en fin de trajectoire.
- Paramètres
-
finalAngle | Angle à atteindre (entre l'axe du robot et l'axe des x) |
◆ setLookAhead()
void PurePursuit::setLookAhead |
( |
float | lookAhead | ) |
|
Setter du lookAhead.
Met à jour la distance entre le point intermediaire et le robot.
- Paramètres
-
◆ setLookAheadBis()
void PurePursuit::setLookAheadBis |
( |
float | lookAheadBis | ) |
|
Setter du lookAheadBis.
Met à jour la distance entre le point intermediaire et le robot en fin de trajectoire.
- Paramètres
-
lookAheadBis | Distance en mm. |
◆ m_direction
Sens du robot pendant la trajectoire.
◆ m_finalAngle
float PurePursuit::m_finalAngle |
|
protected |
Angle à atteindre en fin de trajectoire.
◆ m_goalIndex
int PurePursuit::m_goalIndex |
|
protected |
◆ m_goalParam
float PurePursuit::m_goalParam |
|
protected |
Position relative de la projection du robot sur le segment courant.
◆ m_goalReached
bool PurePursuit::m_goalReached |
|
protected |
◆ m_lookAhead
float PurePursuit::m_lookAhead |
|
protected |
Distance entre le point intermediaire et le robot.
◆ m_lookAheadBis
float PurePursuit::m_lookAheadBis |
|
protected |
Distance entre le point intermediaire et le robot en fin de trajectoire.
◆ m_numWaypoints
int PurePursuit::m_numWaypoints |
|
protected |
Nombre de points constituant la ligne brisée.
◆ m_waypoints
Waypoint PurePursuit::m_waypoints[PUREPURSUIT_MAX_WAYPOINTS] |
|
protected |
Liste des points de la ligne brisée à suivre.
La documentation de cette classe a été générée à partir des fichiers suivants :
- C:/Users/boris/Desktop/robotique/team2024/platformIO/LIBS/ARDUINO_LIBS/PurePursuit/PurePursuit.h
- C:/Users/boris/Desktop/robotique/team2024/platformIO/LIBS/ARDUINO_LIBS/PurePursuit/PurePursuit.cpp