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.
Diff: odo_asserv.cpp
- Revision:
- 24:be2b2be6907b
- Parent:
- 23:a74135a0271d
- Child:
- 25:869b1c1f51a7
--- a/odo_asserv.cpp Wed Oct 28 16:27:05 2020 +0000
+++ b/odo_asserv.cpp Wed Oct 28 20:08:39 2020 +0000
@@ -2,8 +2,8 @@
#include "pins.h"
/* #define & constantes */
-#define VMAXROT 0.050
-#define VMAXLIN 0.080
+#define VMAXROT 0.020
+#define VMAXLIN 0.040
#define entraxe 253 // (Valeur théorique = 255)
const double coeffGLong = 5.956, coeffDLong = 5.956; // tics/millimètre
@@ -16,10 +16,20 @@
int objRecule[NbObj]= {0,0,0,0,1,0,0,1,0,0,1,0,0};
*/
+/*
int objEtape[NbObj] = {0,1,1,1,1,1,1,1,1,1,1,1,1}; // Stratégie côté bleu
double objX[NbObj] = {110,645,645,200,645,336,189,200,645,468,645,371,215};
double objY[NbObj] = {1085,1200,1400,1400,1400,1788,1032,1200,920,920,920,519,780};
int objRecule[NbObj]= {0,0,0,0,1,0,0,1,0,0,1,0,0};
+*/
+
+
+//int objEtape[NbObj] = {0,1,1,1}; // Stratégie côté bleu
+int objEtape [4] = {0,1,1,1};
+double objX[4] = {0,660, 660, 210};
+double objY[4] = {0,1070,1650,1300};
+int objRecule[NbObj]= {0,0,0,0};
+
/* Variable globale */
Ticker Ticker_asserv;
@@ -72,14 +82,14 @@
double erreurAngle = 0;
double erreurPre = 0;
double deltaErreur = 0;
-const double coeffPro = 0.075; // 0.023 de base
-const double coeffDer = 0.060; // 0.023 de base
+const double coeffPro = 0.020; // 0.023 de base
+const double coeffDer = 0.010; // 0.023 de base
// Ligne droite
double erreurPreDist = 0;
double deltaErreurDist = 0;
-const double coeffProDist = 0.0004; // 0.010 de base
-const double coeffDerDist = 0.0004; // 0.010 de base
+const double coeffProDist = 0.0008; // 0.010 de base
+const double coeffDerDist = 0.0008; // 0.010 de base
// NEW NEW NEW NEW
int fnc = 0;
@@ -163,7 +173,7 @@
double deltaCommande = (abs(coeffPro * erreurAngle) + abs(coeffDer * deltaErreur));
if(acc) {
- cmdG = cmdG + 0.0001; // +0.0008
+ cmdG = cmdG + 0.0008; // +0.0008
cmdD = cmdG;
if (cmdG >= VMAXROT) acc = 0;
@@ -211,7 +221,7 @@
double deltaCommande2 = (abs(coeffProDist * distanceCible) + abs(coeffDerDist * deltaErreurDist));
if(acc) {
- cmdG = cmdG + 0.0001; // +0.0008
+ cmdG = cmdG + 0.0006; // +0.0008
cmdD = cmdG;
if (cmdG >= VMAXLIN) {