onsdag den 6. juni 2012

Slutprojekt, del 5



Deltagere: Bjarke, Mikkel, Troels, Jesper
Tid: 5 timer



Mål

Test kommunikation mellem robot og PC.
Få indført en simpel korteste-vej algoritme der kan bruges af alle robotter.



Plan

1. Få udvidet seeker robotten, så den kan opdage blå huler, hvor man kan finde guld.
2. Lave en implementation af interfacet IShortestPathStrategy
3. Sætte robotterne op til at kunne modtage signaler fra PC’en og køre efter dem.
4. Test kommunikation



Resultater

1. Vi har prøvet at udvide robotten med en mulighed for at se den blå hule. Dette har dog givet nogle problemer. Det tape vi bruger registrerer farvesensoren til tider som blåt. Farvesensoren er desuden begyndt at overse den røde midte i kryds oftere og oftere. Vi prøvede at skifte farven på hulen til gul, men det viser sig at selvom robotten ser den gule farve bedre end blå, så registrerer den også bordet under,der er brunt, som gult.
Vi er blevet enige om at vi nok bliver nødt til at arbejde med rå værdier, da dette vil give os større præcision.

Vi laver vores håndtering af rå værdier, lidt som vi lavede kalibrering af lyssensoren tidligere i kurset. Vi måler hver farve med sensoren i starten og disse værdier gemmes så i robotten. Med farvesensoren er det dog 3 værdier vi skal holde styr på og ikke kun 1. Vi gik i gang med dette og det gav en del problemer. Vi havde for langsom kode, som var skyld i at robotten reagerede for langsomt. Det endte også med at den så rød alle vejne og til sidst gik vi tilbage til vores løsning der virkede tidligere idag. VI har dog ændret hule farven til gul, da robotten har tendens til at se blå steder hvor den ikke burde.

Robotten kan nu se intersections og huler.

Vi har stadig problemer med at farvesensoren nogle gange ikke opdager intersections. Dette er et meget kritisk problem da vi skal være sikre på hvor robotterne er i grid'et. Derudover ser farvesensoren nogle gange gul hvor der ikke er gult.
Det er muligvis pga. lyset fra LED’en på farvesensoren. Vi vil derfor teste uden lys i LED'en næste gang.


2. Vi har lavet en simpel rekursiv struktur der benytter exhaustive search til at finde den korteste vej. Koden ses nedenfor. I en lille bane, som den vi bygger, er det ikke et problem at algoritmen ikke er effektiv idet den kommer til at køre på en hurtig PC. Vi har lavet et interface til at finde korteste vej og den simple rekursive algoritme er en implementation af dette. Det vil gøre det nemt for os at implementere en smartere algoritme senere hen (f.eks. Dijkstra’s).

Fuld kode med javadoc til kernen i algoritmen, der finder en sti fra robottens placering til et Tile, her kaldet endTile.
 
 

3.
Robotterne skal modtage et signal i Receiver og udføre den opgave den får (f.eks. kør lige ud), og melde tilbage i Sender. På nuværende tidspunkt har vi lavet kode der, via Sender, sender et signal hvis den møder en hule (gul) eller en skillevej (rød).

4.
Næste skridt var at få kommunikationen mellem robot og PC til at virke. På PC-siden lavede vi en GUI hvor vi kunne teste simple kommandoer sendt til robotten. Til selve bluetooth kommunikationen benyttede vi produktionskoden der findes i Overmind-klassen. Dette virkede efter hensigten og ved dagens udgang kunne computeren oprette forbindelse via bluetooth til en robot. 



UI der kan oprette forbindelse til en robot og sende beskeder, som markeret på knapperne.


Koden til kommunikation mellem PC og robotterne er også implementeret på test-niveau, men vi nåede ikke at gennemteste kommunikationen. Planen for næste gang er at teste de forskellige metoder der senere skal anvendes til kommunikation. 

Konklusion

Vi har stadig en del problemer med farvesensoren, som vi skal arbejde videre med næste gang. Vi har  tilføjet kode der kan finde den korteste vej fra et tile til et andet. Vi mangler dog at teste denne, samt at teste om kommunikationen mellem robot og PC fungerer korrekt.


Ingen kommentarer:

Send en kommentar