mandag den 25. januar 2010
Opsummering af projektet
onsdag den 20. januar 2010
The Final Countdown
mandag den 18. januar 2010
Intelligens gjort kunstig
fredag den 15. januar 2010
Forstyr ikke mine cirkler
Fremmødte
pepe og rfogh (10 - 17 )
Formål
Formålet med dagen er at rette op på en større mangel på tron biken: der er ikke nogen tush til at lave streger med.
Fremgangsmåde
Rfogh byggede efter nogen diskussion om placeringen en rig til at holde en whiteboard marker af mærket edding 360 fast bag på robotten. Imens gik det op for pepe ved en mini demonstration at robotten "døede" hvis underlaget var hvidt, en fejl i koden idet der var byttet om på om hvidt var en stor værdi eller lille. (Absolut genskin (hvidt) er maksimal værdi)
Pepe gik i gang med at undersøge hvor følsom lyssensoren er for streger.
Rfogh undersøgte rotationen, idet vi forsøger at gøre navigationen så grundlæggende og simpel som mulig, og da vi tidligere har haft dårlige erfaringer med navigatoren der følger med lejos, blev det besluttet at gennemføre forsøg til at bestemme den korrekte rotation for at opnå 90°.
Forsøg
Da Kim Steen kom forbi for at se hvad vi havde blev den ene robot sat til at køre rundt på gulvet i Zuse bygningen. Da den kørte ind på det hvide lærred til at følge en linje "døede" den. Dette blev fulgt op af forsøg på banen, der viste at robotten havde det bedst på den sorte linje, da dette er forkert blev det rettet.
Der blev lavet forsøg med at måle den reflekterede intensitet når robotterne kørte over forskellige streger. Dette blev gjort ved at lave flere streger efter hinanden af varierende kvalitet og herefter lade robotten køre hen over stregerne til den dør. Et helt rent whiteboard og en ny tush, enten i sort eller blå virker. Ved forsøg med en ældre tush, skulle der flere streger oven i hinanden til før robotten registrerede at den var kørt over stregen
Det var forholdsvis tydeligt at rotationen ikke var på 90° efter at have forsøgt med tush på. Efter beregninger ud fra de givne resultater blev der tilpasset ud fra empiriske forsøg. Resultatet kan ses i testvideoen og på billederne.
Forløsning
Det er lykkedes os at nå til første mål, nemlig at have to spillerstyrede robotter der kan konkurrere mod hinanden. Placeringen af tushen kunne muligvis have været mere optimal, men den virker og det er muligt for andre robotter at "se" stregen. Rotationen er endnu ikke helt korrekt, det interessante er at det som det kan ses er forskelligt for de to robotter, det er derfor muligt at der skal laves individuelle indstillinger for robotterne.
torsdag den 14. januar 2010
Hvad var det lige vi lavede igen?
Fremmødte
pepe og rfogh (9:00 - 16:00 )
Formål
Dagens øvelse går ud på at finde ud af hvor langt vi er kommet og følge op på det der er sket, samt udstikke retningslinjer for den fremtidige udvikling efter eksamenerne.
Forløb
Da dette var første arbejdsgang efter nytår og eksamenerne var det nødvendigt at starte med at se om det der er blevet lavet uden hardware også virkede. Det gjorde det naturligvis ikke, men efter lidt smårettelser kom det meste til at virke.
Pepe lagde ud med at sikre at den nye måde at starte python GUIen op på virkede. Det er nu muligt at starte op med enten navn eller adresse eller helt uden noget, hvis der ikke gives nogen indikation af hvad der skal forbindes til scannes området for bluetooth enheder og disse præsenteres for brugeren så denne kan vælge den NXT der skal forbindes til.
I forbindelse med debuggingen af denne funktionalitet blev der frisket op på hvordan koden var opbygget. Her var det især brugbart at kigge på det UML klassediagram der blev lavet mellem jul og nytår og som kan hentes på projektets hjemmeside på google code. (.dia version)
Rfogh startede med at sikre en ekstra NXT og opbygge en modstander robot. Dette gjorde ham i stand til at forbedre byggevejledningen der ligeledes kan findes på google code(samme sted som ovenstående link)
Efter frokost blev det besluttet at rfogh skulle lægge arbejdet i at gøre det muligt at vælge hvilken NXT man vil forbinde til, da det ikke er muligt at få NXTerne til at forbinde automatisk altid. Samtidig blev det besluttet at pepe gik i gang med at dokumentere dagens arbejde.
Forsøg
Dagens forsøg har hovedsagligt handlet om at få forbindelse til robotterne, så det er muligt at styre dem. Python GUIen blev testet, men sendte ikke idet bluetooth api'et ikke giver meddelelse om hvorvidt forbindelsen var vellykket eller ej. Da denne fejl blev rettet virkede kommunikationen, men robotten starter med at dø, hvorefter et nyt spil kan begynde.
Forsøget med at få forbindelse fra java var baseret på at bruge lejos' scan metode, denne gav lige som de andre forsøg med Java programmerne der følger med lejos kun den første NXT der er blevet forbundet til systemet. Da dette var rfoghs private NXT og denne ikke var til stede i dag, er det ikke lykkedes at lave en java GUI der kan forbinde til en vilkårlig NXT.
Forløsning
Vi er kommet i gang efter ferien og har påbegyndt opbygningen af systemet. Da Python implementeringen af styre programmet virker og Java versionen af samme ikke gør vil vi, med mindre rfogh finder en løsning inden næste gang (i morgen kl.9, planlagt), holde os til Python GUIen.
tirsdag den 29. december 2009
Den interne konkurrence
Forbrugt tid
Tirsdag d. 29/12 - 2009 fra kl. 9.30 til 17.30
Fremmødte
pepe og rfogh
Formål
Formålet med i dag er at lave en GUI der kan bruges i spillet, og som kan forbinde via bluetooth.
Fremgangsmåde
Pepe havde tidligere lavet et proof of concept program i Python for at vise det var muligt at sende beskeder til nxt bricken fra python.
Rfogh mente det bedste ville være hvis GUIen kunne være i Java, noget pepe ikke var enig i.
Dagen gik derfor med en lille konkurrence: hvilket programmeringssprog er bedst?
Efter en hel del konkurrence hvor pepe først fik forbindelse og data og rfogh først fik piletasterne til at fungere endte vi med to programmer: et i python og et i Java der til forveksling er ens.
synergieffetkten i dette var at programmet på NXT blokken efterhånden fik en ret god struktur, og er ganske gennemtestet.
Protokollen for transmission til klodsen er baseret på enkeltkarakterer og er som følger:Karakter Betydning s Start l Drej til venstre r Drej til højre q afslut
Denne protokol er tilstrækkelig til at styre biken, men ikke nok til at sende meddelelser om hvorvidt biken er "død" eller "vinder".
Af yderligere synergieffekter kan nævnes at vi nu har et ant script der kompilerer og uploader hele projektet, samt starter Java Guien.
torsdag den 17. december 2009
Lego inde - sne ude
Forbrugt tid
Torsdag d. 17/12 - 2009 fra 10 til 13
Fremmødte
pepe og rfogh
Formål
Kom videre med projektet
Forløb
Kodemæssigt blev der tilføjet to nye klasser: WallDetector og Bumper.
Begge klasser bruges til at finde ud af hvornår robotten skal spille død, bumper for at mærke om robotten støder ind i noget, og WallDetector for at se om den er kørt ind over en andens streg.
Sammen med Driver og Player klasserne, danner disse to grundlag for basisrobotten, det der kommer herovenpå er enten en menneske drevet klasse eller en robot drevet klasse.
Konstruktionsmæssigt er robotten blevet udbygget, og blevet dokumenteret i Legos "Lego Digital Designer".
