onsdag den 8. december 2010

NXT Programming, lesson 13

Dato: 08-12-2010
Varighed: 5
Deltagere: Nick, JC
Formål:
Dagen i dag vil gå med at teste hvorvidt robotten kan benytte banen. Yderligere vil de førnævnte ombygninger af robotten vil blive udført.
Plan:
-Ombygning af robotten.
-Printning af banen.
-Robot test.
Forventet resultat:
Robotten skal bygges færdig, banen printes, robotten testes.
Banen
Den valgte bane er blevet udprintet i A0 format, dvs. 4 gange 4 A4 sider:

Til at sprede billedet ud på flere A4 sider er brugt følgende program: http://www.blockposters.com/. Bemærk banen er ikke limet sammen, dette gøres næste gang.
Robotten:
Som nævnt i tidligere labrapporter, så skulle robottens ændres, da den var bygget efter en model fundet på nettet, der ikke opfyldte vore krav til fulde (se forklaringer af ændringer nedenfor).
Billeder af robotten efter ombygningen:





Trykføleren der var i fronten er fjernet, da vi satser på at kunne bruge mobiltelefonens kamera til at se om der er en brik i kløerne. Holderen til mobilen er ikke bygget endnu, da vi ikke har mobilen. Den bliver hentet senere i dag.
Fangarmene er blevet kortere for at gøre robotten mindre, og derved gøre det muligt at vende på et mindre område.
Lige nu er der fastgjort en lyssensor i den venstre front og en magen til skulle gerne monteres så snart vi får fat  i den ene klods vi mangler. Dette skulle gerne ske i morgen.
Så sammenlagt er robotten blevet kortere, fået to lyssensorer og mangler en mobiltelefon til at kunne "se".

Lyssensor navigation
Lyssensortesten foretages ved hjælp af den ovenfornævnte bane. Først foretages nogle stikprøver for at se om værdierne falder jo tættere robotten er på den grønne eller den røde zone. Det observeres at de to lys sensorer i tilfælde hvor værdierne burde være næsten ens, altid er cirka 5 fra hinanden (normaliseret værdi i procent), hvilket konstateres til at være en sensorunøjagtighed. Denne unøjagtighed løses ved at ligge en konstant på 5 til en af sensorernes værdier, hvilket resulterer i at lyssensorværdierne er ens, eller stort set ens, når robotten er på vej mod den grønne eller røde zone. Det bør bemærkes at værdierne også næsten er ens når man bevæger sig væk fra zonerne, her stiger værdierne dog, men da robotten givere mere kraft til den side der har den højeste målte værdi, vil robotten vende sig mod målzonerne af sig selv.
En endelig test for i dag var hvorvidt det var muligt at lave en simpel algoritme som kan finde frem til zonerne:

if(lightNav.getLeft() < lightNav.getRight()) {
   Car.forward(0, 40);
} else {
   Car.forward(40, 0);
}
Thread.sleep(100);

Denne algoritme kigger blot på hvorvidt venstre lyssensor har en mindre værdi end den højre lys sensor, og giver derefter højre motor 40% kraft mens venstre får 0% kraft, eller omvendt.
Denne simple algoritme løste faktisk opgaven og bevægede sig langsomt mod målzonerne.
Eksperiment med gribeklo:
Vi ville teste om gribekloen kunne gribe fat i de klodser vi forestiller os, der skal bruges i det endelige setup. Vi udvidede klassen Car til at indeholde to nye methoder, openClaw() og closeClaw():

public static void openClaw(){
   if(!clawIsOpen){
      claw.setPower(openingAndClosingPower*c);
      claw.rotate(angle);
      clawIsOpen = true;
   }
}
public static void closeClaw(){
   if(clawIsOpen){
      claw.setPower(openingAndClosingPower*c);
      claw.rotate(-angle);
      clawIsOpen = false;
   }
}

Metoderne sætter hastighed på klo-motoren til 50% og henholdsvis åbner eller lukker, ved at rotere 85 grader den ene eller anden vej.
Der bliver tjekket for om kloen er åben eller lukket i forvejen, for ikke at risikere at vi åbner to gange efter hinanden og derved kan ødelægge robotten.
Video af testen:
Kloen får fat i klodsen og åbner fuldt op igen. 
Vi ville også teste at at kloen kan holde godt nok fast til at robotten kan køre med den og dreje med den uden at klodsen vælter.
Videoer af testen:
På forskellige underlag kan vi risikere at klodsen vælter, og vi bliver derfor nødt til at teste med den endelige bane næste gang, for at være sikker på at selve designet af kloen ikke skal laves om. Vi har dog idéer til ændringer, hvor vi har to "fingre" på den ene siden og kloen kan derfor måske holde bedre på klodsen.
Vi har altså en virkende klo, der dog kan have problemer ved visse underlag, så der skal flere eksperimenter til for at være sikre på at klodsen ikke vælter når robotten drejer.

Resultat for i dag:

Vi fik printet banen ud, modificeret robotten til at bedre kunne opfylde vores krav, lavet test med den nye klo og testet lyssensorene på banen. Vi skal i morgen se på at få monteret mobiltelefonen og testet yderligere på banen med lyssensorerne og lave flere tests med kloen.

Ingen kommentarer:

Send en kommentar