summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/motor/tracker.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/motor/tracker.cc')
-rw-r--r--2004/i/nono/src/motor/tracker.cc21
1 files changed, 16 insertions, 5 deletions
diff --git a/2004/i/nono/src/motor/tracker.cc b/2004/i/nono/src/motor/tracker.cc
index ba90b95..25f6f22 100644
--- a/2004/i/nono/src/motor/tracker.cc
+++ b/2004/i/nono/src/motor/tracker.cc
@@ -76,12 +76,9 @@ bool
Tracker::computeError (double x, double y, double &el, double &ea, double eps,
double dist) const
{
- // Calcule le point cible courant.
- double aX = posX_;
- double aY = posY_;
// Calcule la diférence avec la cible voulue.
- double eX = x - aX;
- double eY = y - aY;
+ double eX = x - posX_;
+ double eY = y - posY_;
// Calcule la distance au carré.
double d = eX * eX + eY * eY;
// Vérifie l'eps.
@@ -106,6 +103,20 @@ Tracker::computeError (double x, double y, double &el, double &ea, double eps,
return true;
}
+// Calcule l'erreur angulaire pour atteindre un angle, retourne faux si
+// atteind.
+bool
+Tracker::computeAngleError (double a, double &ea, double eps) const
+{
+ ea = a - angle_;
+ if (ea < eps)
+ {
+ ea = 0.0;
+ return false;
+ }
+ return true;
+}
+
// Calcule la longueur de l'arc gauche et droite pour atteindre un point.
// EPS précise la distance minimale. Renvois faux si atteind.
bool