CRINSA-team2025 V1
Documentation du Club Robot INSA Rennes 2025
Chargement...
Recherche...
Aucune correspondance
PurePursuit.h
1#ifndef __PUREPURSUIT_H__
2#define __PUREPURSUIT_H__
3
4#include "PositionController.h"
5#include "Odometry.h"
6
7#include <math.h>
8
9#ifndef PUREPURSUIT_MAX_WAYPOINTS
10#define PUREPURSUIT_MAX_WAYPOINTS 16
11#endif
12
18
19class PurePursuit : public AbstractMoveStrategy
20{
21public:
26 struct Waypoint
27 {
28 Waypoint() : x(0), y(0){}
29 Waypoint(float x, float y) : x(x), y(y){}
30 Waypoint(const Position& pos) : x(pos.x), y(pos.y){}
31
32 float x, y;
33 };
34
37 enum Direction {
40 , NONE=0
41 };
42
43 PurePursuit() : m_numWaypoints(0), m_direction(FORWARD){}
48 void setDirection(Direction direction);
53 void setFinalAngle(float finalAngle);
61 bool addWaypoint(const Waypoint& waypoint);
66 void reset();
74 void setLookAhead (float lookAhead) ;
82 void setLookAheadBis(float lookAheadBis);
97 float getFinalAngle() const {return m_finalAngle;}
106 const Waypoint& getWaypoint(int index) const {return m_waypoints[index];}
112 int getNumWaypoints() const {return m_numWaypoints;}
118 float getLookAhead() const {return m_lookAhead;}
124 float getLookAheadBis() const {return m_lookAheadBis;}
125
126protected:
127
128 virtual void computeVelSetpoints(float timestep);
129 virtual bool getPositionReached();
130
141 bool checkLookAheadGoal(const float x, const float y);
150 void checkProjectionGoal(const float x, const float y);
151
157 float getDistAfterGoal();
158
159 // Trajectory specifications
160 Waypoint m_waypoints[PUREPURSUIT_MAX_WAYPOINTS];
164
165 // Computation variables
169
170 // Path following tunings
173};
174
175#endif // __PUREPURSUIT_H__
Interface de Stratégie de mouvement.
Definition PositionController.h:190
Trajectoire courbe le long d'une ligne brisée.
Definition PurePursuit.h:20
Direction getDirection() const
Getter de la direction courant.
Definition PurePursuit.h:88
void checkProjectionGoal(const float x, const float y)
Calcule le point intermediaire sur la ligne brisée.
Definition PurePursuit.cpp:99
float getFinalAngle() const
Getter de l'angle final.
Definition PurePursuit.h:97
float m_finalAngle
Definition PurePursuit.h:163
void setFinalAngle(float finalAngle)
Setter de l'angle à atteindre en fin de trajectoire.
Definition PurePursuit.cpp:14
int getNumWaypoints() const
Getter du nombre de point de passage.
Definition PurePursuit.h:112
float m_goalParam
Definition PurePursuit.h:167
Direction m_direction
Definition PurePursuit.h:162
float m_lookAhead
Definition PurePursuit.h:171
bool checkLookAheadGoal(const float x, const float y)
Calcul le point intermediaire sur la ligne brisée.
Definition PurePursuit.cpp:38
float getLookAhead() const
Getter du lookahead.
Definition PurePursuit.h:118
bool m_goalReached
Definition PurePursuit.h:168
Direction
Sens de déplacement pour le robot.
Definition PurePursuit.h:37
@ BACKWARD
Le robot avance en marche arrière.
Definition PurePursuit.h:39
@ FORWARD
Le robot avance en marche avant.
Definition PurePursuit.h:38
void setDirection(Direction direction)
Setter du sens de marche du robot.
Definition PurePursuit.cpp:9
virtual void computeVelSetpoints(float timestep)
Calcul les nouvelles vitesses désirer.
Definition PurePursuit.cpp:174
virtual bool getPositionReached()
Indique si la position désirée est atteinte.
Definition PurePursuit.cpp:243
float getLookAheadBis() const
Getter du LookAHead de fin de trajectoire.
Definition PurePursuit.h:124
int m_goalIndex
Definition PurePursuit.h:166
float m_lookAheadBis
Definition PurePursuit.h:172
void reset()
Initialise le Purpuisuit. Supprime les current_points de la ligne brisée et les paramètres temporaire...
Definition PurePursuit.cpp:29
int m_numWaypoints
Definition PurePursuit.h:161
void setLookAhead(float lookAhead)
Setter du lookAhead.
Definition PurePursuit.cpp:253
bool addWaypoint(const Waypoint &waypoint)
Ajout un point en fin de ligne brisée.
Definition PurePursuit.cpp:19
Waypoint m_waypoints[PUREPURSUIT_MAX_WAYPOINTS]
Definition PurePursuit.h:160
void setLookAheadBis(float lookAheadBis)
Setter du lookAheadBis.
Definition PurePursuit.cpp:248
const Waypoint & getWaypoint(int index) const
Getter d'un point de passage.
Definition PurePursuit.h:106
float getDistAfterGoal()
Retourne la distance restante à parcourir.
Definition PurePursuit.cpp:147
Structure de position.
Definition Odometry.h:14
float y
Definition Odometry.h:32
float x
Definition Odometry.h:31
Structure d'un point de passage de Purpursuit.
Definition PurePursuit.h:27