La Poulette V3

Hi all

I'm back with the Version 3 of my robot lawnmower. This version doesn't use the commpass but count the pulses on both wheels. It's able to work more than 3 hours and able to take care of about my 500 sq m. more details (in french) on http://hmnrobots.free.fr/wordpress/

I will now work on the automatic "going back to base"


This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/la-poulette-v3

Cool un français… je me

Cool un français… je me sens moins seul :slight_smile:

Nice job btw!

sauf que je ne sais pas
sauf que je ne sais pas traduire poulette?

My career
Je voudrais suis ingenieur des robos plus tard.

depends

on whether you switch Google "Safe Search" on or off.

http://images.google.com/images?q=poulette

"chicky" should be a pretty
"chicky" should be a pretty good translation…

Great, I appreciate your
Great, I appreciate your help and adopt Chicky as it’s new name!

Interesting

"This version doesn’t use the commpass but count the pulses on both wheels."

So you’re able to tell it’s location and direction using ONLY wheel encoders??? Or??

Man I’d love to know more about how it works. I’ll need another language than french though. English, Danish or Spanish will do :confused:

PS: “La Poulette” is a MUCH better name than “Chicky”. Reminds me of “Pollito” in spanish. Cute :smiley:

 

**La poulette, Chicky or Pollito ? what else ? **

At first I didn’t think that other than frenchies would be interested by my bot, but I’ve found so many valuable informations on foreign forums that I do apologize to have made an only french blog! But the schematics are universal !

The wheels encoders aren’t enough precise(not enough pulses per rotation) to know the precise position and it can slip over the lawn ; I use the wheels encoder to maintain the direction by comparing the number of pulses, when going backward and when turning.

What’s the meaning of “Pollito” ?

 

Odometry and chickens :smiley:

I also thought that encoders alone would make it impossible to keep track of location. In particular outdoors. But still I’m very interested in knowing more about your application because I’m currently working on a cheap lowtech mapping robot also using encoders. I have the advantage of being indoors on a flat surface.

It’s not so much the schematics but rather the logic, math and code behind it I’d love to know more about. And what is the resolution of your encoders (=pulses per rotation)?

Ah and “pollito” is the diminuative form of “pollo” (=chicken), thus it means litle chicken or baby chicken :smiley:

 

As I said the resolution of

As I said the resolution of my wheel encoder is very poor : only 12 pulses a turn. But it’s enough to maintain a direction, measure backward distance and calibrate a turn. here’s the motion part of my code

void Steer (signed int8 err){
//Plage de suivi en marche avant
if (err > DEGERR) err = DEGERR;
if (err < -DEGERR) err = -DEGERR;
/* steer left or right based on error /
if (err == 0) {
//Pas de Correction
DdeM2 = AvSpeed;
DdeM1 = AVSpeed;
//fprintf(DEBUG,“Corr ok \n\r”);
}
if (err > 0) {
//Correction à gauche
DdeM2 = AvSpeed;
DdeM1 = AVSpeed - err
20;
//fprintf(DEBUG,“Corr gauche err %d M1:%u M2:%u \n\r”,err,DdeM1,DdeM2);
}
if (err < 0) {
//Correction à droite
DdeM1 = AvSpeed;
DdeM2 = AvSpeed + err*20;
//fprintf(DEBUG,“Corr droite err %d M2:%u M1:%u \n\r”,err,DdeM2,DdeM1);
}
CdeMotrice();
}



void MoveBackward(){
DdeM1 = MaxArSpeed; DdeM2 = MaxArSpeed;
if (TempoRecule > 0 && !Obst_AR && !B_ARG && !B_ARD && !OvrIMot && (CptRoue1+CptRoue2 <= ReqCpt) )
CdeMotrice();
else{
StopMotrice();
Marche_AV = false; Marche_AR = false; Turning = true;
TempoVirage = dureeVirage;
ReqCpt = CPT_TURN;
StopMotrice();
}

}

void Turn (){
//procédure de virage tant que tempo et compteur
if (TempoVirage >0 && !Obst_AR && !OvrIMot && (CptRoue1+CptRoue2 <= ReqCpt)){
DdeM1 = DdeM2 = MaxTurnSpeed;
CdeMotrice();
}else{
//Fin du virage
StopMotrice();
Turning = TurnLeft = TurnRight = false;
Marche_AV=true;
}
}

void MoveForward(){
//gère le déplacement Avant
//inhibitions pour se dégager
if(B_AVG && Obst_AR) B_AVG = false;
if(B_AVD && Obst_AR) B_AVD = false;
if (!Obst_AV && !Obst_US_LH && !Obst_US_RH && !B_AVG && !B_AVD && !OvrIMot){
Steer(DiffRoues);
}else{
if (Obst_US_LH || B_AVG || Obst_AV){ //ecart à droite
TurnRight=true;TurnLeft=false;
}else{ //Obst_US_RH ou B_AVD ecart gauche
TurnRight=false;TurnLeft=true;
}
Marche_AV = Turning =false;
Marche_AR = true;
TempoRecule = DureeRecule;
ReqCpt = CPT_BACKWARD;
StopMotrice();
}
}

Gallus gallus domesticus

I am still wondering what resemblance you see between chickens and this robot. Is it the free range, wandering around the lawn behavior? Does it eat batteries you sprinkle around your garden?

I would like to build a robot that could do that. And then use the energy inside.

La poulette just because
La poulette just because when it’s cutting the grass and I’m inside, I use to go my window and say ‘Où est encore cette sacrée poulette ,’ that is “Where is that damned Ckicken ?” thinking in other word : is it once more trying to cut the flowers ? or stuck anywhere ? or trying to escape from my yard ? as it used to be less reliable than it is now ! Unfortunaly today it’s not working because I 've got some motor trouble,

more on poulette

and according to wikipedia “une poulette désigne une femme en argot”

that is "a poulette stands for a woman in (cool) slang "