RESULTAT

Vi har jobbat med den golfspelande roboten under vårterminen och lagt ner ca 200 timmar var. Hur gick det då? Jo, det har gått bra och vi är nöjda med resultatet. Alla krav ett och krav två är uppfyllda, förutom ett krav två som hade med modellen att göra.

Tidigt i projektet delade vi in den tekniska delen i tre mindre enheter som alla kunde utvecklas parallellt. De var robotstyrning, grafiskt gränssnitt och modellering av bana och boll. Resurser och milstolpar avsattes till dessa tre grupper. Under hela projektes gång har vi varit noga med att rapportera vad som hänt i de olika grupperna så att alla var medvetna om projektets status. Modellen används för att räkna ut hur bollen kommer rulla över banan vid ett slag och för att ta fram den hastighet som ger störst sannolikhet för att bollen ska träffa hålet för en given utslagsvinkel.

För att klara detta har vi tagit fram två modeller. En modell av golfbanan, baserad på mätningar av den verkliga banan, samt en modell som beskriver hur bollen rör sig utifrån fysikaliska samband. Tyvärr lyckades vi inte få modellen över hur bollen rullar att bli så exakt för alla slag att vi utifrån den kunde räkna ut vilken hastighet som bollen skulle träffa hålet för. Därför har vi även konstruerat en tabell med statistik över hur ofta bollen träffar hålet för olika vinklar och hastigheter. För en given vinkel söks tabellen igenom och den hastighet som ger störst sannolikhet att träffa hålet tas ut och skickas vidare till roboten.

Modellen av golfbanan, den fysikaliska modellen av hur bollen rör sig och tabellen är samtliga implementerade i Matlab.

Det grafiska gränssnittet har tagits fram med hjälp av verktyget Guide i Matlab. Vårt mål med gränssnittet var att det skulle vara lätt att använda och att användaren inte ska behöva några förkunskaper för att spela golf med Marvin.

När användaren startar programmet möts han av en startsida (se figur). Där väljs vilken av moderna som ska användas.
Tre moder skapades för att programmet ska kunna användas vid olika tillställningar. I spelmoden (se figur) väljer användaren den vinkel och hastighet som Marvin ska slå med. Det visar sig vara rätt svårt att slå bollen i hål när användaren själv ska uppskatta dessa parametrar. I uppvisningsmoden anger användaren en vinkel och Marvin räknar vilken hastighet som sätter bollen i hålet. Slutligen finns en tävlingsmod, där en spelare kan utmana Marvin i bäst av sex slag. Spelaren använder egen klubba och man slår varannat slag.

STARTSIDAN

Startsidan.


SPELMOD

Spelmoden.


Robotgruppens första uppgift var att lära sig hur roboten fungerar och hur den programmeras. Det lärde de sig genom en kurs som hölls av doktoranderna på ISY.

Det första problemet som robotgruppen ställdes inför var att försöka utforma en så effektiv sving som möjligt för Marvin. Till en början hade vi en väldigt teoretisk synvinkel på problemet, det vill säga vi ville försöka beräkna den svingbana som kunde ge den teoretiskt högsta hastigheten. Det visade sig dock att det inte fanns tillräckligt mycket dokumentation tillgänglig, så vi kunde inte få tag på den data som berättade vad det är som begränsar robotens rörelsehastighet. Vi var därför tvungna att istället prova oss fram till en sving som gav ett bra resultat.

Efter att testa många olika svingar fann vi till sist en svingbana som vi var nöjda med. Efter detta började vi med att utforma lite andra små procedurer så som att söka av banan, hämta bollen och placera ut bollen.

Därefter var nästa utmaning att få kommunikationen mellan robotprogrammet i RAPID och Matlab att fungera. Vi kom fram till en lösning som fungerade så att Matlab skriver den data som ska till roboten i en speciell textfil och läser sedan av resultat i en annan textfil som roboten har skrivit till. Kommunikationen synkroniseras med hjälp av handskakning.

Intresserade hänvisas till den tekniska dokumentationen för en mer detaljerad beskrivning.