Robot Principal 26
Documentation du Club Robot INSA Rennes 2026
Chargement...
Recherche...
Aucune correspondance
Odometry.h
1#ifndef __ODOMETRY_H__
2#define __ODOMETRY_H__
3
4#include "../lib/PeriodicProcess/PeriodicProcess.h"
5
17{
22 Position() : x(0), y(0), theta(0){}
32 Position(float x, float y, float theta) : x(x), y(y), theta(theta){}
33 static bool compare(const Position *one , const Position *two){return one->x==two->x && one->y==two->y && one->theta==two->theta;}
34 float x;
35 float y;
36 float theta;
37};
38
46{
47public:
48
49 virtual ~AbstractCodewheel() = default;
50
58 virtual float getTraveledDistance() = 0;
66 virtual float restart() = 0;
67};
68
74{
75public:
85 void setPosition(float x, float y, float theta){m_pos.x = x; m_pos.y = y; m_pos.theta = theta;}
93 void setAxleTrack(float axleTrack);
101 void setSlippage (float slippage);
110 void setCodewheels(const AbstractCodewheel& leftCodewheel, const AbstractCodewheel& rightCodewheel){m_leftCodewheel = const_cast<AbstractCodewheel*>(&leftCodewheel), m_rightCodewheel = const_cast<AbstractCodewheel*>(&rightCodewheel);}
118 const Position* getPosition() const {return &m_pos;}
126 float getLinVel() const {return m_linVel;}
134 float getAngVel() const {return m_angVel;}
139 float getAxleTrack() const {return m_axleTrack;}
144 float getSlippage () const {return m_slippage;}
145
146protected:
152 virtual void process(float timestep);
153
155 float m_linVel;
156 float m_angVel;
159
162};
163
164#endif // __ODOMETRY_H__
Classe abstraite d'une roue codeuse.
Definition Odometry.h:46
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:74
float m_slippage
Definition Odometry.h:158
AbstractCodewheel * m_leftCodewheel
Definition Odometry.h:160
void setSlippage(float slippage)
Defini la nouvelle dérive orthogonal.
Definition Odometry.cpp:28
virtual void process(float timestep)
Calcule la nouvelle position et la nouvelle vitesse. A partir de ses AbstractCodewheel,...
Definition Odometry.cpp:5
float m_axleTrack
Definition Odometry.h:157
float m_linVel
Definition Odometry.h:155
void setPosition(float x, float y, float theta)
Attribut une nouvelle position.
Definition Odometry.h:85
float getAngVel() const
Retourne la vitesse angulaire.
Definition Odometry.h:134
AbstractCodewheel * m_rightCodewheel
Definition Odometry.h:161
float getAxleTrack() const
Retourne l'entraxe utilisée.
Definition Odometry.h:139
Position m_pos
Definition Odometry.h:154
void setCodewheels(const AbstractCodewheel &leftCodewheel, const AbstractCodewheel &rightCodewheel)
Defini les roues codeuses de Odometry.
Definition Odometry.h:110
float m_angVel
Definition Odometry.h:156
float getLinVel() const
Retourne la vitesse linéaire.
Definition Odometry.h:126
float getSlippage() const
Retourne la dérive utilisée.
Definition Odometry.h:144
const Position * getPosition() const
Retourne la position.
Definition Odometry.h:118
void setAxleTrack(float axleTrack)
Defini une nouvelle entraxe pour les roues codeuses.
Definition Odometry.cpp:23
Classe à implémenter pour gérer les appels dans la loop.
Definition PeriodicProcess/PeriodicProcess.h:17
Structure de position.
Definition Odometry.h:17
Position(float x, float y, float theta)
Constructeur de Position.
Definition Odometry.h:32
Position()
Constructeur de Position. Constructeur de Position qui initialise la position au coordonnées (0,...
Definition Odometry.h:22
float theta
Definition Odometry.h:36
float y
Definition Odometry.h:35
float x
Definition Odometry.h:34