onsdag den 9. januar 2008

Hukommelses problem

Session: Onsdag 09/01-08 kl. 9-16

Deltagere: Elvar, Ebbe, Henrik

Sessionens formål:
1: Løse hukommelses problemet.
2: Prøve en anderledes algoritme.
3: Blue tooth.

1: Løse hukommelses problemet.
Som beskrevet i går, havde vi store problemer med nxt enhedens meget begrænsede hukommelse på 64kb. I går fandt vi ud af at der var varslet en ny udgivelse af lejos, og at denne udgivelse ville indeholde garbage collection. I dag var denne udgivelse så kommet.
Udgivelsen indbefattede en række nyttige ændringer, for det første var der som sagt garbage collection, det var dog ikke real-time garbage collection, så hver gang vi skal rydde op i hukommelsen skal vi kalde System.gc(). Dette viste sig dog midlertidigt hurtigt ikke at have nogen indflydelse på vores hukommelses problem, så enten er garbage collection implementeret forkert, ellers også ligger problemet andetsteds i vores kode, vi vil i løbet af idag arbejde videre med dette problem og forhåbentlig have en løsning senere idag.
Det første vi vil prøve er at ændre algoritmen til path finding fundamentalt, sådan at den genbruger hukommelse, og hvis dette viser sig ikke at virke, så har vi snakket om at kigge nærmere på, hvordan man får blue tooth til at virke. Vi vil så bruge en bærbar computer til at lave de hukommelses tunge beregninger på, for derefter at kommunikerer resultatet til nxt enheden via blue tooth.

2: Prøve en anderledes algoritme.
For at løse vores hukommelses problem prøvede vi idag en ny indgangs vinkel. Tanken var at prøve at søge efter målet i en bredde først søgning af felterne, det vil sige vi starter fra det felt hvor robotten står, og søger efter vores destinationen i ved først at spørge alle naboer, og derefter spørger alle naboer deres naboer. Hver knude gemmer så informationer om hvem der har spurgt dem om vej, for på den måde kan man backtracke ruten tilbage til start.
Dette viste sig dog at være umuligt at implementere, da bredde først søgning næsten er umuligt at implementerer, hvis man ikke skal gemme en eller anden form for tilstand undervejs for at se hvor langt man er nået i søgningen, og det var præcist dette vi gerne vil undgå for at spare hukommelse.

3: Blue tooth.
Vi besluttede, før vi forlod sessionen i dag, at imorgen vil vi implementerer blue tooth kommunikation med en bærbar computer. Resultatet af flere dages kæmpen med at få en fornuftig pathfinding algoritme til at virke, har gjort at vi delvist kan konkludere at dette stort set vil være umuligt for børn i den alder first lego league kræver, at lave en robot der fornuftigt kan finde rundt, ihvertfald ved hjælp af tacho counteren og en lys sensor, der skal helt andre hjælpe midler i brug, men dette vil vi kigge nærmere på i følgende dage. Vi vil ikke afprøve disse metoder da det indvolverer sensorer som vi ikke har.
Men vi vil imorgen gøre at path finding bliver beregnet på en pc og resultatet bliver sent til nxt enheden.

Ingen kommentarer:

Bidragydere