Robot secondaire

Dependencies:   RoboClaw mbed StepperMotor

Fork of RoboClaw by Simon Emarre

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