summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ai
diff options
context:
space:
mode:
Diffstat (limited to '2005/i/robert/src/ai')
-rw-r--r--2005/i/robert/src/ai/ai.cc110
-rw-r--r--2005/i/robert/src/ai/ai.hh6
2 files changed, 69 insertions, 47 deletions
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 à régler dans la config
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