Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
PurePursuit.h
1#ifndef __PUREPURSUIT_H__
2#define __PUREPURSUIT_H__
3
4#include "Controller/PositionController.h"
5#include "Components/Odometry.h"
6
7#ifndef PUREPURSUIT_MAX_WAYPOINTS
8#define PUREPURSUIT_MAX_WAYPOINTS 16
9#endif
10
16
17class PurePursuit : public AbstractMoveStrategy
18{
19public:
24 struct Waypoint
25 {
26 Waypoint() : x(0), y(0){}
27 Waypoint(float x, float y) : x(x), y(y){}
28 Waypoint(const Position& pos) : x(pos.x), y(pos.y){}
29
30 float x, y;
31 };
32
35 enum Direction {
38 , NONE=0
39 };
40
41 PurePursuit() : m_numWaypoints(0), m_direction(FORWARD){}
46 void setDirection(Direction direction);
51 void setFinalAngle(float finalAngle);
59 bool addWaypoint(const Waypoint& waypoint);
64 void reset();
72 void setLookAhead (float lookAhead) ;
80 void setLookAheadBis(float lookAheadBis);
95 float getFinalAngle() const {return m_finalAngle;}
104 const Waypoint& getWaypoint(int index) const {return m_waypoints[index];}
110 int getNumWaypoints() const {return m_numWaypoints;}
116 float getLookAhead() const {return m_lookAhead;}
122 float getLookAheadBis() const {return m_lookAheadBis;}
123
124protected:
125
126 virtual void computeVelSetpoints(float timestep);
127 virtual bool getPositionReached();
128
139 bool checkLookAheadGoal(const float x, const float y);
148 void checkProjectionGoal(const float x, const float y);
149
155 float getDistAfterGoal();
156
157 // Trajectory specifications
158 Waypoint m_waypoints[PUREPURSUIT_MAX_WAYPOINTS];
162
163 // Computation variables
167
168 // Path following tunings
171};
172
173#endif // __PUREPURSUIT_H__
Interface de Stratégie de mouvement.
Definition PositionController.h:195
Trajectoire courbe le long d'une ligne brisée.
Definition PurePursuit.h:18
Direction getDirection() const
Getter de la direction courant.
Definition PurePursuit.h:86
void checkProjectionGoal(const float x, const float y)
Calcule le point intermediaire sur la ligne brisée.
Definition PurePursuit.cpp:95
float getFinalAngle() const
Getter de l'angle final.
Definition PurePursuit.h:95
float m_finalAngle
Definition PurePursuit.h:161
void setFinalAngle(float finalAngle)
Setter de l'angle à atteindre en fin de trajectoire.
Definition PurePursuit.cpp:10
int getNumWaypoints() const
Getter du nombre de point de passage.
Definition PurePursuit.h:110
float m_goalParam
Definition PurePursuit.h:165
Direction m_direction
Definition PurePursuit.h:160
float m_lookAhead
Definition PurePursuit.h:169
bool checkLookAheadGoal(const float x, const float y)
Calcul le point intermediaire sur la ligne brisée.
Definition PurePursuit.cpp:34
float getLookAhead() const
Getter du lookahead.
Definition PurePursuit.h:116
bool m_goalReached
Definition PurePursuit.h:166
Direction
Sens de déplacement pour le robot.
Definition PurePursuit.h:35
@ BACKWARD
Le robot avance en marche arrière.
Definition PurePursuit.h:37
@ FORWARD
Le robot avance en marche avant.
Definition PurePursuit.h:36
void setDirection(Direction direction)
Setter du sens de marche du robot.
Definition PurePursuit.cpp:5
virtual void computeVelSetpoints(float timestep)
Calcul les nouvelles vitesses désirer.
Definition PurePursuit.cpp:170
virtual bool getPositionReached()
Indique si la position désirée est atteinte.
Definition PurePursuit.cpp:239
float getLookAheadBis() const
Getter du LookAHead de fin de trajectoire.
Definition PurePursuit.h:122
int m_goalIndex
Definition PurePursuit.h:164
float m_lookAheadBis
Definition PurePursuit.h:170
void reset()
Initialise le Purpuisuit. Supprime les current_points de la ligne brisée et les paramètres temporaire...
Definition PurePursuit.cpp:25
int m_numWaypoints
Definition PurePursuit.h:159
void setLookAhead(float lookAhead)
Setter du lookAhead.
Definition PurePursuit.cpp:249
bool addWaypoint(const Waypoint &waypoint)
Ajout un point en fin de ligne brisée.
Definition PurePursuit.cpp:15
Waypoint m_waypoints[PUREPURSUIT_MAX_WAYPOINTS]
Definition PurePursuit.h:158
void setLookAheadBis(float lookAheadBis)
Setter du lookAheadBis.
Definition PurePursuit.cpp:244
const Waypoint & getWaypoint(int index) const
Getter d'un point de passage.
Definition PurePursuit.h:104
float getDistAfterGoal()
Retourne la distance restante à parcourir.
Definition PurePursuit.cpp:143
Structure de position.
Definition Odometry.h:17
float y
Definition Odometry.h:35
float x
Definition Odometry.h:34
Structure d'un point de passage de Purpursuit.
Definition PurePursuit.h:25