Voili voilou

Dependencies:   RoboClaw StepperMotor mbed

Fork of Robot2016_2-0 by ARES

Revision:
8:12d7123a500e
Parent:
7:961c1acdf753
Child:
9:e39b218ab20d
--- a/Odometry/Odometry.h	Tue Nov 24 22:54:55 2015 +0000
+++ b/Odometry/Odometry.h	Tue Nov 24 22:59:01 2015 +0000
@@ -15,77 +15,101 @@
 
 class Odometry
 {
-    public:
-        /** Constructeur standart
-        * @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
-        */
-        Odometry(double diameter_right, double diameter_left, double v, RoboClaw &rc);
-        
-        /** Les fonctions suivantes permettent de reinitialiser les valeurs de position de l'odometrie. 
-        */
-        void setPos(double x, double y, double theta);
-        void setX(double x);
-        void setY(double y);
-        void setTheta(double theta);
-        
-        /** Les fonctions suivantes permettent de deplacer le robot vers une position ou un angle voulu
-        */ 
-        void GotoXYT(double x_goal, double y_goal, double theta_goal);
-        void GotoThet(double theta_);
-        void GotoDist(double distance);
-        
-        double getX() {return x;}
-        double getY() {return y;}
-        double getTheta() {return theta;} // ]-PI;PI]
-        double getTheta_(double x, double y);
-        
-        double abs_d(double x){
-            if(x<0) return -x;
-            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
-        */
-        double getVitLeft() {return m_vitLeft;}
-        double getVitRight() {return m_vitRight;}
-        
-        double getDistLeft() {return m_distLeft;}
-        double getDistRight() {return m_distRight;}
-        
-        void setDistLeft(double dist) {m_distLeft = dist;}
-        void setDistRight(double dist) {m_distRight = dist;}
+public:
+    /** Constructeur standart
+    * @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
+    */
+    Odometry(double diameter_right, double diameter_left, double v, RoboClaw &rc);
+
+    /** Les fonctions suivantes permettent de reinitialiser les valeurs de position de l'odometrie.
+    */
+    void setPos(double x, double y, double theta);
+    void setX(double x);
+    void setY(double y);
+    void setTheta(double theta);
+
+    /** Les fonctions suivantes permettent de deplacer le robot vers une position ou un angle voulu
+    */
+    void GotoXYT(double x_goal, double y_goal, double theta_goal);
+    void GotoThet(double theta_);
+    void GotoDist(double distance);
+
+    double getX() {
+        return x;
+    }
+    double getY() {
+        return y;
+    }
+    double getTheta() {
+        return theta;   // ]-PI;PI]
+    }
+    double getTheta_(double x, double y);
+
+    double abs_d(double x) {
+        if(x<0) return -x;
+        else return x;
+    }
 
-        double calcul_distance(double x, double y, double theta_goal);
-        
-        int32_t getPulsesLeft(void) {return m_pulses_left;}
-        int32_t getPulsesRight(void) {return m_pulses_right;}
-        double carre(double a) {return a*a;}
-        
-        /** 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_);    
-        /** Permet de mettre à jour les valeurs de l'odometrie 
-        */    
-        void update_odo(void);
-    
-    private:
-        RoboClaw &roboclaw;
-        int32_t m_pulses_left;
-        int32_t m_pulses_right;
-        
-        double x, y, theta;
-        double m_vitLeft, m_vitRight;
-        double m_distLeft, m_distRight;
-        
-        double m_distPerTick_left, m_distPerTick_right, m_v;
-        
-        double erreur_ang;
+    /** 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
+    */
+    double getVitLeft() {
+        return m_vitLeft;
+    }
+    double getVitRight() {
+        return m_vitRight;
+    }
+
+    double getDistLeft() {
+        return m_distLeft;
+    }
+    double getDistRight() {
+        return m_distRight;
+    }
+
+    void setDistLeft(double dist) {
+        m_distLeft = dist;
+    }
+    void setDistRight(double dist) {
+        m_distRight = dist;
+    }
+
+    double calcul_distance(double x, double y, double theta_goal);
+
+    int32_t getPulsesLeft(void) {
+        return m_pulses_left;
+    }
+    int32_t getPulsesRight(void) {
+        return m_pulses_right;
+    }
+    double carre(double a) {
+        return a*a;
+    }
+
+    /** 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_);
+    /** Permet de mettre à jour les valeurs de l'odometrie
+    */
+    void update_odo(void);
+
+private:
+    RoboClaw &roboclaw;
+    int32_t m_pulses_left;
+    int32_t m_pulses_right;
+
+    double x, y, theta;
+    double m_vitLeft, m_vitRight;
+    double m_distLeft, m_distRight;
+
+    double m_distPerTick_left, m_distPerTick_right, m_v;
+
+    double erreur_ang;
 };
 
 #endif