Thursday, May 16, 2013

Week 13

Dato:

16-05-2013

Varighed:

Fælles lab: 7 timer
Blog: 12 timer

Deltagere:

Steffen Høi
Nikolaj Mols Hansen
Martin Vang
Ulrik Sahl Lystbæk

Status

Vi har valgt projektet at lave en udgave af WRO GEN II Football[1], hvor vi afprøver og analyserer reglerne.

Mål

Målet for denne laboratoriesession er at gennemgå de officielle regler for WRO GEN II Football og se videoer igennem af kampe fra turneringerne for at se, hvad man kan udlede af kampene med henblik på at forbedre spillet. Ud fra dette skal en udarbejdelse af de regler, vi ønsker at implementere i vores udgave af spillet være påbegyndt. Det er desuden også et mål at planlægge opbygningen af banen, efter vi har defineret krav og regler til spillet, samt indlede overvejelser omkring konstruktionen af LEGO-robotten.

Plan

  • Analyse af WRO GEN II Football spil.
  • Finde anden gruppe ift. regler.
  • Diskutere konstruktion af LEGO-robot.
  • Opsætning af SVN.

Introduktion

WRO (World Robot Olympics)  er en international konkurrence for unge mennesker. I konkurrencen anvendes LEGO Mindstorms af holdene som konkurrerer. Der er tre forskellige kategorier "Regular", "Open" og "Football". 
I dette projekt afprøves spillet og reglerne fra WRO GEN II Football med det formål at vurdere om regelsættet med fordel kan ændres eller, om vi kan få skabt et succesfuldt fodboldspil med LEGO-robotter ved at følge de regler og krav WRO, sætter til spillet. Vores definition af et succesfuldt spil vil vi give efter, at vi har analyseret kampene fra WRO turneringerne, samt gennemgået reglerne for spillet.

Proces


Analyse af WRO GEN II Football spillet

Efter at have gennemgået de officielle regler fra WRO GEN II Football, har vi udvalgt de regler, som vi vil implementere i vores udgave af fodboldspillet samt de regler fra WRO GEN II Football, som vi vil lave eksperimenter ud fra. Begrundelsen for dette er, at de officielle regler virker meget omstændige. Efter at have set nogle videoer på Youtube[2] af kampene fra WRO turneringerne, har vi lagt mærke til, at der er utrolig mange afbrydelser i løbet af en kamp, hvilket for det meste skyldes, at bolden triller uden for banen, men også situationer hvor robotterne låser hinanden. Disse afbrydelser, der kræver menneskelig indblanding, kunne vi godt tænke os at minimere.

En anden gruppe arbejder også med fodboldspillet, og for at kunne spille på lige vilkår mod hinanden i slutningen af projektperioden, har vi aftalt at følge de samme regler mht. dimensionerne for konstruktionen af LEGO-robotten. Desuden blev vi også enige om udgangspunktet for banen. Vi har fundet ud af, at det på nuværende tidspunkt ikke given megen mening, at lave et fast og endeligt regelsæt, da det vil sætte en del begrænsninger for kreativiteten og evt. forbedringer af spillet. Desuden går dette projekt også ud på, via eksperimenter med LEGO NXT, at give et bud på hvilke muligheder, der er for at skabe det bedst mulige LEGO NXT fodboldspil.
De regler, som vi har valgt at følge, er beskrevet i nedenstående afsnit:
Materialer
De controllere, motorer og sensorer, der bruges til at samle robotterne skal være fra LEGO® MINDSTORMS sæt og HiTechnic (HiTechnic NXT IRSeeker V2 sensor og HiTechnic NXT Compass sensor).
Bane
Vi har fået stillet en plade fra et tidligere projekt til rådighed. Pladen har målene 115 cm x 217 cm og er udstyret med sidestykker, hvilket vi har tænkt os at udnytte som bander. Intentionen med dette er at forhindre de afbrydelser, der ødelægger flowet i spillet, hver gang bolden ryger ud. I følge beskrivelsen givet fra WRO, har vi fundet ud af, at det officielle underlag til banen, lavet af vinyl, kan tilkøbes[4]. Da vores fysiske rammer, som førnævnt er anderledes, har vi dog valgt, at vi vil lave vores eget underlag, hvilket også giver os mulighed for at eksperimentere med et alternativt underlag. Vi har bestemt at de farver, der skal være på banen, er grøn på de to sider (lysegrøn og mørkegrøn), sort i de to målfelter samt hvid på midtstykket af banen. Vi har overvejet enten at male disse farver på eller at lægge filt i de dertilhørende farver på som underlag. En skitse af banen kan ses nedenfor:

Illustration af vores bane

Ideen med de forskellige farver i siderne er, at man ved hjælp af en farvesensor kan afgøre, hvilken side man befinder sig i og kan bevæge sig imod midten i stedet for at køre ind i banden. Vi har også overvejet forskellige typer mål. Vi overvejer enten at male målene på endebanden eller at bygge en konstruktion i træ med to sidestolper og en overlægger, der kan placeres i hver sin ende af banen. Det er vigtigt at målene bliver meget brede, for at det ikke skal være umuligt at score. En konstruktion i LEGO virker ustabilt og overlæggeren komme til at hænge. Vi vil til næste gang få indkøbt filt, tape og andre materialer nødvendige for at konstruere banen. Selve konstruktionen vil vi påbegynde næste session.
Robot
Når det kommer til dimensionerne af robotterne, har vi besluttet stortset at følge kravene fra det officielle regelsæt. Dette indebærer, at en robot, der deltager i vores udgave af fodboldspillet, skal kunne være inden for en diameter af 22 cm, samt at højden af robotten er begrænset til 22 cm. Når en robot måles, skal den være i opretstående position og alle påmonterede dele skal være fuldt udfoldede. Desuden sigter vi efter, at vægten på robotten ikke må overskride 1 kg. Om vi rent faktisk kan holde os inden for disse dimensioner er noget, der vil vise sig, når vi påbegynder selve konstruktionen af robotten.
Selve styringen af robotten skal foregå autonomt, hvilket indebærer, at robotten skal startes manuelt, samt at det ikke er tilladt at fjernstyre robotten. Kommunikation mellem robotter på samme hold via Bluetooth er dog tilladt, sålænge at det ikke forstyrrer modstanderens robotter i en sådan grad, at det går ud over robotternes performance. Dette finder vi umiddelbart særlig interessant, da det gør det muligt for to robotter at spille sammen.
Robotterne må udelukkende bestå af det udstyr, der er nævnt under afsnittet materialer samt almindelige LEGO-klodser, som ikke må modificeres. Dette udelukker brugen af lim, tape samt skruer. Dog er tape tilladt i forhold til at holde styr på ledningerne, der bruges, i forbindelse med de førnævnte sensorer.
Når det kommer til de programmer, der må uploades på robotten, skal disse være programmeret i LeJOS, LEGO Robolab eller LEGO Mindstorms NXT-G. Omni-orienteret hjul er ikke tilladt, da det ville give den robot, der agerer som målmand, en alt for stor fordel, og dermed gøre det meget svær for modstanderen at score. Hvis man bruger en målmand, skal den derfor kunne bevæge sig i alle retninger. En målmand må godt godt bevæge sig ud af straffesparksfeltet, når den ser bolden i forbindelse for at opsnappe den.
Det er tilladt for en robot at "erobre" bolden, men den må ikke "holde" på bolden. Som det er defineret i de officielle regler fra WRO Soccer GEN II,  erobrer en robot bolden ved maksimalt at have kontrol over 3 cm af bolden, i.e. en robot må ikke have halvdelen af boldens diameter under sig. Det er et krav at bolden skal bevæge sig, når en robot er i besiddelse af den. En robot holder på bolden ved at tage fuld kontrol af over bolden, så den fjerner alle boldens grader af frihed, hvilket gør det umulig for andre andre robotter at få fat i bolden. Dog må man gerne bruge en driblemekanisme, der kan gøre det muligt at give bolden backspin, og hvor robotten slipper bolden i forbindelse med, at den skyder mod mål. Denne driblemekanisme, er vi særligt interesseret i at eksperimentere med for at se, hvor godt den kan bruges, både i forbindelse med at erobre bolden, samt at skyde mod mål. Vi forestiller os, at det bliver en udfordring, i forhold til disse regler, helt præcist at definere, hvornår en robot, bryder reglerne ved at holde på bolden.
Game Play
Vi forestiller os, at robotterne måles og vejes inden en kamp, og at de to hold, bliver enige om at alle robotter overholder de fysiske krav, der er til robotten. Der gives desuden tid til, at holdende kan kalibrere deres robotter, således de er tilpasset til at operere under de givne forhold. En kamp varer to halvlege, men vi har på nuværende tidspunkt ikke lagt os fast på, hvor lang tid en halvleg skal vare, da vi først vil se, hvordan en typisk kamp forløber sig på den bane, vi har lagt os fast på for at afgøre, hvor lang tid det giver mening at spille. Der byttes banehalvdel efter hver halvleg, og spillet bliver sat i gang, ved at hvert hold tænder deres robotter, samt at en uvildig person tænder for bolden og lægger denne ind på banen. Deadlocks, i.e. når en robot er låst i en position, den ikke kan komme ud af, efter at have prøvet på dette i omkring 5-10 sekunder, løses ved menneskelig indblanding, hvor hvert hold kun må løfte på deres egne robotter. Hvert scoret mål skal registreres og tælles op, når kampen er slut, hvor det hold med flest antal mål har vundet kampen.
Succesfuldt spil
Efter de forudgående undersøgelser, vil vi definere et succesfuldt spil ud fra nedenstående 4 principper:
  1. Kontinuerligt spil: Spillet skal køre flydende, og der skal være så få afbrydelser som muligt. Dvs. et spil hvor der så sjældent som muligt, skal menneskelig interaktion til for at løse konflikter. Dette krav er dog ikke nok til et kontinuerligt spil. Robotterne skal ikke kun selv løse konflikten, men den skal også kunne gøre det indenfor en overskuelig tid. En overskuelig tid bør ses i sammenhæng med at en kamp typisk vil vare 10-20 min. og derfor vil 10-20 sekunders deadlock være i nærheden af et loft, for hvad vi ønsker.
  2. Intelligent spil: For at øge deltagernes tid til at skabe robotter, der opfører sig intelligent, skal tidsforbruget på at fortolke sensormålinger minimeres. Dvs. at miljøet skal være så behjælpeligt, som muligt for robotterne, i forhold til at navigere rundt på banen, finde hinanden og finde målene, så muligheden for at udvikle en intelligent robot er til stede.
  3. Simpelt spil: Det skal være hurtigt og overskueligt at læse og forstå reglerne.
  4. Sjovt spil: Det skal være underholdende både for de konkurrerende hold samt tilskuere at se på spillet.
Tilsammen vil vi henvise til disse principper forkortet som KISS, eller blot ved at henvise til et succesfuldt spil.

Diskutere konstruktion af LEGO-robot

Vi har diskuteret hvilke fysiske krav, der skal stilles til robotten. Udover at regelsættet stiller en række krav, som vores robot skal overholde, har vi besluttet at forsøge at bygge en robot, der ligesom en levende fodboldspiller, kan bevare boldkontrol imens den "løber" hen over banen. Udfordringen bliver her at skabe en driblemekanisme, der ikke fikserer bolden (jf. regelsættet), men stadig sikrer, at vi ved, hvor bolden er i forhold til robotten.
Tanken bagved vores ønske om boldkontrol, er at det vil være meget svært at udføre avancerede strategier, hvis vi ikke er 100 procent sikre på, hvor bolden er. Dette bliver en stor udfordring, da vi gerne vil være i stand til at stoppe op uden at bolden triller fra os.
En anden overvejelse er, hvor vigtigt det er at kunne skyde hårdt med robotten. Vores umiddelbare plan er at negligere dette aspekt en smule. Vi vil forsøge at bygge en robot, der i stedet for at skyde en hård bold, kan skyde en præcis bold, og uddrible modstanderen. Tanken her er, at uanset hvor hårdt vi får skudt, så vil målmanden stadig stå i vejen, hvis vi ikke har udmanøvreret ham, hvilket gør styrke irrelevant.
Det sidste punkt er derfor hastighed. Vi vil have en hurtig sprinter, da hastighed i virkelig fodbold er en af de primære faktorer for hvilket hold, der vinder. Dette betyder en gearing, der er stor nok til at tillade sprint, men samtidig er præcis nok til, at vi kan udføre vores strategier.

Konklusion

Vi har analyseret WRO GEN II Football spillet og derudaf udledt, hvilket materiale, vi skal bruge til at konstruere banen samt gjort os nogle indledende overvejelser omkring de eksperimenter, vi vil udføre. Ud fra dette ved vi, hvad der skal købes ind, så vi kan have det klart til næste lab-session. Dette har vi fremlagt for den anden gruppe, der også arbejder med fodboldspillet.
Endvidere har vi haft en indledende diskussion af konstruktionen af robotten, så vi kan påbegynde denne næste gang. Planen er dog, at diskussionen fortsætter sideløbende med konstruktionen af robotten de kommende sessioner.
Til udviklingen af software til robotten, har vi sat et SVN projekt op, så vi nemt kan dele koden.

Referencer


No comments:

Post a Comment