onsdag den 18. april 2012

Lego Robot-Race

Tilstede:
Mikkel Nielsen
Søren Bramer Schmidt
Peter Jessen


Tid brugt:
7 timer

Mål

Målet er at bygge en robot der kan gennemføre 'Alishan train track' i den bedst mulige tid. 





















Plan
Vi vil:
1. Bygge en robot der kan følge de lige stræk på banen, ved hjælp af lys-sensorer.
2. Teste de lige stræk med robotten på banen og justere variabler.
3. Tilføje svingene og toppen som særlige tilfælde i koden.
4. Teste svingene med robotten på banen og justere variabler.
5. Iterere imellem punkt 2 og punkt 4 for et samlet resultat.

Resultater

 1.Lige stræk
Vi valgte at lave en robot med et lavt tyngdepunkt og dobbelthjul bagpå. De dobbelte baghjul viste sig at være nødvendige da robotten ellers spinnede på hjulene på opkørslen. Foran placerede vi 3 lyssensorer for at holde optimal styr på hvor på banen robotten er. Idéen var at den ene sensor holdt øje med striben og de andre på hver side af striben. Disse 3 sensorer skulle så kalibreres før hver kørsel.

 2. Test af lige stræk

Vi testede robotten på de 3 lige strækninger. Her opdagede vi, at vi ikke kunne køre med fuld hastighed og samtidig holde styringen. Vi valgte derfor at nedsætte hastigheden til den højeste, hvor vi stadig kunne styre. Vi fandt også ud af, at lysforholdene var forskellige fra den laveste strækning til den øverste. Vi havde derfor store problemer, i at robotten ikke kunne følge striben øverst og nederst på samme kalibrering. Vi fandt ikke nogen god løsning på dette, ud over at sænke hastigheden yderligere for at undgå at robotten kørte af banen.

3. Sving

For at tage svingende og ikke køre af banen, valgte vi at lave sving på følgende måde. 
Vi tilførte en ultrasonic sensor yderst foran på robotten. Denne sensor kunne så registrere når det plan robotten køre på ændre sig. Dette sker f.eks. når robotten når det første plateau. I det tilfælde drejer robotten en tidsmålt mængde til højre, for herefter at falde tilbage på lige stræk algoritmen. Tilsvarende kode blev tilført til andet plateau og toppen, hvor robotten skulle foretage et u-sving. På nedkørslen køre vi en lignende kode, dog skal ultrasonic sensoren nu måle en kortere afstand til fladen forude, og robotten skal igen dreje forholdsvis til højre og til venstre.

4. Test af sving

Det viste sig at være svært at time svingene perfekt. Der var mange faktorer der spillede ind. F.eks. afhang svinget succes af hvorledes robotten havde fulgt striben op til svinget, da selv små ændringer i robottens retning havde store konsekvenser for svinget. Herudover ændredes robottens reaktion som følge af batteriets opladningsniveau. 

5. Generel test

Med koden på plads, testede vi med at samle de 2 dele og få robotten til at køre på banen. Nogen af de variable vi havde til at ændre på var:
  • Robottens hastighed på opkørslens lige stræk
  • Robottens hastighed på opkørslens sving
  • Robottens hastighed på nedkørslens lige stræk
  • Robottens hastighed på nedkørslens sving
  • Kalibreringsværdierne
  • Mængden af tid brugt på at svinge i alle 4 sving og på toppen.
  • Tidsdelay før robotten svinger følgende en, af ultrasonic sensoren, ændring i hældingen af planen.

Vi optog flere forsøg på video, hvor robotten dog ikke var i stand til at gennemføre banen.

 Status

Vi nåede til det punkt hvor vi kunne observere robotten gennemføre alle dele af banen enkeltvis. Dette kunne vi ved, f.eks. at starte fra toppen. Det bedste forsøg hvor vi startede fra startområdet er vist på filmen her:




Ingen kommentarer:

Send en kommentar