torsdag den 13. januar 2011

2011/01/13

13. januar 2011
Tilstedeværende: Lars Christian, Daniel og Line
Varighed: 4 timer
Mål: Fremlæggelse
Plan: Sætte op, teste, ændre kode hvis nødvendig, fremlægge.

Vi startede med at konstatere at der var for mørkt i lokalet til at vi kunne registrere de blå bolde fra enderobotterne, derfor ændrede vi koden så vi i searchBehavior ledte efter noget der var lysere end omgivelserne i stedet for mørkere.
Før:

// Så længe værdien er større end lysværdien for bolden gør vi ikke noget
while ( value >= lightvalue ){...}
..
Efter:

// Så længe værdien er mindre end lysværdien for bolden gør vi ikke noget
while ( value <= lightvalue ){...}



Vi forsøgte at afhjælpe problemet med at robotten ikke altid stoppede for at skyde ved at undersøge hvad der var der gik galt så stop ikke kom igennem til motorene. Vi prøvede at indsætte et beep i searchBehavior så det blev kaldt efter vi havde kaldt stop. Herefter kørte vi programmet så vi kunne høre hvad der skete. Når robotten så en bold beepede den og slog med armen, uden at stoppe.
Vi overvejede den måde implementation i Wheels brugte motoren på, men ændrede ikke noget. Da vi ikke kunne løse dette problem gik vi videre til at forsøge at lave en driveCloserfunktionalitet.

//Vi har set bolden en gang, og nu skal vi så finde den igen.
suppress();
stop();
delay(500);
//driveCloserToBall();

boolean orgDir = getDirection();
int i = 0;
while(value <= weightedValue){
value = light.readValue();
if(orgDir) { //getdirection == true => robotten kører forward
backward(60);
}
else{
forward(60);
}

if(getDirection() != orgDir || i > 100){
stop();
break;
}
delay(10);
i++;
}
if(getDirection() == orgDir) {
stop();
kick();
}

Her går vi ind og kører med motoren, fremfor bare at kalde stop(), og dette tror vi har resulteret i at robotten altid stopper, og altid kører tættere på bolden hvis der ikke er den ønskede lysværdi.
Her er også implementeret at vi venter et sekund, og hvis vi ikke har fundet bolden der, skyder vi og kører videre, dette er for at undgå at robotten sidder fast et sted hvor den ikke kan finde bolden, eller hvis bolden blot er en skygge.
Koden kan ses her.
Og en video af projektet i funktion kan ses her:




Ingen kommentarer:

Send en kommentar