tirsdag den 2. oktober 2007

ESEA - Labnotes

NXT Programmering - "Xtra" Lektion
Varighed: 5.5 timer - kl. 12.30 - 18.00
Gruppemedlemmer: Aslak, Ruben og Lars

Målet for i dag er at fortsætte med at arbejde med linjefølger-robotten, som skal deltage ugens Robot Race. Følgende delmål forventes at blive gennemført i dag.
  • Optimere på NXT'ens programmer, så den bliver hurtigere samt bedre til at følge linien.

Her er et billede af den bane, som robotten skal gennemføre:


Som programmerne fra sidst var lavet, kører bilen efter overgangen imellem sort/hvid (kanten af tapen). Såfremt der forekommer flere aflæsninger i træk af samme "farve", drejes der skarpere for at komme tilbage til kanten af tapen.
Bilen kørte fra starten ret langsomt, så vi ændrede på parametrene for hastigheden, hvilket jo fik den til at køre hurtigere, men dette gav problemer i forbindelse med at udføre svingene ordentligt.
Nogle gange fik den drejet så meget at den kørte over tapen og ikke kunnne find tilbage på ret kurs.Det blev diskuteret hvad der skulle gøres for at forhindre at køretøjet kørte over tapen.

Det blev forsøgt at lave et program, der talte, hvor mange gange den læste den sorte farve, når køretøjet kørte lige over tapen. Dette kom dog ikke til at virke ordentligt og ideen blev droppet, da vi igen fik diskuteret om vi kunne bruge denne oplysning til noget fornuftigt.

Det blev herefter besluttet at vi skulle bruge en ekstra lyssensor.Vi skulle altså benytte en af de gamle RCX-lyssensorer.For at disse kunne benyttes, skulle der oprettes en ny sensor-klasse til RCX-lyssensorerne.
RCX-lyssensoren blev påmonteret på NXT-køretøjet bagved højre hjul. Der detekteres om tapen er paseret af den forreste sensor. Den skrevne kode kan ses her: http://userportal.iha.dk/~20060651/JavaFiles_ESEA/Improved_1/RCXBWSensor.java

Placeringen af de to lyssensorer kan ses på de følgende billeder:



Der blev tilføjet en rutine i Locomotion.java, der kunne få køretøjet til at bakke samt en rutine, der kunne få køretøjet til at rotere (det ene hjul kører frem, imens det andet kører tilbage). Den redigerede Locomotion.java kan ses her: http://userportal.iha.dk/~20060651/JavaFiles_ESEA/Improved_1/Locomotion.java

Når RCX-sensoren herefter detekterer sort, er køretøjet kørt over tapen, og de nye rutiner tages i brug.Først bakker køretøjet til NXT-lyssensoren kommer tilbage til tapen (sort). Herefter roterer køretøjet til sensoren er tilbage ved tapens kant (hvid) og køretøjet igen er tilbage på rette kurs. Her sættes et flag, således at koden ved at robotten lige har udført en bakke-rutine. Dette flag medfører, at robotten starter med at køre lidt mod højre (som om den har læst værdien sort). Dette er lavet baseret på analyse af de situationer robotten har været i, når den krydser tapen. Koden BlackWhiteSensor.java er ikke ændret siden sidste lektion. Koden til robottens opførsel kan ses her: http://userportal.iha.dk/~20060651/JavaFiles_ESEA/Improved_1/SensorReaderTest.java

Afslutningsvis blev det besluttet, at gruppen torsdag morgen først og fremmest vil fokusere på at få køretøjet til at detektere den grønne farve i målområdet og udskrive tiden på displayet. Herefter vil vi optimere videre på den resterende kode.

Ingen kommentarer: