Dato: 10 - 05 - 2012
Varighed:
Tilstedeværende: Jonas, Simon, Morten
Siden sidstDer er blevet kodet på en prototype server til vores projekt.
Goals
Vi vil i denne laboratorieøvelse præsentere mulige ideer til et End Course Project.
Plan
For at finde frem til hvilket slutprojekt vi skal lave vil vi gennemgå nogle idéer.
Nedenfor er der, for hver idé, blevet skrevet en kort beskrivelse af den. Derefter er der blevet overvejet hvilke hardware og software komponenter en eventuel løsning kan bestå af. Til sidst er der lavet nogle overvejelser om hvilke problemstillinger der vil kunne opstå under en eventuel implementering af idéen.
Beskrivelserne er blevet delt op i følgende undersektioner:
- Hardware
- Software
- Problemstillinger
Rabbit Hunt
Rabbit Hunt er er spil som går ud på at spilleren styrer en kanin, som skal forsøge at undgå at blive fanget af to eller flere Jægere. Spillet er turbaseret og foregår i en verden som består af et todimensionelt grid. Jægerne bliver styret af en AI og kaninen styres af brugeren. Brugeren har det fulde overblik over verden, men jægerne kan kun se horisontalt og vertikalt ud fra deres position.
Hardware
Der vil skulle være en NXT pr. jæger samt en NXT for kaninen. Hver NXT skal have to moterer, samt en farvesensor til at kunne finde rundt på banen. Samtidig vil der skulle være en mulighed for at brugeren kan styre kaninen. Dette kunne f.eks. være gennem en PC med bluetooth eller en smartphone med bluetooth. PC'en/Smartphonen vil samtidig kunne sørge for at opretholde selve spillet - placering af spillere osv.
Software
Problemstillinger
Sex BotsSoftware
På hver NXT vil der ligge en tynd klient, som modtager kommandoer gennem bluetooth. Der vil ikke være brug for at implementere behaviors af nogen art. Kommandoer skal få robotten til at bevæge sig en enten frem, tilbage, venstre eller højre. På PC'en eller smartphonen skal der være en server, som sørger for at give kommandoer til robotterne, samt modtage indput fra brugeren.
Problemstillinger
Der vil være nogle problemer i hvordan robotterne skal opdage hinanden. Derudover vil kontakten mellem robot og server være en af de store problemstillinger. Det at skulle opretholde flere bluetoothforbindelser på samme kan være noget der vil kræve en del tid.
Til slut vil det være muligt at kunne præsentere et projekt hvor der er mulighed for at spille et spil rabbit hunt.
Til slut vil det være muligt at kunne præsentere et projekt hvor der er mulighed for at spille et spil rabbit hunt.
Ideen med sex bots er, at en gruppe NXT'er skal kunne parre sig og på denne måde kunne udbytte gener, imellem hinanden.
Derved bliver måden, hvorpå de enkelt NXT'er reagerer på sensorværdier, ændret.
Hardware
Det er blevet vist i Sex Bots, at 2 NXT'er ville være nok til dette projekt. Men som der også pointeres i http://hackaday.com/2005/03/25/sex-bots/, ville det være mere spændende at se, hvordan en større gruppe NXT'er ville reagere. Så vi synes det ville give mening, at lave dette projekt med omkring 5 NXT'er. På denne måde ville gruppeopførsel kunne observeres.
Hver NXT vil have bruge for en eller flere sensorer, til opdagelse af hinanden og forhindringer. Vi forslår, at hver NXT blev udstyret med et lys på toppen. Så vil man, som vist i Lab 6, kunne bruge to lyssensorer til opdagelse af andre NXT'er. Derudover vil en tryksensor eller ultrasonisk sensor (se Lab 9) kunne registrere forhindringer foran NXT'en.
Software
Vi mener at der her ville kunne bruges en subsumption architecture, som vi brugte i Lab 7. Der skulle så laves en behavior til hver sensor. Prioriteten, samt hvad behavior gør, afhænger af NXT'ens gener. De mulige opførsler for en behavior, så som kør til højre, kør til venstre, par osv., skulle implementeres i hver deres seperate klasser.
Problemstillinger
NXT til NXT kommunikation.
Hvordan formateres gener, når de skal sendes til en anden NXT.
Hvordan forgår parringen.
Hvordan kombineres generne og med hvilken hyppighed opstår mutationer i generne.
LegWay
LegWay projektet handler basalt set om at få en robot til at stå oprejst på 2 hjul ved at køre enten frem eller tilbage hvis den er ved at miste balancen.
Hardware
For at bygge denne robot kræver det selvfølgelig en programmerbar enhed samt et batteri. Derudover kræver det en sensor som enten direkte eller ind-direkte kan bruges til at finde ud af hvilken hældning robotten har. Der skal også bruges i hvert fald 1 motor til hjulene, helst 2 hvis den skal kunne dreje også. Man kan derefter enten direkte måle afstanden mellem sensor og jorden med en distance-sensor(optisk/sonar/andet) og bruge den til at korrigere motoren med, eller man kan bruge for eksempel en lyssensor til at finde den relative hældning i forhold til tidligere observeret sensor-værdier og bruge dem til at korrigere med.
Software
Softwaren til denne type robot kræver en meget vel-kalibreret PID-kontrol, så PID'en skal enten indstilles meget godt på forhånd eller kunne indstille sig selv over tid. Det samme gælder for sensor-værdier. Arkitektur-mæssigt virker den simpel da der ikke umiddelbart er flere tråde der skal kæmpe om kontrol men en masse værdier der skal indstilles.
Problemstillinger
Hvordan kalibrere vi både PID og sensor-værdier automatisk på et uniformt underlag så den kan forblive oprejst.
Man kunne udvide projektet så en bruger kunne styre robotten, dette kræver endnu mere indstillinger af sensor-værdier.
Endeligt projekt
Som endeligt projekt er Rabbit Hunt blevet valgt. Det var det første projekt vi fandt på og det er det, der for os, virker sjovest, da det gør brug af bruger interaktion. Samtidig er vi allerede begyndt på dette projekt og har efterhånden fået en server op at køre, som kan spille sit eget lille spil. Denne har også en GUI, så brugeren kan se placeringen af spillerne.
Som beskrevet ovenfor består verdenen i Rabbit Hunt af et grid. Et eksempel på et sådan grid kan ses på billede 1.
Der vil i fremtidige rapporter komme mere udførlige beskrivelser af arkitekturen, samt begrundelser for disse valg.
Fremtidig plan
Som beskrevet ovenfor består verdenen i Rabbit Hunt af et grid. Et eksempel på et sådan grid kan ses på billede 1.
![]() |
| Billede 1 |
Fremtidig plan
- Få bluetooth forbindelse mellem NXT og PC til at virke
- Få PC'en til at opretholde bluetoothforbindelse til flere NXT'er på samme tid
- Få NXT'erne til at følge en linie indtil de når til et kryds
- Få NXT'erne til at dreje og bevæge sig ud af en ny arm i et kryds
