Time is good

Dependencies:   RoboClaw mbed

Fork of Robot2016_2-0 by ARES

Files at this revision

API Documentation at this revision

Comitter:
IceTeam
Date:
Fri May 06 21:21:49 2016 +0000
Parent:
94:86b9bd6d5c28
Child:
97:42167cfeb8d7
Commit message:
Coucou vers ordi de simon

Changed in this revision

deplacement.cpp Show annotated file Show diff for this revision Revisions of this file
entete.h Show annotated file Show diff for this revision Revisions of this file
--- a/deplacement.cpp	Fri May 06 18:25:24 2016 +0000
+++ b/deplacement.cpp	Fri May 06 21:21:49 2016 +0000
@@ -69,10 +69,8 @@
 void GotoThet(double theta_) {
     roboclaw.ResetEnc();
     wait_ms(10);
-    float diameter_left = 61.7;
-    float diameter_right = 61.8;
-    int distance_ticks_left = -theta_*ENTRAXE/(2*(diameter_left*3.14159/4096));
-    int distance_ticks_right = theta_*ENTRAXE/(2*(diameter_right*3.14159/4096));
+    int distance_ticks_left = -theta_*ENTRAXE/(2*(DIAMETRE_ROUE_GAUCHE*3.14159/4096));
+    int distance_ticks_right = theta_*ENTRAXE/(2*(DIAMETRE_ROUE_DROITE*3.14159/4096));
 
     if (theta_ < 0)
         roboclaw.SpeedAccelDeccelPositionM1M2(accel_angle, vitesse_angle, deccel_angle, distance_ticks_right, accel_angle, vitesse_angle, deccel_angle, distance_ticks_left, 1);
@@ -84,21 +82,16 @@
     roboclaw.ForwardM2(0);
 }
 
-void Odometry::GotoDistPos(double distance)
+void GotoDistPos(double distance)
 {
-    int32_t pos_initiale_right = m_pulses_right, pos_initiale_left = m_pulses_left;
-
-    int32_t distance_ticks_right = (int32_t) distance/m_distPerTick_right + pos_initiale_right;
-    int32_t distance_ticks_left = (int32_t) distance/m_distPerTick_left + pos_initiale_left;
-
-    roboclaw.SpeedAccelDeccelPositionM1M2(accel_dista, avant ? vitesse_dista : 0 - vitesse_dista, deccel_dista, distance_ticks_right, accel_dista, avant ? vitesse_dista : 0 - vitesse_dista, deccel_dista, distance_ticks_left, 1);
+    roboclaw.ResetEnc();
+    wait_ms(1);
+    int32_t distance_ticks_left = distance/((DIAMETRE_ROUE_GAUCHE*3.14156)/4096);
+    int32_t distance_ticks_right = distance/((DIAMETRE_ROUE_GAUCHE*3.14156)/4096);
 
-    //logger.printf("IniR:%6d\tDistR:%6d\tIniL:%6d\tDistL:%6d\n\r", pos_initiale_right, distance_ticks_right, pos_initiale_left, distance_ticks_left);
-    
-    while((m_pulses_right != distance_ticks_right)&&(m_pulses_left != distance_ticks_left)); //logger.printf("PR:%6d\tIR:%6d\tDR:%6d\tPL:%6d\tIL:%6d\tDL:%6d\n\r",m_pulses_right, pos_initiale_right, distance_ticks_right, m_pulses_left, pos_initiale_left, distance_ticks_left);
+    roboclaw.SpeedAccelDeccelPositionM1M2(accel_dista, vitesse_dista, deccel_dista, distance_ticks_right, accel_dista, vitesse_dista, deccel_dista, distance_ticks_left, 1);
+
+    while(abs(roboclaw.ReadEncM1() - distance_ticks_right) > 20 && abs(roboclaw.ReadEncM2() - distance_ticks_left) > 20);
     
-    wait(0.4);
-    //logger.printf("arrivey %d\n\r",pos_prog);
-    //logger.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", getX(), getY(), getTheta()*180/PI);
-    logger.printf("End\n\r");
+    wait(0.1);
 }
\ No newline at end of file
--- a/entete.h	Fri May 06 18:25:24 2016 +0000
+++ b/entete.h	Fri May 06 21:21:49 2016 +0000
@@ -47,6 +47,8 @@
 void changeCamp(void);
 
 #define ENTRAXE 243.8
+#define DIAMETRE_ROUE_GAUCHE 61.7
+#define DIAMETRE_ROUE_DROITE 61.8
 
 #define accel_angle 3200
 #define vitesse_angle 3200