From 2ddd21b024ff07b71012f5643a692add13f35024 Mon Sep 17 00:00:00 2001 From: dufourj Date: Thu, 5 May 2005 15:34:33 +0000 Subject: Nettoyage de AI --- 2005/i/robert/src/ai/ai.cc | 110 ++++++++++++++++++++++++++------------------- 2005/i/robert/src/ai/ai.hh | 6 ++- 2 files changed, 69 insertions(+), 47 deletions(-) (limited to '2005/i') diff --git a/2005/i/robert/src/ai/ai.cc b/2005/i/robert/src/ai/ai.cc index 58bae71..573a59e 100644 --- a/2005/i/robert/src/ai/ai.cc +++ b/2005/i/robert/src/ai/ai.cc @@ -87,48 +87,14 @@ void Ai::stop(void) /// Lance le robot void Ai::run(void) { - //Initialise le robot - std::cout << "On init le robot" << std::endl; - init(); - // Attend l'entrée du jack "pret à initialiser" - std::cout << "On attend le jack" << std::endl; - waitJack(false); - std::cout << "Le jack est mis, on réinit la PWM" << std::endl; - pwm (); - // Attend la première sortie du jack(init) - waitJack(true); - std::cout << "Le jack est sorti" << std::endl; - //On fait une rotation pour recaler y - std::cout << "On tourne -> -PI/2" << std::endl; - rotation(-M_PI/2); - // On recule dans le mur - std::cout << "On se recale" << std::endl; - recale (); - motor_.setPosition(motor_.getX(), -60, -M_PI / 2); - // On avance vers la position de départ en y - std::cout << "On avance de 155mm" << std::endl; - basic (155); // 215 - 60 = 155 - // On rotate de 90 ° - std::cout << "On rotate -> 0" << std::endl; - rotation (0); - // On se recale vers x - std::cout << "On se recale" << std::endl; - recale(); - motor_.setPosition(60, motor_.getY(), 0); - std::cout << "On attend le jack" << std::endl; - // Attend le jack "pret à partir" - waitJack(false); - std::cout << "Le jack est mis" << std::endl; - // Attend la seconde sortie du jack(Daniel) - waitJack(true); - std::cout << "Le jack est sortie" << std::endl; - // on lance le temps - std::cout << "Lancmeent du match" << std::endl; - Timer::startRound(); + // Lancement du placement pour les matchs + initMatch (); + + /*** AI d'homologation ***/ /* // On temporise pour laisser Taz sortir std::cout << "Attente du 15 secondes" << std::endl; - temporisation(15000); ///XXX + temporisation(15000); // On avance pour pouvoir aller vers la boule parallèlement au socle std::cout << "On avance de 540mm" << std::endl; basic(540); // 600 - 60 @@ -158,23 +124,21 @@ void Ai::run(void) // On retaure la vitesse std::cout << "Acceleration vitesse" << std::endl; motor_.setMaxSpeed(MaxLSpeedConf, -1); - // XXX On temporise et on fait mumuse avec l'ascenceur */ + // XXX On temporise et on fait mumuse avec l'ascenceur + */ + + /*** AI du 1er match ***/ temporisation (30000); basic ( 600 ); rotation ( - M_PI / 2 ); basic ( 300 ); rotation ( M_PI ); basic ( 450 ); + // On a fini notre run std::cout << "On a fini" << std::endl; } -void Ai::pwm (void) -{ - motor_.setPwm (0, 0); - update(); -} - /// Attend. void Ai::wait (int t) { @@ -278,6 +242,7 @@ void Ai::ventouses (void) /// XXX Temps update(); } +/// Attend une mise à jour bool Ai::update (void) { scheduler_.schedule(500, true); @@ -290,9 +255,62 @@ bool Ai::update (void) return true; } +/// Synchronise les données avec motor et es. void Ai::sync (void) { motor_.sync(); es_.sync(); } + +/// Reset la PWM à zéro. +void Ai::resetPwm (void) +{ + motor_.setPwm (0, 0); + // synchronise + update(); +} + +/// Initialise le robot pour faire un match (placement). +void Ai::initMatch (void) +{ + //Initialise le robot + std::cout << "On init le robot" << std::endl; + init(); + // Attend l'entrée du jack "pret à initialiser" + std::cout << "On attend le jack" << std::endl; + waitJack(false); + std::cout << "Le jack est mis, on réinit la PWM" << std::endl; + // Reset la PWM à zéro si on a fait de la merde en le posant sur la table + resetPwm (); + // Attend la première sortie du jack(init) + waitJack(true); + std::cout << "Le jack est sorti" << std::endl; + //On fait une rotation pour recaler y + std::cout << "On tourne -> -PI/2" << std::endl; + rotation(-M_PI/2); + // On recule dans le mur + std::cout << "On se recale" << std::endl; + recale (); + motor_.setPosition(motor_.getX(), -60, -M_PI / 2); + // On avance vers la position de départ en y + std::cout << "On avance de 155mm" << std::endl; + basic (155); // 215 - 60 = 155 + // On rotate de 90 ° + std::cout << "On rotate -> 0" << std::endl; + rotation (0); + // On se recale vers x + std::cout << "On se recale" << std::endl; + recale(); + motor_.setPosition(60, motor_.getY(), 0); + std::cout << "On attend le jack" << std::endl; + // Attend le jack "pret à partir" + waitJack(false); + std::cout << "Le jack est mis" << std::endl; + // Attend la seconde sortie du jack(Daniel) + waitJack(true); + std::cout << "Le jack est sortie" << std::endl; + // On lance le timer de début de match + std::cout << "Lancmeent du match" << std::endl; + Timer::startRound(); +} diff --git a/2005/i/robert/src/ai/ai.hh b/2005/i/robert/src/ai/ai.hh index cb2e051..7e81bcb 100644 --- a/2005/i/robert/src/ai/ai.hh +++ b/2005/i/robert/src/ai/ai.hh @@ -79,8 +79,12 @@ class Ai void ventouses (void); /// Attend une mise à jour bool update (void); + /// Synchronise les données avec motor et es. void sync (void); - void pwm (void); + /// Reset la PWM à zéro. + void resetPwm (void); + /// Initialise le robot pour faire un match (placement). + void initMatch (); }; #endif // ai_hh -- cgit v1.2.3