torsdag den 2. december 2010

Afsluttende projekt, 1. dag

Date: 2. December 2010
Duration of activity: 7 hours
Group members participating: Heine Stokholm, Michael Vilhelmsen og Mads Møller Jensen



Dagens mål:

  • Få hul igennem mellem robot og computer via Bluetooth
  • Få en idé om hvordan vi skal lave en bane, som vi kan arbejde med.
  • Overveje robottens konstruktion: Hvordan skal den se ud? Hvor mange sensorer skal den have?
  • Prøve at præcisere de forskellige delmål, vi gerne vil nå i løbet af projektet.
Plan:
  • For at få hul igennem mellem robot og computer, vil vi forsøge at køre nogle af de eksempler, der følger med leJos-pakken. På den måde håber vi hurtigt at få en form for kommunikation
  • Til banen vil vi prøve forskellige alternativer, og teste dem lyssensoren. På den måde kan vi lave en bane/brikker, som forhåbentlig er optimal(e) til projektet.
  • Til robottens konstruktion vil vi diskutere forskellige varianter, der kunne være mulige. Dette punkt bliver meget afhængigt af banens konstruktion, og vi laver formentlig de to punkter i sammenspil.
  • Til sidst vil vi forsøge at beskrive de tanker, vi har med projektet, bl.a. gennem eksempler.
Bluetooth og andre tests
I starten havde vi lidt problemer med at få computeren og robotten til at "tale" sammen over Bluetooth, fordi vi troede, at vi skulle oprette en forbindelse på samme måde, som man gør med andre Bluetooth-enheder. Vi kunne godt få kontakt fra computer til robot, men den anden vej skrev robotten, at "Connection was unsuccessful". Vi fortsatte alligevel, og uploaded en klasse fra leJos sample-mappen til robotten, og en til computeren. Så kørte vi programmerne og fik hul igennem. Programmet var meget simpelt og gik ud på at computeren sendte nogle talværdier til robotten, som skrev disse på LCD-displayet, og returnerede det negerede tal tilbage til computeren. Dette virkede uden problemer og uden yderligere modifikation. 

Programmet vi brugte på PC'en kan ses her
Programmet vi brugte på robotten kan ses her

Ydermere testede vi kompasset, som vi havde fået som ekstra sensor. Kompasset vil hjælpe os meget i forbindelse med mapping, men mere om det senere.

Programmet vi brugte til at teste kompasset kan ses her   

Vi lavede flere forskellige forsøg med kompasset, da vi opdagede, at det var en smule ustabilt. Vi lavede et program, hvor robotten skulle dreje 90 grader og så stoppe, og gennem denne proces kunne vi se, at det, robotten gennem kompasset troede var 90 grader, ikke var det hver gang. Vi kiggede efter råd i leJos API'en, og fandt en kalibreringsfunktion. Vi forsøgte at køre kalibreringen, men vi havde stadig præcisionsproblemer. Vores teori var, at kompasset blev forstyret af computernes magnetfelter. Når nu kompasset skulle placeres 20 cm væk fra motor og NXT, ville det også give mening at den kunne blive forstyret af computerne.

Vi testede herefter kompasset væk fra alle forstyrrende elementer og kalibrerede den igen. Herefter virkede kompasset perfekt! Vi havde dog stadig lidt problemer med at få robotten til at dreje de 90 grader, men vi ved allerede nu, at vi med et PID-system kan klare det problem. Problemet er at robotten drejer lidt for kraftigt, men med et PID-system vil den dreje mindre og mindre skarpt efterhånden som den nærmer sig den ønskede kompasværdi. 

Banen
Vi har snakket meget frem og tilbage om hvordan vi skal konstruere en bane. Opgaveforslaget lægger op til at banen konstrueres med LEGO's egne bane moduler. Disse har imidlertid flere ulemper. For det første sagde Ole, at vi kunne prøve dem indtil vi gav op. Problemet er at LEGO modulerne er grønne og grå i farverne, og disse farver er meget svære for lyssensoren at skelne i mellem. Derudover synes vi, at bane modulerne er en anelse for små. Selv med en "lille" robot ville det være svært at dreje 360 grader uden at noget af robotten kørte ud af banen. 
Derfor valgte vi at konstruere vores egne banemoduler ud fra LEGOs idé. Vi vil altså beholde de fire forskellige slags moduler, men forstørre dem (til 30x30 cm) og så lave dem i sort/hvid. Ved at beholde modulidéen håber vi, at vores mapping bliver nemmere og mere overskuelig, da robotten kun skal kende de fire forskellige moduler, og så være i stand til at sætte dem sammen til et fuldendt kort.

Vi har denne plade at gå ud fra:
Tanken er, at vi med Gaffatape konstruerer modulerne på den hvide plade. Vi har overvejet at lave to baner, så vi kan vise at vores robot kan genkende forskellige baner, men det er kun på idé-stadiet. Forhåbentlig kan vores program mappe så overbevisende, at det ikke er nødvendigt at vise det to gange. 

Robotten
Vi tog udgangspunkt i vores almindelige LineFollower robot
På denne tilføjede vi et kompas, som vi monterede ca. 20 cm. fra motorerne og NXT'en.
Robotten er ca. 20 cm. bred, og vores "vej-moduler" er 30x30cm. Derfor var vi nødt til at forlænge lyssensoren, så denne kan opfange de mørke områder på vores moduler, når hjulene står midt på modulet. Lyssensoren er herved blevet hævet lidt mere, da stangen vi forlængede var vinklet lidt opad. Heldigvis har det ikke forstyrret vores læsninger betydeligt (endnu).
Vi har (midst) 2 måder at konstruere vores robot på - enten lader vi den være som den er nu, og drejer 360 grader når den står midt på et modul. Under denne rotation skal robotten så notere sig hvor på modulet den kan køre ud og hvor den ikke kan.
Den anden måde er at montere yderligere 2 lyssensorer, så den kan måle alle 3 potentielle veje på én gang. Herved ville vi slippe for det tab af præcission vi har når vi drejer 360 grader.
Vi arbejder videre med robotten med én lyssensor - sammen med kompasset er det håbet at vi kan få foretaget præcise 90 graders drejninger uden at komme ud af kurs.

Plan fremover
I dag har været rigtig god, og vi har nået mange ting. Vi har et kompas, der virker, og en robotkonstruktion der burde kunne klare at mappe en bane. Derudover har vi en idé til hvordan banen skal konstrueres. 
Næste gang gang vil vi:
  • Lave banen
  • Lave et PID-system, så vi får fuld kontrol over robotten. 
  • Arbejde videre med Bluetooth kommunikationen. Vi vil få robotten til at sende nogle af de værdier, den læser gennem kompasset videre til computeren, og se om vi muligvis kan arbejde med robotten, mens den er i gang.
Så håber vi at være på vej mod at få robotten til at mappe en bane, hvilket er vores første store delmål. Herefter er planen, at vi tilføjer nogle ekstra egenskaber, som vi vil præcisere nærmere, når første delmål er nået.

Ingen kommentarer:

Send en kommentar