Robot secondaire

Dependencies:   RoboClaw mbed StepperMotor

Fork of RoboClaw by Simon Emarre

Revision:
0:ad9600df4a70
Child:
2:abdf8c6823a1
diff -r 000000000000 -r ad9600df4a70 Odometry/Odometry.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Odometry/Odometry.h	Mon Nov 16 11:32:44 2015 +0000
@@ -0,0 +1,57 @@
+#ifndef ODOMETRY_H
+#define ODOMETRY_H
+
+#include "mbed.h"
+#include "RoboClaw.h"
+
+#define PI 3.1415926535897932384626433832795
+
+/*
+*   Author : Benjamin Bertelone, reworked by Simon Emarre
+*/
+
+class Odometry
+{
+    public:
+        Odometry(double diameter_right, double diameter_left, double v);
+        
+        void setPos(double x, double y, double theta);
+        void setX(double x);
+        void setY(double y);
+        void setTheta(double theta);
+        
+        void GotoXYT(double x, double y, double theta_goal);
+        void GotoThet(double theta_goal);
+        
+        double getX() {return x;}
+        double getY() {return y;}
+        double getTheta() {return theta;} // ]-PI;PI]
+        
+        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;}
+        
+        void update_odo(void);
+        double calcul_distance(double x, double y, double theta_goal);
+        
+        long getPulsesLeft(void) {return m_pulses_left;}
+        long getPulsesRight(void) {return m_pulses_right;}
+    
+    private:
+    
+        long m_pulses_left;
+        long 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;
+};
+
+#endif