Dato
4. September 2009Tidsforbrug
3 timerDeltagende gruppemedlemmer
Martin Aksel Jensen, Kim Munk PetersenMål
- Bygge en LEGO bil der følger en sort sti på en hvid overflade.
- Flashe NXT'en via USB eller Bluetooth
- Eksperimentere med lys-sensoren
- Eksperimentere med forskellige sample-intervaller
- Undersøge leJOS' garbage collector
Resultater
Lyssensor
Farve | Med floodlight | Uden floodlight |
---|---|---|
Hvid | 62 | 53 |
Sort | 38 | 34 |
Rød | 59 | 52 |
Orange | 60 | 53 |
Gul | 60 | 53 |
Grøn | 56 | 51 |
Blå | 49 | 48 |
Lilla | 53 | 51 |
Sample-interval
Vi prøvede at ændre sample intervallet og undersøgte hvordan det påvirkede robottens evne til at følge linjen. Herunder er en tabel der viser tiden det tog robotten at følge banen.Interval (ms) | Brugt tid (min) |
---|---|
10 | 1:52 |
100 | 1:50 |
200 | 1:52 |
500 | Fejlede |
Ved 500ms og derover kunne robotten ikke følge linjen fordi den "forbindelsen" til stien. Det ses at der ikke var den store forskel på tiderne 10, 100 og 200ms. Det var tydeligt at den lavede større udsving ved de høje intervaller, men til gengæld kørte den længere inden den drejede.
Garbage collection
Vi prøvede at allokere nye strenge hver gang vi skrev til displayet. For at undersøge hvordan garbage collectoren virker, brugte vi Datalogger-klassen til at opsamle målinger. Begge grafer viser et tidsinterval på ca. 5 sek. På første graf herunder ses det at garbage collectoren til syneladende først kører når der ikke er mere ledig hukommelse, og altså ikke med et bestemt tidsinterval.
Anden graf viser mindre hyppige allokeringer af tekststrenge, og at garbage collectoren ikke træder til i tidsrummet. Det viser at det ikke blot var et tilfælde at garbage collectoren blev kørt når der ikke var mere ledig hukommelse i første test.

Ud fra vores test kan man se at det er en dårlig idé at unødigt allokere nye strenge da hukommelsen herved fyldes op med forældede strenge. I og med at garbage collectoren først træder til når der er brug for den, kan det give problemer når man foretager allokeringer eller procedurekald på baggrund af den ledige hukommelse (defensive programming).
LEGO model
Manglende brikker foresagede at det var nødvendigt med nogle ændringer til det originale lego-robot design. Baghjulet som skulle kunne rotere om sig selv for at robotten skulle kunne vrikke sig afsted, kunne ikke side som oprindeligt tiltænk. Vi lavede en modificering på robotten så hjulet kunne dreje om sig igen, men gjorde den muligvis lidt mere ustabil og mere modtagelig for fejl ved større sving. Den kørte dog testbanen med tape-striben fint igennem.Herunder er et billede af vores LEGO-model.

Ingen kommentarer:
Send en kommentar