Dato:
03-06-2013
Varighed:
Fælles lab: 1 time
Blog: 7 timer
Deltagere:
Steffen Høi
Nikolaj Mols Hansen
Martin Vang
Ulrik Sahl Lystbæk
Nikolaj Mols Hansen
Martin Vang
Ulrik Sahl Lystbæk
Mål
Målet med denne session er at præsentere vores projekt på en grundig og underholdende måde, hvor vi alle fik en væsentlig del at gennemgå, samt at opsummere projektet og skrive konklusion.
Præsentationen
Vores præsentation forløb med en meget hurtig gennemgang af, hvad der kan forventes af disse blog-indlæg, samt en fodboldkamp imod en anden gruppes fodboldrobotter. Under kampen blev det meget tydeligt for os, at vores beslutning om hastighed var en god plan. Vi havde boldkontrol i en utrolig stor del af tiden. Desværre oplevede vi, at vores robotter blev "forvirrede", når de skulle skyde. Vi tror, at det måske kunne skyldes de mange motorer, der var i nærheden af robotterne, som kompassene ikke var kalibreret til. Det blev i hvert fald ret tydeligt, at vi havde et stort problem, da kampen endte med et selvmål fra en af vores robotter, hvilket ikke var noget vi havde observeret, da vi "kun" havde vores 2 egne robotter på banen. Vores robot skød ikke helt præcist men den skød dog præcist nok i alle vores tidligere forsøg til at skyde bolden ned mod modstanderens mål med højst en 45 graders afvigelse i retningen. Det kunne være interessant at undersøge nærmere, om det var kompasset, der blev forstyrret, eller om det var noget andet, men desværre når vi det ikke i dette projekt.
Produkt
Den samlede kode, som det endelige program består af kan ses her LEGO Soccer [1]. Vi har desværre ikke en færdig byggevejledning til robotten, så hvis man vil lave en lignende, må man forsøge sig ved at se billeder og vejledninger gennem alle blogindlæg. Banen står indtil videre stadig i LEGO lab.
Sammendrag af observationer og eventuelle forslag til udbedringer
Vores konklusion er opbygget således at vi først gennemgår
de erfaringer vi har gjort os gennem projektet og herefter præsenterer vi en
række ændringsforslag, hvis formål er at skabe et spil, der opfylder
KISS-principperne defineret i ”Week 13” [2].
I dette afsnit gennemgår vi nogle observationer, vi har gjort os gennem forløbet som vi synes er relevante i forhold til KISS-principperne defineret i "Week 13" [2]. Til nogle af de observationer der nævnes som forstyrrer KISS-principperne kommer vi med forslag til hvordan vi tror spillet kunne forbedres.
I dette afsnit gennemgår vi nogle observationer, vi har gjort os gennem forløbet som vi synes er relevante i forhold til KISS-principperne defineret i "Week 13" [2]. Til nogle af de observationer der nævnes som forstyrrer KISS-principperne kommer vi med forslag til hvordan vi tror spillet kunne forbedres.
Banen
Underlag
Som underlag havde vi valgt filt af den årsag, at vi ville
forsøge at skabe spin i bolden (inspiration fra billardborde). Vi fik dog ikke eksperimenteret nok med at
skabe spin i forhold til at kunne konkludere, at filt ikke
ville være en fordel i forhold til andet underlag. Det var en skam, da spin i bolden ville have
understøttet princippet om et sjovere spil for tilskuerne.
Farver
Ud fra de farver, der er på banen, er det ikke lykkedes os
at afgøre, hvor på banen robotten befinder sig. Vi kom dog frem til at
farvesensoren med en kappe, kan foretage målinger, der er præcise nok til at
vurdere, hvilket farvefelt robotten er på.
Selvom det med en kappe på farvesensoren kan afgøres, hvilket af felterne på banen robotten befinder sig på, fortæller det ikke meget om robottens præcise lokation på banen fordi de farvede felter er store. De to grønne strækker sig hele vejen fra den ene ende af banen til den anden.
Fordi vi har fået så nøjagtige målinger med farvesensoren som vi har "Week 16 session 2" [3], mener vi at det kunne være til stor hjælp at farve banen ved at lave en graduering fra helt lys til mørk i længden af banen og fra rød til blå på bredden af banen. Således at banen er bygget op af farvede felter rektangler, således at farvesensorens målinger kan bruges til at vurdere ret præcist hvor på banen robotten befinder sig. På figuren nedenunder ses idéen, men hvis det skulle laves rigtigt, kunne det være, der skulle flere felter til, alt efter hvor godt farvesensoren kan skelne disse.
Vi tror, at en sådan farvning af banen kan hjælpe til et intelligent spil, da deltagerne ville have betydeligt lettere ved at finde robotternes positioner på banen og dermed kan bruge tiden på at anvende robottens position til forskellige ting, i stedet for at bruge tiden på at finde på måder til at udregne robottens position.
Selvom det med en kappe på farvesensoren kan afgøres, hvilket af felterne på banen robotten befinder sig på, fortæller det ikke meget om robottens præcise lokation på banen fordi de farvede felter er store. De to grønne strækker sig hele vejen fra den ene ende af banen til den anden.
Fordi vi har fået så nøjagtige målinger med farvesensoren som vi har "Week 16 session 2" [3], mener vi at det kunne være til stor hjælp at farve banen ved at lave en graduering fra helt lys til mørk i længden af banen og fra rød til blå på bredden af banen. Således at banen er bygget op af farvede felter rektangler, således at farvesensorens målinger kan bruges til at vurdere ret præcist hvor på banen robotten befinder sig. På figuren nedenunder ses idéen, men hvis det skulle laves rigtigt, kunne det være, der skulle flere felter til, alt efter hvor godt farvesensoren kan skelne disse.
![]() |
| Grov farveinddeling af felterne på banen |
Vi tror, at en sådan farvning af banen kan hjælpe til et intelligent spil, da deltagerne ville have betydeligt lettere ved at finde robotternes positioner på banen og dermed kan bruge tiden på at anvende robottens position til forskellige ting, i stedet for at bruge tiden på at finde på måder til at udregne robottens position.
Bander
Vi har erfaret, som gennemgået i dette blogindlægs referat af præsentationen, at banderne er årsag til at der kommer
deadlocks i spillet samt klumpspil langs banderne, hvilket krævede menneskelig
indblanding for at spillet kunne fortsætte. Dette går imod princippet om et
kontinuerligt spil.
Banderne blev netop indført for at understøtte et kontinuerligt spil. Da de ikke hjælper til dette, er de ikke til gavn, men det bliver den originale udgave af banen ikke bedre af.
En af de ting, vi ville have gået videre med, hvis vi skulle fortsætte med spillet var at lave skråninger i kanterne af banen. Det skulle ikke være tilladt for robotterne at køre op af skråningerne. Formålet med skråningerne ville være at bolden triller tilbage på banen af sig selv, uden at den skal flyttes tilbage på banen, hver gang den ryger ud over kanten.
Banderne blev netop indført for at understøtte et kontinuerligt spil. Da de ikke hjælper til dette, er de ikke til gavn, men det bliver den originale udgave af banen ikke bedre af.
En af de ting, vi ville have gået videre med, hvis vi skulle fortsætte med spillet var at lave skråninger i kanterne af banen. Det skulle ikke være tilladt for robotterne at køre op af skråningerne. Formålet med skråningerne ville være at bolden triller tilbage på banen af sig selv, uden at den skal flyttes tilbage på banen, hver gang den ryger ud over kanten.
Mål
Målene er statiske objekter, der intet betyder for robotterne "Week 16 session 1" [4]. Dette bryder vores princip om intelligens, kontinuerlighed og simple regler. Alle disse skal nøje vurderes og overvåges af mindst 1 dommer, der både skal holde styr på point, dømme om der er mål og overvåge alle andre aspekter af spillet.
En udbedring kunne være en måltæller, som informerer alle robotterne hver gang der bliver scoret, hvis der bliver givet et penalty-point, samt hvis der gives et bonus-point. Disse beskeder vil kunne bruges af robotterne til at ændre deres strategier, samt ved mål, at køre tilbage på deres start-positioner og afvente nyt kick-off.
En udbedring kunne være en måltæller, som informerer alle robotterne hver gang der bliver scoret, hvis der bliver givet et penalty-point, samt hvis der gives et bonus-point. Disse beskeder vil kunne bruges af robotterne til at ændre deres strategier, samt ved mål, at køre tilbage på deres start-positioner og afvente nyt kick-off.
Robot
Hastighed
Pga. gearing har vi kunnet få vores robot til at køre
hurtigt, hvilket vi synes gjorde spillet
sjovere at se på. Desværre gik det ud over princippet om kontinuerlighed, da
robotterne ofte kolliderede og konsekvenserne heraf var at vi ofte var nødt til at bryde ind for at spillet kunne fortsætte.
Dette var også imod reglerne om at man ikke må sabotere modstanderens
robotter.
Kompas
Kompasset opførte sig generelt godt, men under kampen mod
det andet hold, oplevede vi, at vores robot havde svært at finde den rigtige
retning. Dette mistænker vi skyldes, at kompasset blev forstyrret af de mange
robotter på banen. Dette gør det svært at overholde princippet om et intelligent
spil, når måleinstrumentet ikke opfører sig konsistent.
Her vil vi henvise til vores tidligere forslag med en farvning af banen i adskillige rektangler, da en sådan ville kunne bruges til hele tiden at holde styr på hvor på banen robotten ca. befinder sig og dermed også have viden om i hvilken retning målene er.
Driblemekanismen
Driblemekanismen opfyldte dens formål. Faktisk fungerede den
bedre end hvad spillet kunne holde til. Dette var mindre sjovt at se på, da det
kombineret med robottens hastighed, gjorde det svært for konkurrerende robotter
at erobre bolden. Dette var med til at ødelægge det kontinuerlige spil fordi
robotten holdt så lang tid på bolden, at de ofte stødte sammen. Ydermere
medførte det, at spillet blev knap så sjovt at se på.
Af løsningsforslag til dette har vi at der kan indføres en regel om at en robot højst må holde på bolden i en vis tid, f.eks. 2 sekunder. Et andet alternativ kunne være slet ikke at tillade robotten at holde på bolden på nogen måde. Det ville ændre spillets stil en del da alle robotter ville være nødt til kun at støde ind i bolden. På denne måde skal robotterne hele tiden finde den rigtige vinkel at køre ind i bolden fra. Hvis en robot befinder sig på den forkerte side af bolden i forhold til hvor den skal score skal den køre rundt om bolden før den kører ind i den. Det kunne være et spændende eksperiment at udføre, for det er ikke til at forudse om det er en god idé. Det kan skabe store problemer, hvis robotterne i praksis hele tiden kører ind i hinanden, når de kører rundt om bolden for at finde den rigtige position til at køre ind i bolden fra. På den måde ville robotterne måske sjældent ramme bolden, og det ville være et kedeligt spil.
Af løsningsforslag til dette har vi at der kan indføres en regel om at en robot højst må holde på bolden i en vis tid, f.eks. 2 sekunder. Et andet alternativ kunne være slet ikke at tillade robotten at holde på bolden på nogen måde. Det ville ændre spillets stil en del da alle robotter ville være nødt til kun at støde ind i bolden. På denne måde skal robotterne hele tiden finde den rigtige vinkel at køre ind i bolden fra. Hvis en robot befinder sig på den forkerte side af bolden i forhold til hvor den skal score skal den køre rundt om bolden før den kører ind i den. Det kunne være et spændende eksperiment at udføre, for det er ikke til at forudse om det er en god idé. Det kan skabe store problemer, hvis robotterne i praksis hele tiden kører ind i hinanden, når de kører rundt om bolden for at finde den rigtige position til at køre ind i bolden fra. På den måde ville robotterne måske sjældent ramme bolden, og det ville være et kedeligt spil.
Skud
Vi har observeret at robottens skud ikke var hårdt og
præcist nok, samt at det tog for lang tid at forberede et skud. Dette medførte,
at der var for mange sammenstød og den lave styrke ved et skud gjorde at
robotten kunne nå at opfange dens eget skud, hvilket gjorde spillet mindre
sjovt og kontinuerligt.
Dimensioner og vægt
Vi har kunnet overholde kravene fra det officielle regelsæt
mht. dimensionerne af robotten. Vi var dog af den opfattelse, at kravet om
vægten om vores robot, var overskredet. Ved senere vejning af robotten har vi
dog fundet ud af at robotten vejer 944 g, hvilket opfylder 1 kg – kravet. Vi observerede at robotternes størrelse dog
var et problem ift. Banens størrelse. Det viste sig at være særdeles svært at
lave mål ved blot at stille en slukket robot i målet. Dette går imod vores
princip om et sjovt spil.
Konklusion
Projektet har mange løse ender, der kunne fyldes ud samt helt nye idéer, vi slet ikke har afprøvet. Det var, hvad vi forventede, fordi der ikke er nogen afgrænsning af hvor regelsættet til fodboldspillet kan tages hen. Vi har afprøvet mange ting deriblandt kompas, IR-sensor, kørt robotter på filt underlag og spillet på en fodboldbane med bander. Derfor synes vi at projektet er kommet derhen, hvor vi ønskede.
Vores eksperimenter med reglerne har ledt os frem mod, at det vil være fornuftigt at have en fast bygge-vejledning som alle mere eller mindre skal overholde, jf. vores sumo-robot uge [5]. Dette vil have en lang række fordele, der fint indsamler mange af punkterne ovenfor, samt vil gøre regelsættet betydeligt nemmere at arbejde med. Byggevejledningen kunne evt. være fra forrige års vindere, så alle eventuelle modifikationer der gav dette hold en fordel, vil blive udlignet fremover. Ideen bag dette er, at et regelsæt ellers naturligt vil eksplodere i kraft af alle de kreative ideer, der bliver afsagt dom om fra år til år. Ved at have en standard robottype som alle skal følge kan reglerne skrives simplere. F.eks. kan alt med dimensioner af robotten slettes. Den næste væsentlige ændring er, at banen skal kunne aflæses med sensorer så det er lettere at finde robotternes position, således at deltagerne kan koncentrere sig om at få robotterne til at opføre sig intelligent. Der er rigeligt udfordring ved at lave smarte måder for robotterne at udmanøvrere hinanden på, uden at tilføje besværet ved at give dem usikkerhed på hvor de er på banen. Uden præcise målinger for hvor robotten er, er det umuligt at lave tilstrækkeligt intelligente beslutninger for robotten, til at det virker som andet end tilfælde hvem der vinder. Dette bekræftes af at det virker langt mere tilfældigt hvad markspilleren laver sammenlignet med målmændene, når vi ser på en mesterskabskonkurrence. Dette er fordi målmændene har gode muligheder for at udlede deres egen position, sammenlignet med markspillerne. Markspillernes typiske strategi er at køre i en lige linje for så at skyde så hårdt som muligt på mål. En kombination af mål-tæller der informerer om mål, samt graduering af banen vil give robotterne et meget bedre billede af hvilket miljø de bevæger sig i, og måltælleren vil endda give dem mulighed for at lære af deres fejltagelser, og deres mål fortælle dem hvor god deres nuværende strategi er.
Hvis andre vil lave et lignende projekt om WRO GEN II Football [6] er vores forslag i betragtning af ovenstående, at koncentrere sig om at ændre banen, så den er lettere at aflæse frem for at bruge tid på at aflæse på den, som den er bygget nu. Vi vil også foreslå at bruge en standard robottype frem for at formulere et regelsæt, der tager højde for alle udgaver folk kan finde på, hvilket også ville sætte selve programmeringen mere i fokus.
Vores eksperimenter med reglerne har ledt os frem mod, at det vil være fornuftigt at have en fast bygge-vejledning som alle mere eller mindre skal overholde, jf. vores sumo-robot uge [5]. Dette vil have en lang række fordele, der fint indsamler mange af punkterne ovenfor, samt vil gøre regelsættet betydeligt nemmere at arbejde med. Byggevejledningen kunne evt. være fra forrige års vindere, så alle eventuelle modifikationer der gav dette hold en fordel, vil blive udlignet fremover. Ideen bag dette er, at et regelsæt ellers naturligt vil eksplodere i kraft af alle de kreative ideer, der bliver afsagt dom om fra år til år. Ved at have en standard robottype som alle skal følge kan reglerne skrives simplere. F.eks. kan alt med dimensioner af robotten slettes. Den næste væsentlige ændring er, at banen skal kunne aflæses med sensorer så det er lettere at finde robotternes position, således at deltagerne kan koncentrere sig om at få robotterne til at opføre sig intelligent. Der er rigeligt udfordring ved at lave smarte måder for robotterne at udmanøvrere hinanden på, uden at tilføje besværet ved at give dem usikkerhed på hvor de er på banen. Uden præcise målinger for hvor robotten er, er det umuligt at lave tilstrækkeligt intelligente beslutninger for robotten, til at det virker som andet end tilfælde hvem der vinder. Dette bekræftes af at det virker langt mere tilfældigt hvad markspilleren laver sammenlignet med målmændene, når vi ser på en mesterskabskonkurrence. Dette er fordi målmændene har gode muligheder for at udlede deres egen position, sammenlignet med markspillerne. Markspillernes typiske strategi er at køre i en lige linje for så at skyde så hårdt som muligt på mål. En kombination af mål-tæller der informerer om mål, samt graduering af banen vil give robotterne et meget bedre billede af hvilket miljø de bevæger sig i, og måltælleren vil endda give dem mulighed for at lære af deres fejltagelser, og deres mål fortælle dem hvor god deres nuværende strategi er.
Hvis andre vil lave et lignende projekt om WRO GEN II Football [6] er vores forslag i betragtning af ovenstående, at koncentrere sig om at ændre banen, så den er lettere at aflæse frem for at bruge tid på at aflæse på den, som den er bygget nu. Vi vil også foreslå at bruge en standard robottype frem for at formulere et regelsæt, der tager højde for alle udgaver folk kan finde på, hvilket også ville sætte selve programmeringen mere i fokus.
Referencer
[1], https://www.dropbox.com/sh/py0lfofp42zjydx/ncrrnxFMth/LEGO%20Soccer
[2], http://digikaison.blogspot.dk/2013/05/week-13.html
[3], http://digikaison.blogspot.dk/2013/06/week-16-session-2.html
[4], http://digikaison.blogspot.dk/2013/06/week-16-session-1.html
[5], http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson8.dir/Lesson.html
[6], http://wro2013.org/challenges/challenges-football
[2], http://digikaison.blogspot.dk/2013/05/week-13.html
[3], http://digikaison.blogspot.dk/2013/06/week-16-session-2.html
[4], http://digikaison.blogspot.dk/2013/06/week-16-session-1.html
[5], http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson8.dir/Lesson.html
[6], http://wro2013.org/challenges/challenges-football

No comments:
Post a Comment