From 73a8910c6b5cb221534d788f72e2e7ab73210ca8 Mon Sep 17 00:00:00 2001 From: dufourj Date: Thu, 5 May 2005 21:17:38 +0000 Subject: Correction de petits problèmes dans asserv et pleins d'autres boulettes. --- 2005/i/robert/src/Makefile.defs | 4 +++ 2005/i/robert/src/ai/Makefile.defs | 4 +-- 2005/i/robert/src/ai/ai.cc | 65 +++++++++++++++++++++++++++++++++++--- 2005/i/robert/src/ai/ai.hh | 3 ++ 2005/i/robert/src/ai/test_ai.cc | 4 +++ 2005/i/robert/src/asserv/asserv.cc | 2 +- 6 files changed, 74 insertions(+), 8 deletions(-) (limited to '2005/i/robert') diff --git a/2005/i/robert/src/Makefile.defs b/2005/i/robert/src/Makefile.defs index 3b14d48..a25a857 100644 --- a/2005/i/robert/src/Makefile.defs +++ b/2005/i/robert/src/Makefile.defs @@ -16,6 +16,10 @@ CXXFLAGS += -pg LDFLAGS += -pg endif +ifeq ($(shell hostname),hermes) +LDFLAGS = -static +endif + # Messages sur une ligne. CXXFLAGS += -fmessage-length=0 diff --git a/2005/i/robert/src/ai/Makefile.defs b/2005/i/robert/src/ai/Makefile.defs index 581568d..4eaade9 100644 --- a/2005/i/robert/src/ai/Makefile.defs +++ b/2005/i/robert/src/ai/Makefile.defs @@ -4,8 +4,6 @@ ai_OBJECTS = ai.o test_ai_OBJECTS = test_ai.o $(ai_OBJECTS) $(motor_OBJECTS) $(log_OBJECTS) \ $(asserv_OBJECTS) $(proto_OBJECTS) $(utils_OBJECTS) $(serial_OBJECTS) \ -$(timer_OBJECTS) $(config_OBJECTS) $(scheduler_OBJECTS) $(es_OBJECTS) \ -$(ovision_OBJECTS) $(image_OBJECTS) $(video4linux_OBJECTS) $(net_OBJECTS) \ -$(data_OBJECTS) +$(timer_OBJECTS) $(config_OBJECTS) $(scheduler_OBJECTS) $(es_OBJECTS) test_ai: $(test_ai_OBJECTS) diff --git a/2005/i/robert/src/ai/ai.cc b/2005/i/robert/src/ai/ai.cc index 847fe76..096f529 100644 --- a/2005/i/robert/src/ai/ai.cc +++ b/2005/i/robert/src/ai/ai.cc @@ -149,6 +149,50 @@ Ai::initBalNonFiable (void) protectQuillePont (); } + +// test +void +Ai::initTest (void) +{ + init(); + std::cout << "Le jack est en attente" << std::endl; + waitJack(false); + std::cout << "Le jack est entré" << 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; + + //début des tests + std::cout << "VItesse default" << std::endl; + basic(200); + basic(200); + + setMaxSpeed(8,-1); + std::cout << "VItesse à 8" << std::endl; + basic(-200); + std::cout << "Re 200" << std::endl; + basic(200); + std::cout << "Av 200" << std::endl; + + setMaxSpeed(4,-1); + std::cout << "VItesse à 4" << std::endl; + basic(-200); + std::cout << "Re 200" << std::endl; + basic(200); + std::cout << "Av 200" << std::endl; + + setMaxSpeed(2,-1); + std::cout << "VItesse à 2" << std::endl; + basic(-200); + std::cout << "Re 200" << std::endl; + basic(200); + std::cout << "Av 200" << std::endl; +} + + + // Balistique fiable. void Ai::initBalFiable (void) @@ -170,14 +214,17 @@ Ai::protectQuillePont (void) std::cout << "GoTo 870,-675 -> Pi" << std::endl; goTo(1225, -1125, M_PI); // On change la vitesse max pour reculer - motor_.setMaxSpeed (128, -1); + std::cout << "On change la vitesse à 2" << std::endl; + motor_.setMaxSpeed (2, -1); // Taper la boule std::cout << "On recule lentement de 200mm" << std::endl; basic(-200); // On restaure la vitesse - motor_.setMaxSpeed (64, -1); + std::cout << "On restaure la vitesse à 8" << std::endl; + motor_.setMaxSpeed (8, -1); // On attend un peu pour protéger - temporisation (15000); // XXX A changer + std::cout << "On temporise" << std::endl; + temporisation (1500); // 15000 XXX A changer // XXX à finir // On se barre des quilles basic (200); @@ -326,6 +373,8 @@ void Ai::resetPwm (void) motor_.setPwm (0, 0); // synchronise update(); + // XXX + update(); } /// Initialise le robot pour faire un match (placement). @@ -372,5 +421,13 @@ void Ai::initMatch (void) Timer::startRound(); // On temporise pour laisser Taz sortir std::cout << "Attente du 15 secondes" << std::endl; - temporisation(15000); + //temporisation(15000); +} + +void +Ai::setMaxSpeed (int l, int r) +{ + motor_.setMaxSpeed (l, r); + update (); } + diff --git a/2005/i/robert/src/ai/ai.hh b/2005/i/robert/src/ai/ai.hh index a4f6719..f39993a 100644 --- a/2005/i/robert/src/ai/ai.hh +++ b/2005/i/robert/src/ai/ai.hh @@ -91,6 +91,9 @@ class Ai void initBalFiable (void); // Va du point de départ au pont pour protéger les quilles. void protectQuillePont (void); + // test + void initTest (void); + void setMaxSpeed (int l, int r); }; #endif // ai_hh diff --git a/2005/i/robert/src/ai/test_ai.cc b/2005/i/robert/src/ai/test_ai.cc index 835ee8d..da34917 100644 --- a/2005/i/robert/src/ai/test_ai.cc +++ b/2005/i/robert/src/ai/test_ai.cc @@ -85,6 +85,10 @@ main (int argc, char **argv) { ai_.initBalFiable (); } + if (argv[i][0] == '2') + { + ai_.initTest (); + } break; case 'j': if(++i > argc) diff --git a/2005/i/robert/src/asserv/asserv.cc b/2005/i/robert/src/asserv/asserv.cc index 41ba763..8b60a27 100644 --- a/2005/i/robert/src/asserv/asserv.cc +++ b/2005/i/robert/src/asserv/asserv.cc @@ -324,7 +324,7 @@ double Asserv::getAccel(void) void Asserv::setMaxSpeed(int maxSLin, int maxSRot) { maxSLin_ = (maxSLin > 0 ? maxSLin : maxSLin_); - maxSRot_ = (maxSRot > 0 ? maxSLin : maxSLin_); + maxSRot_ = (maxSRot > 0 ? maxSRot : maxSRot_); // Envoie à l'AVR proto_.send('p',"bbb", 'm', maxSLin, maxSRot); } -- cgit v1.2.3