torsdag den 20. januar 2011

Konklusion

Projekt konklusion
Kompromisser
    • Banens væg (der ligger mellem bakken og EndeRobotterne) højde er et kompromis. Da den skulle være højere for at kunne stoppe alle bolde, men så kunne vi ikke sparke til boldende eller se boldende da lyssensorene ville blive blokeret.

Problemer
Vi har undervejs i projekter brugt meget tid og energi på nogle ting der af forskellige årsager ikke er med i det endelige projekt. Dette drejer sig om:
  • Wiimote
      • Vi ville oprindeligt bruge en Wiimote til at styre midterrobotten, men fandt først sent ud af at dette var meget besværligt da wiimote og NXT bruger to forskellige bluetooth stacks.
      • Det lykkedes os aldrig at få kommunikation i mellem wiimote og PC til at køre samtidig med at NXT og PC kommunikerede.
  • Bluetooth

Vi ville oprindeligt gerne have reglerne implementeret i PC, der fik signal fra de forskellige NXT’er, f.eks. om at der var skudt til bolden mv. Vi havde desværre nogle (unødvendigt) store problemer med at bruge bluetooth da vi havde fået opsat forbindelsen forkert, og var længe om at finde denne fejl. Da vi fik bluetooth mellem PC og flere NXT’er til at virke, var tiden så fremskreden at vi opgav denne del af projektet og implementerede reglerne direkte i lysNXT’en der fik et større ansvar end det var meningen fra starten.


Andre problemer der til sidst blev løst
  • Enderobotter

Undervejs har vi haft en del besvær med vores enderobotter og det at de ikke altid stoppede inden de skød til bolden. Dette problem har vi brugt lang tid på at debugge, uden rigtig at få det løst. Til vores store glæde lykkedes det kort før deadline at få løst dette problem.


Godt
Vi har nogle elementer i vores projekt vi er stolte af, flere af delene har vi brugt en del tid og energi på at få til at virke tilfredsstillende.
  • Midterrobot
      • Midterrobotten sørgede for at vi fik genopfrisket vores vektorregning. Vi er rigtig glade for at vi har fået den til at køre så godt og stabilt. Vi er også glade for at vi har fået brugt omnihjulene i projektet, da de har været en sjov motivationsfaktor i gruppen.
  • Enderobot
    • Slåarmen bruger motoren til at trække elastikken op, der så virker som fjeder. Når armen kommer ud over rampen sparker den til bolden, og kræften som der sparkes med kan nemt justeres ved at flytte på elastikket.
    • Arkitekturen med behavior-based design virker rigtig godt, og har gjort det nemmere at debugge koden, da det har været med til at holde koden simpel. Desuden gør det at lave flere behaviors for at udvide funktionaliteten i enderobotten, eller redigere nuværende funktionalitet er væsentlig nemmere.
  • LysNXT
      • Det lykkedes at lave LysNXTen færdig i projektet med sensorere, regler og concurrency sikkerhed.

Fremtiden
Hvis vi havde haft 14 dage til ville vi havde implementeret disse dele.
  • Alle enheder skal via bluetooth kobles til en PC der håndterer spillet. Det betyder at sensorene sender data til PC’en som kender reglerne, styringen af midterrobotten og eventuelt kunne man styre endeRobotterne manuelt (hvis man var flere spillere) alt fra den samme PC.
  • Når reglerne lå på PC’en og PC’en havde alle informationer om spillets tilstand så kunne man lave mere avancerede regler (da man kunne tælle antal spark og lignende) samt have flere forskellige spiltyper man kunne vælge imellem.
  • For at midterrobotten ikke kan bryde lyset ved lysSensorene, skulle der være en markering på banen som robotten skulle kunne registrere (eksempelvis mørk tape kombineret med en lyssensor monteret på robotten) og en behavior i robotten der gjorde at markeringen ikke kunne krydses.
  • Ud over det ville vi også implementere et handicap system på midterrobotten. Handicapsystemet skulle sørge for at ændre på sværhedsgraden af robotten ved f.eks. at styre hvor hurtigt robotten kan køre. Andre handicaps kunne være at sætte begrænsninger på hvor meget man kan køre i hver retning så man skal bevæge sig så lidt som muligt for at undgå boldene.
  • Hvis vi havde mere tid i slutningen af de 14 dage kunne vi gøre midterobotten automatstyret. Men da hele systemet allerede er koblet op med bluetooth, mangler vi bare en måde at holde styr på positionen af midterrobotten. Her springer kameratracking op som det åbenlyse valg da denne også gør computeren i stand til at se hvor boldene befinder sig så den kan undgå dem.


Andre overvejelser
Efter fremlæggelsen af projektet har vi overvejet at det ikke nødvendigvis er et single-player spil, da det er nødvendigt at der står en spiller mere i hver ende for at samle bolde op der enten kommer for langt eller kort. Man kan være op til fire spillere, en i hver ende, en til at styre midterrobotten og en til at samle de bolde op der rammer midterobotten og det er stadig sjovt for alle.

Konklusion
Alt i alt har vi fået lavet et projekt der kan næsten det vi havde som vision fra starten. Det eneste der ikke er blevet til noget er kommunikationen mellem PC og bluetooth, som også er det vi ville arbejde på hvis vi havde haft mere tid.
Herudover var vores første ide at der skulle spilles med en bold og at smørklatten skulle forsøge at fange den, dette blev gennem projektet lavet om, da det virkede sjovere at spille med flere bolde og forsøge at undgå disse.


Til sidst har vi samlet alt kode, billeder og videoer her:

Ingen kommentarer:

Send en kommentar