CRINSA-team2025 V1
Documentation du Club Robot INSA Rennes 2025
Chargement...
Recherche...
Aucune correspondance
Odometry.h
1#ifndef __ODOMETRY_H__
2#define __ODOMETRY_H__
3
4#include "PeriodicProcess.h"
5
14{
19 Position() : x(0), y(0), theta(0){}
29 Position(float x, float y, float theta) : x(x), y(y), theta(theta){}
30 static bool compare(const Position *one , const Position *two){return one->x==two->x && one->y==two->y && one->theta==two->theta;}
31 float x;
32 float y;
33 float theta;
34};
35
43{
44public:
45
46 virtual ~AbstractCodewheel(){}
47
55 virtual float getTraveledDistance() = 0;
63 virtual float restart() = 0;
64};
65
71{
72public:
82 void setPosition(float x, float y, float theta){m_pos.x = x; m_pos.y = y; m_pos.theta = theta;}
90 void setAxleTrack(float axleTrack);
98 void setSlippage (float slippage);
107 void setCodewheels(AbstractCodewheel& leftCodewheel, AbstractCodewheel& rightCodewheel){m_leftCodewheel = &leftCodewheel, m_rightCodewheel = &rightCodewheel;}
115 const Position* getPosition() const {return &m_pos;}
123 float getLinVel() const {return m_linVel;}
131 float getAngVel() const {return m_angVel;}
136 float getAxleTrack() const {return m_axleTrack;}
141 float getSlippage () const {return m_slippage;}
142
143protected:
149 virtual void process(float timestep);
150
152 float m_linVel;
153 float m_angVel;
156
159};
160
161#endif // __ODOMETRY_H__
Classe abstraite d'une roue codeuse.
Definition Odometry.h:43
virtual float getTraveledDistance()=0
Calcul la distance parcourue.
virtual float restart()=0
Réinitialise l'objet.
Calcule la position en temps réel du robot.
Definition Odometry.h:71
float m_slippage
Definition Odometry.h:155
AbstractCodewheel * m_leftCodewheel
Definition Odometry.h:157
void setSlippage(float slippage)
Defini la nouvelle dérive orthogonal.
Definition Odometry.cpp:30
void setCodewheels(AbstractCodewheel &leftCodewheel, AbstractCodewheel &rightCodewheel)
Defini les roues codeuses de Odometry.
Definition Odometry.h:107
virtual void process(float timestep)
Calcule la nouvelle position et la nouvelle vitesse. A partir de ses AbstractCodewheel,...
Definition Odometry.cpp:7
float m_axleTrack
Definition Odometry.h:154
float m_linVel
Definition Odometry.h:152
void setPosition(float x, float y, float theta)
Attribut une nouvelle position.
Definition Odometry.h:82
float getAngVel() const
Retourne la vitesse angulaire.
Definition Odometry.h:131
AbstractCodewheel * m_rightCodewheel
Definition Odometry.h:158
float getAxleTrack() const
Retourne l'entraxe utilisée.
Definition Odometry.h:136
Position m_pos
Definition Odometry.h:151
float m_angVel
Definition Odometry.h:153
float getLinVel() const
Retourne la vitesse linéaire.
Definition Odometry.h:123
float getSlippage() const
Retourne la dérive utilisée.
Definition Odometry.h:141
const Position * getPosition() const
Retourne la position.
Definition Odometry.h:115
void setAxleTrack(float axleTrack)
Defini une nouvelle entraxe pour les roues codeuses.
Definition Odometry.cpp:25
Classe à implémenter pour gérer les appels dans la loop.
Definition PeriodicProcess.h:16
Structure de position.
Definition Odometry.h:14
Position(float x, float y, float theta)
Constructeur de Position.
Definition Odometry.h:29
Position()
Constructeur de Position. Constructeur de Position qui initialise la position au coordonnées (0,...
Definition Odometry.h:19
float theta
Definition Odometry.h:33
float y
Definition Odometry.h:32
float x
Definition Odometry.h:31