Robot secondaire
Dependencies: RoboClaw mbed StepperMotor
Fork of RoboClaw by
Diff: Odometry/Odometry.h
- Revision:
- 10:ae3178aa94e9
- Parent:
- 9:e39b218ab20d
- Child:
- 12:d5e21f71c2a9
--- a/Odometry/Odometry.h Tue Nov 24 23:05:12 2015 +0000 +++ b/Odometry/Odometry.h Fri Dec 04 11:18:13 2015 +0000 @@ -5,26 +5,35 @@ #include "RoboClaw.h" #define PI 3.1415926535897932384626433832795 -#define C 1.1538461538461538461538461538462 +#define C 1.0 + +#define accel_angle 8000 +#define vitesse_angle 16000 +#define deccel_angle 8000 + +#define accel_dista 8000 +#define vitesse_dista 16000 +#define deccel_dista 8000 /* * Author : Benjamin Bertelone, reworked by Simon Emarre */ extern Serial pc; +extern DigitalOut led; /** Permet la gestion de l'odometrie du robot **/ class Odometry { public: - /** Constructeur standart + /** Constructeur standard * @param diameter_right Definit le diametre de la roue droite * @param diameter_left Definit le diametre de la roue gauche * @param v Definit l'entraxe du robot * @param rc Definit une reference vers l'objet permettant l'asserv des moteurs - @note Cet objet doit etre initialise en amont + * @note Cet objet doit etre initialise en amont */ - Odometry(double diameter_right, double diameter_left, double v, RoboClaw &rc); + Odometry(double diameter_right, double diameter_left, double v, uint16_t quadrature, RoboClaw &rc); /** Les fonctions suivantes permettent de reinitialiser les valeurs de position de l'odometrie. */ @@ -55,9 +64,8 @@ else return x; } - /** Les fonction suivantes sont actuellement inutilisables, elles pourraient buguer en cas d'utilisation. - * @note pour que les fonctions retournent une valeur correcte, il faut actualiser l'odometrie avec update_odo auparavant - */ + /* Les fonction suivantes sont actuellement inutilisables, elles pourraient buguer en cas d'utilisation. */ + double getVitLeft() { return m_vitLeft; } @@ -94,7 +102,7 @@ /** La fonction retourne vraie quand le robot atteint l'angle voulu avec une marge d'erreur definie par la fonction * @param theta_ valeur de l'angle devant etre atteint */ - bool isArrivedRot(double theta_); + bool isArrived(void) {return arrived;} /** Permet de mettre à jour les valeurs de l'odometrie */ void update_odo(void); @@ -103,7 +111,7 @@ RoboClaw &roboclaw; int32_t m_pulses_left; int32_t m_pulses_right; - + uint8_t pos_prog; double x, y, theta; double m_vitLeft, m_vitRight; double m_distLeft, m_distRight; @@ -111,6 +119,7 @@ double m_distPerTick_left, m_distPerTick_right, m_v; double erreur_ang; + bool arrived; }; #endif