Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: RoboClaw mbed StepperMotor
Fork of RoboClaw by
Revision 35:4e3d9ab1b94b, committed 2016-01-26
- Comitter:
- IceTeam
- Date:
- Tue Jan 26 17:21:11 2016 +0000
- Parent:
- 33:7f8c29ddee61
- Child:
- 36:2d7357a385bc
- Commit message:
- Test entraxe;
Changed in this revision
| Odometry/Odometry.cpp | Show annotated file Show diff for this revision Revisions of this file |
| Odometry/Odometry.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Odometry/Odometry.cpp Tue Jan 26 17:14:54 2016 +0000
+++ b/Odometry/Odometry.cpp Tue Jan 26 17:21:11 2016 +0000
@@ -172,3 +172,24 @@
//pc.printf("arrivey %d\n\r",pos_prog);
//pc.printf("X : %3.2f\tY : %3.2f\tTheta : %3.2f\n\r", getX(), getY(), getTheta()*180/PI);
}
+
+void Odometry::TestEntraxe(int i) {
+ int32_t distance_ticks_left;
+ int32_t distance_ticks_right;
+
+ int32_t pos_initiale_right = m_pulses_right, pos_initiale_left = m_pulses_left;
+
+ double erreur_theta = 2*PI*i - getTheta();
+ if(erreur_theta < 0) {
+ distance_ticks_left = (int32_t) pos_initiale_left + (erreur_theta*m_v/2)/m_distPerTick_left;
+ distance_ticks_right = (int32_t) pos_initiale_right - (erreur_theta*m_v/2)/m_distPerTick_right;
+ } else {
+ distance_ticks_left = (int32_t) pos_initiale_left + (erreur_theta*m_v/2)/m_distPerTick_left;
+ distance_ticks_right = (int32_t) pos_initiale_right - (erreur_theta*m_v/2)/m_distPerTick_right;
+ }
+
+ roboclaw.SpeedAccelDeccelPositionM1M2(ADR, accel_angle, vitesse_angle, deccel_angle, distance_ticks_right, accel_angle, vitesse_angle, deccel_angle, distance_ticks_left, 1);
+
+ while((m_pulses_right != distance_ticks_right)&&(m_pulses_left != distance_ticks_left));
+ wait(0.4);
+}
--- a/Odometry/Odometry.h Tue Jan 26 17:14:54 2016 +0000
+++ b/Odometry/Odometry.h Tue Jan 26 17:21:11 2016 +0000
@@ -36,6 +36,8 @@
*/
Odometry(double diameter_right, double diameter_left, double v, uint16_t quadrature, RoboClaw &rc);
+ void TestEntraxe(int i);
+
/** Les fonctions suivantes permettent de reinitialiser les valeurs de position de l'odometrie.
*/
void setPos(double x, double y, double theta);
