CRINSA-team2024 2024
Documentation du Club Robot INSA Rennes 2024
Chargement...
Recherche...
Aucune correspondance
Référence de la classe PurePursuit

Trajectoire courbe le long d'une ligne brisée. Plus de détails...

#include <PurePursuit.h>

Est dérivée de AbstractMoveStrategy.

Graphe de collaboration de PurePursuit:

Classes

struct  Waypoint
 Structure d'un point de passage de Purpursuit. Plus de détails...
 

Types publics

enum  Direction { FORWARD =1 , BACKWARD =-1 }
 Sens de déplacement pour le robot. Plus de détails...
 

Fonctions membres publiques

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 WaypointgetWaypoint (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.
 

Fonctions membres protégées

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.
 
- Fonctions membres protégées hérités de AbstractMoveStrategy
const PositiongetPosInput () const
 Retourne la position du robot.
 
const PositiongetPosSetpoint () 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.
 

Attributs protégés

Waypoint m_waypoints [PUREPURSUIT_MAX_WAYPOINTS]
 
int m_numWaypoints
 
Direction m_direction
 
float m_finalAngle
 
int m_goalIndex
 
float m_goalParam
 
bool m_goalReached
 
float m_lookAhead
 
float m_lookAheadBis
 
- Attributs protégés hérités de AbstractMoveStrategy
PositionControllerm_context
 

Description détaillée

Trajectoire courbe le long d'une ligne brisée.

class PurePursuit

est un AbstractMoveStrategy.

Documentation des énumérations membres

◆ 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.

Documentation des fonctions membres

◆ addWaypoint()

bool PurePursuit::addWaypoint ( const Waypoint & waypoint)

Ajout un point en fin de ligne brisée.

Paramètres
waypointNouveau 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
xCoordonnées x du robot (mm).
yCoordonnées y du robot (mm).
Renvoie
true Un point a été trouvé.
false Aucun point n'a été trouvé.
Voici le graphe des appelants de cette fonction :

◆ 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
xCoordonnées x du robot (mm).
yCoordonnées y du robot (mm).
Voici le graphe des appelants de cette fonction :

◆ 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
timestepTemps depuis le dernier appel en secondes.

Implémente AbstractMoveStrategy.

Voici le graphe d'appel pour cette fonction :

◆ 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.
Voici le graphe des appelants de cette fonction :

◆ 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
indexNuméro du point à retourner.
Renvoie
Waypoint& Point de passage demandé.

◆ load()

void PurePursuit::load ( int address)

Charge les paramètres sauvegardés.

Paramètres
addressAdresse à utiliser.

◆ save()

void PurePursuit::save ( int address) const

Sauvegarde les paramètres actuels.

Paramètres
addressAdresse à utiliser.

◆ setDirection()

void PurePursuit::setDirection ( Direction direction)

Setter du sens de marche du robot.

Paramètres
directionSens à utiliser pour le déplacement du robot.

◆ setFinalAngle()

void PurePursuit::setFinalAngle ( float finalAngle)

Setter de l'angle à atteindre en fin de trajectoire.

Paramètres
finalAngleAngle à 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
lookAheadDistance en mm.

◆ 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
lookAheadBisDistance en mm.

Documentation des données membres

◆ m_direction

Direction PurePursuit::m_direction
protected

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

Index courant.

◆ 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

Arrivé ou non.

◆ 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 :