RoboCup En litteraturstudie av 2010s finalistlag runswift Artificiell Intelligent II, Fördjupningsuppgift Martin Krampell @student.liu.se Linköping 2012-10-16
Sammanfattning RoboCup, morgondagens fotboll eller helt enkelt väldigt spännande grejer - många benämningar på en och samma sak. Vi går igenom hur en robot faktiskt lyckas att spela fotboll och det med en hel del intelligens dessutom. Hur roboten kan se, uppfatta och sedan navigera en fotbollsplan i miniformat klargörs för att få en god generell förståelse för robotfotboll i allmänhet. Avslutningsvis diskuterar vi kring ämnet och vart det här kan leda oss i framtiden. 1
Innehållsförteckning 1. INLEDNING... 3 1.1 KÄLLHANTERING... 3 2. SYFTE... 3 3. ROBOCUP... 3 3.1 HISTORIA... 3 3.2 OLIKA GRENAR OCH KLASSER... 4 3.3 FÖRUTSÄTTNINGAR... 5 3.4 ROBOTEN... 5 4. LAGET... 6 5. PERCEPTION... 7 5.1 SYN... 7 5.1.1 Objektidentifikation... 7 5.1.2 Robotidentifikation... 9 5.1.3 Bollidentifikation... 10 5.1.4 Målidentifikation... 10 5.1.5 RANSAC... 10 5.2 SENSORER... 12 6. POSITIONERING... 12 7. KOMMUNIKATION... 14 8. BETEENDE... 14 8.1 OLIKA ROLLER... 15 9. DISKUSSION... 16 REFERENSER... 18 BILAGA 1 RANSAC PSEUDOKOD... 19 2
1. Inledning RoboCup Soccer är en internationell robot- tävling med syfte att skapa robotar som klarar av att spela fotboll mot varandra. Målet med tävlingen är att främja utvecklingen inom robotteknik samt artificiell intelligens (AI) och att göra detta på ett åskådarvänligt men ändå utmanande sätt. Den här studien ämnar granska finalistlaget runswifts bidrag till 2010 års tävling samt att ge en insikt i hur en robot faktiskt lyckas spela fotboll. Denna rapport är resultatet av ett fördjupningsarbete i kursen Artificiell intelligens II (). Fokus kommer därför att läggas på den artificiella intelligensen och mindre på andra delar av RoboCup. 1.1 Källhantering Källor och referenser kommer att presenteras enligt Oxford- modellen. Komplett litteraturförteckning hittas i slutet av rapporten. Om inte annat anges, så är allt material baserat på ref.nr. 1; runswift Team Report 2010 RoboCup Standard Platform League. 1 2. Syfte Syftet med fördjupningsarbetet är att sätta sig in i samt få en djup förståelse för det valda ämnet och att sedan genom en skriftlig rapport presentera sina fynd. Syftet med rapporten är således att redogöra för hur en fotbollsspelande robot fungerar. 3. RoboCup 3.1 Historia RoboCup grundades år 1997 och hålls årligen på en ny plats runt om i världen. Den originella målsättningen med tävlingen är att år 2050 ha ett robot- lag som 1 http://www.cse.unsw.edu.au/~robocup/2010site/reports/report2010.pdf 3
är bra nog att vinna över det ledande mänskliga fotbollslaget. Tävlingen har däremot sedan dess grundande expanderats för att täcka fler grenar än fotboll. 3.2 Olika grenar och klasser Fotboll är inte den enda grenen inom RoboCup utan det finns även andra tävlings- kategorier såsom Rescue (Räddning), @Home (Vardagshjälp) samt Junior (Låta ungdomar lära sig utveckla robotar). Inom grenen fotboll, eller Soccer som den officiellt heter, finns det även ett antal olika klasser. 2 Nedan listas de olika klasserna och i vissa fall även deras sub- klasser. - - - - - Humanoid o Kid size o Teenage size o Adult size Middle size Simulation o 2D o 3D Small size Standard Platform Den sistnämnda, nämligen Standard Platform League (hädanefter SPL), är kategorin som runswift år 2010 deltog i. Det är även den tävling vi hädanefter kommer att referera till när vi pratar om RoboCup och runswifts bidrag. Denna kategori baseras på att samtliga lag använder en identisk robot som erhålles i samband med tävlingen. Lagen slipper bygga egna robotar och kan därför fokusera all tid på mjukvaruutveckling. I samtliga av de andra klasserna krävs det att laget utöver mjukvaran också bygger egna robotar. Hur robotarna får se ut baseras på vilken kategori som de ska användas för, de får alltså inte se ut på 2 http://www.robocup.org/robocup- soccer/ 4
vilket sätt som helst. Dessa specifikationer finns detaljerat beskrivna i reglerna för varje klass. 3.3 Förutsättningar Samtliga dimensioner, färger på objekt och dylikt finns klart definierat i regelboken för SPL. 3 Detta för att robotarna ska ha så lätt som möjligt att identifiera olika objekt på plan. En tävlings- sport kräver dessutom tydligt definierade regler och specifikationer för att kunna bli rättvis. Figur 1. Visar planens olika element samt deras färg. Färgen på de olika objekten är kanske en av de viktigaste aspekterna att definiera när det kommer till RoboCup. Se Figur 1. För att förenkla robotarnas visuella igenkänning av olika objekt så har dessa alltid samma färger och finns alltså fördefinierat till utvecklarnas stora glädje. 3.4 Roboten Roboten som används för SPL är av Humanoid- typ. Se Figur 2 nedan. Den har alltså liknande anletsdrag som en människa; två armar, två ben, ett huvud osv. Robottypen heter Nao och produceras av Aldebaran Robotics. Laget får inte på något sätt modifiera roboten förutom i ett fåtal undantagsfall. Dessa undantagsfall är bland annat att sätta svart- vita sponsor- klistermärken på ett av 3 http://www.tzi.de/spl/pub/website/downloads/rules2010.pdf 5
Martin Krampell Linköpings Universitet benen samt lite smått besynnerligt; att tejpa ihop robotens händer och/eller fingrar med silvertejp. Tejpen måste i sådana fall vara transparent eller vit. Figur 2. Visar Roboten Nao samt i det här fallet det blå lag- bandet Robotarna blir tilldelade rosa respektive blå armband beroende på lagtillhörighet. Notera det blå bandet i Figur 2. För det andra laget är just detta band rosa. För varje match befinner sig 3 stycken Nao- robotar på plan som spelare. SPL är alltså en tre- manna sport. 4. Laget Laget heter som bekant runswift och tog silver i 2010 års final av SPL. 4 Video från tävlingen kan även hittas på YouTube. 5 Laget vann däremot tävlingen Technical challenge. Technical challenge (alt. Sv: tekniska utmaningen) testar en robots förmåga till tre olika, tekniskt utmanande, företeelser. Dessa är som följande; passning, dribbling samt en öppen utmaning.6 Den öppna utmaningen kräver att laget gjort något tillräckligt avancerat som imponerar på domarna. Laget representerar The University of New South Wales från Sydney, Australien, och består till större delen av studenter. 4 http://www.robocup2010.org/home_results.php 5 http://www.youtube.com/watch?v=z5-11awt0rw 6 http://www.tzi.de/spl/pub/website/downloads/challenges2010.pdf 6
5. Perception Det första och kanske viktigaste roboten måste göra för att kunna spela fotboll är att skapa sig en uppfattnings av världen. Den kan göra det på många olika sätt, dock är synen kanske det viktigaste verktyget i robotens arsenal. Men då världen endast är partiellt observerbar samt oerhört dynamisk så måste roboten använda sig av oerhört smarta funktioner för att lyckas uppfatta omgivningen. Roboten måste också använda andra funktioner än synen för att bilda en så korrekt världsuppfattning som möjligt. Detta kan vara allt från gyroskop och accelerometrar till motoriska sensorer. Men låt oss börja med att undersöka synen. 5.1 Syn Roboten har till sitt förfogande två kameror (920p) monterade i huvudet som är kapabla att filma i upp till 30 bildrutor i sekunden. Nedan beskrivs hur roboten använder sin syn för att hitta och identifiera objekten på plan. Den implementerade metoden visade sig vara oerhört robust i olika ljusförhållanden vilket lönade sig då ljusförhållandena skiljde sig drastiskt under tävlingarna från hur det hade varit i lagets egna lokaler. Robotens syn kan delas in i följande moduler: objekt-, robot-, boll- samt mål- identifikation och förklaras i detalj nedan. 5.1.1 Objektidentifikation Denna process börjar med att identifiera planens kant. Detta görs med hjälp av ett färghistogram som markerar ut alla punkter där den gröna planen övergår i en annan färg vilket då potentiellt indikerar en plan- kant. En algoritm (RANSAC) används sedan för att avgöra var det är mest sannolikt att kanten går. RANSAC, eller RANdom SAmple Consensus, fungerar på så vis att den jämför varje punkt mot en förväntad modell (i vårt fall en rak linje) och om tillräckligt många punkter uppfyller kriteriet för tangering så har vi hittat vår kantlinje. Pseudokod kan beskådas i Bilaga 1 och en djupare genomgång av algoritmen kan hittas i 5.1.5 RANSAC. Vi kan se i Figur 3 dels punkterna och dels resultatet av 7
algoritmen, som markerat ut var den tror kanten är i form av en linje vilket också, i det här fallet, visar sig vara korrekt. Figur 3. Visar hur kantidentifikationen markerar ut alla punkter för potentiell kant samt algoritmens resultat av var den tror kanten är. När kanten är identifierad vet vi att samtliga av de intressanta objekten befinner sig under kanten, med undantag för målet. Vi kan därför markant minska bildytan och därmed data- bearbetningen genom att ignorera allt ovanför kantlinjen i de flesta följande analyser. Resterande identifikation utgår därmed ifrån bildrutan under kanten vilket gör kantidentifikationen till den viktigaste visuella identifikationen. Undantaget är mål- identifikationen som utgår ifrån bild- delen ovanför plankanten, men drar även nytta av kantidentifikationen då den endast behöver använda bildrutan ovanför plan- kanten. Vidare används en funktion som identifierar samtliga områden av intresse i bilden. Funktionen använder sedan färgen på dessa objekt för att avgöra vad det sannolikast är för typ av objekt området innehåller. Figur 4 visar hur det här kan se ut. De identifierade objekten skickas därefter vidare till respektive identifikations- funktion. Ett objekt som sannolikt är en boll skickas således 8
vidare till bollidentifikation för vidare bearbetning. Det är den processen som fastställer om det verkligen är en boll roboten ser. Samma gäller för de andra objekten. Frågan vi kan ställa oss då är hur vi kan fastställa om ett objekt verkligen är det som det antas vara. Figur 4. Visar identifikationen av objekt på plan. Notera att identifikation inte gjorts ovanför plan- kanten. 5.1.2 Robotidentifikation Robotidentifikationen baseras på att bilden av den potentiella roboten genomgår en rad sanity checks. Dessa är exempelvis att objektet överstiger ett tröskelvärde eller erhåller den rätta robot- formen. En vertikal linje kan ibland identifieras som potentiell robot, men klarar inte kravet för dimensions- förhållandet. Detta krav baseras på att ett objekt måste behålla ett visst förhållande mellan längd och bredd. En linje är inte tillräckligt bred för att klara av just det kravet och sorteras därför ut i det här steget lämpligt nog. Har ett objekt identifierats som en robot så behöver processen därefter bestämma robotens lagtillhörighet. Den gör detta genom att se till färg- bandet runt robotens midja. Färgen roboten ser jämförs med de två förbestämda lag- färgerna (som finns fördefinierade i robotens system). Då ljusförhållandena kan skilja sig drastiskt väljs det lag ut som färgen mest representerade. 9
5.1.3 Bollidentifikation Det kanske viktigaste objektet att identifiera är bollen. Då hela fotbolls- spelandet utgår från detta objekt så är det vitalt att roboten med så stor exakthet som möjligt kan avgöra vilket objekt som är bollen. Den gör detta genom att göra en rad tester på de identifierade objekt som tros vara en boll, antaget att det finns några sådana. Dessa tester bygger på att man kan identifiera kant- punkter på objektet och sedan se om dessa resulterar i ett cirkelformat objekt. Vidare körs flera sanity checks på objektet för att säkerställa att det är en boll. Dessa är exempelvis om bollen överstiger tröskelvärdet för den tillåtna storleken eller om bollens centrumpunkt befinner sig ovanför kantlinjen vilket, för båda av fallen, en boll givetvis inte får göra. Även om bollen har en, i sammanhanget, unik färg (jämfört med de andra objekten på plan) så behöver bolligenkänningen göra dessa specifika tester. Anledningen till detta är att objekt som inte är bollar trotts allt identifieras som potentiella bollar och måste elimineras på något sätt. Laget insåg tidigt behovet av rigorösa tester då de rosa lag- banden relativt ofta identifierades som potentiella bollar och skapade märkliga effekter. 5.1.4 Målidentifikation Precis som med de andra identifikationsprocesserna genomgår potentiella mål en rad sanity checks såsom att ribban befinner sig rimligt ovanför kantlinjen samt att förhållandet mellan höjd och bredd stämmer. Utöver det så bestäms måltillhörigheten baseras på färgen av målet. Målidentifikation görs på bildrutan ovanför kantlinjen. 5.1.5 RANSAC Låt oss reda ut varför RANdom SAmple Consensus, eller RANSAC, är metoden som används för att lösa det aktuella problemet, nämligen att identifiera en linje från våra punkter punkter som illustrerar en övergång från det gröna fältet till något annat. En vanlig metod att använda i denna typ av problem är Minsta 10
KvadratMetoden, hädanefter MKM. MKM minimerar kvadratsumman av avstånden mellan samtliga punkter och modellen man försöker skapa och kan på så sätt lista ut vilken modell som passar datan bäst. Låt oss gå igenom hur RANSAC fungerar innan vi begrundar varför just den och inte MKM används. RANSAC är en iterativ metod som provar sig fram och jämför sina resultat mot ett tidigare bästa för att till slut returnera den bästa modellen den fann, om den nu fann något. Algoritmen itererar k antal gånger och har inget hittats så går den vidare (returnerar nil) och antar att det inte finns någon linje i synfältet. RANSAC använder sig till skillnad från MKM bara av ett litet urval, n antal, punkter vid modellskapandet. Detta modellskapande kan exempelvis göras med hjälp av MKM. Dessa punkter slumpas fram från den tillgängliga datan och görs på nytt för varje iteration algoritmen körs igenom. Modellen som skapas utifrån de slumpade punkterna används i testningen av resterande punkter. Matchar tillräckligt många punkter, d antal, av de resterande punkterna modellen med ett acceptabelt avstånd, t, så sparas modellen. För varje iteration jämförs de olika modellerna och om algoritmen hittar en bättre lösning ersätts den tidigare sparade. Returneringen sker därför inte förrän efter att samtliga iterationer genomförts. Vi vet att roboten har en begränsad beräkningskapacitet och att vi helst vill ha så effektiva algoritmer som möjligt. Vi kan också se att RANSAC är k antal gånger så beräkningskrävande som MKM. Vad finns det då för vinning med att använda RANSAC istället för MKM? Antag att brus i bilden skapar en grupp punkter som sitter tätt tillsammans utanför den verkliga linjen. Se Figur 3 för exempel på detta. Vi kan benämna denna typ av problem som worst case. MKM skulle då föröka använda dessa punkter som en del av den resulterande linjen, vilket kunde vara fel. Genom att slumpmässigt plocka ut en liten delmängd av punkter, minskar man påverkan av sådana grupper av bruspunkter då den resulterande linjen beräknas. Denna slumpmässiga delmängd kan vara effektiv då vi vet att majoriteten av våra 11
punkter borde ligga på linjen vi försöker identifiera. RANSAC används förmodligen för att gardera sig mot worst case situationer och att på så vis få ut ett så exakt resultat som möjligt även om det kräver lite mer beräkning. Ett best case skulle vara en situation där samtliga identifierade punkter ligger exakt där de borde i vårt fall att punkterna följer en rak linje längs kanten. RANSAC är i ett best case k gånger sämre än MKM, beräkningsmässigt, men då man nästan aldrig utgår från en sådan situation så väljs RANSAC som lösningen på problemet. 5.2 Sensorer Roboten har utöver syn olika typer av sensorer, bland annat två accelerometrar, två gyroskop, en sonar, för att bara nämna ett fåtal. Dessa sensorer används för att bestämma kamerans position relativt roboten. Systemet kan exempelvis veta om det är dess egna kroppsdelar som synd i kamerabild och därigenom exkludera de delarna ur analysmaterialet. Skulle den inte kunnat göra detta så skulle det kunna skapas märkliga identifikationer av objekt som befinner sig direkt framför roboten objekt som inte går att springa ifrån. Onekligen ett handikappande attribut tur det inte finns. 6. Positionering Roboten har nu identifierat samtliga objekt i sin periferi, men den vet fortfarande inte var den befinner sig i förhållande till objekten i fråga. Det är därför dags att beräkna var den befinner sig. I grunden gör roboten en s.k. död räkning, alltså den beräknar sin position med hjälp av sin relativa förflyttning med riktning och avstånd. Denna position kan vi att kalla den estimerade positionen. Roboten har i sitt interntillstånd en räknare som håller koll på vart den borde befinna sig baserat på antalet tagna steg samt i vilken riktning dessa steg togs. Denna metod är inte helt optimal och behöver därför feedback från sina percept för att kunna uppdatera sitt interntillstånd. 12
Figur 5. Visar hur positionering fungerar när vi bara ser en stolpe. Den svarta pilen visar hur vi räknar ut vår nya position genom att använda vår estimerade position. Roboten har en rad olika metoder i sin arsenal för att kunna räkna ut sin position givet visuell data. Dessa metoder är skapade för separata situationer och vilken som används baseras på vad roboten ser. Ser roboten i sin periferi exempelvis bara en stolpe kan den teoretiskt sett befinna sig var som helst på en cirkel med centrum på stolpen på längden r (radien). Se Figur 5. Vet roboten heller inte vilken stolpe det är den ser (exempelvis om övre delen av stolpen/ribban är gömd) så kan den befinna sig på längden r runt två cirklar, en runt varje stolpe. Vi måste i det fallet använda tidigare estimerad positioneringsdata för att avgöra vilken stolpe det är som vi tror att vi ser. När detta fastslagit kan vi gå vidare. Vi kan i det här fallet beräkna vår riktiga position genom att använda den estimerade positionen och dra en linje till den närmast möjliga observerade punkten. Se Figur 5. Vi antar på så vis den minsta felmarginalen i vår estimerade position samtidigt som vi skapar en så exakt ny positionering vi bara kan. Vi får nöja oss med en sådan position tills vi vid ett senare tillfälle kan skapa oss en mer exakt positionering. 13
Roboten har till sitt förfogande en mängd olika funktioner som kan användas i praktiskt taget alla möjliga situationer för att beräkna sin position. Detta kan vara allt från triangulering till linje- matchning. Den kan alltså använda sig av två målstolpar och avståndet till en av dessa för att triangulera sin position respektive matcha de linjerna den ser mot en intern representation av planen för att på så vis räkna ut var den borde befinna sig. 7. Kommunikation Kommunikation sägs vara en av de viktigaste aspekterna i den s.k. riktiga fotbollen och vi kan lätt anta att samma sak gäller för våra kära robotar. Robotarna är alltid uppkopplade trådlöst mot ett närverk där de kan dela information mellan sina lagkamrater. Robotarna kan berätta för sina lagkamrater dels var de själva befinner sig, men även var exempelvis bollen och motspelare befinner sig. Det trådlösa nätverket används inte bara för kommunikation robotarna emellan, den används dessutom för att skicka ut taktiker och liknande från huvuddatorn. Detta gör att robotarna tillsammans skapar en typ av hive- mind som i sig självt kan se en betydligt större del än en enskild robot skulle kunnat göra. 8. Beteende Nu har robotarna sett och uppfattat situationen runt sig och det är dags att agera utifrån detta på ett fördelaktigt sätt. Robotarna kan utföra en del olika basala handlingar; såsom att gå, sparka (bollen) samt göra inkast. Dessa utförs i lämpliga tillfällen. Målvakten kan även kasta sig genom att lägga sig i vägen för bollen. Om målvakten har kastat sig, eller en spelare ramlat för den sakens skull, så måste roboten kunna resa sig upp. Om den genom sina gyroskop känner att den ligger ner kommer den att försöka resa sig upp genom en tidigare preciserad 14
serie med rörelser. Utöver dessa basala handlingar kan även spelarna anta olika roller som dikterar vilka typer av handlingar som kommer att utföras. 8.1 Olika roller Den kanske viktigaste rollen är målvakten, då denne är det sista som står mellan motståndarlaget och målet. Målvakten är den enda spelaren som är fast med sin position den kan alltså inte byta och bli utespelare. Målvakten kommer att försöka placera sig mellan bollen och målets mitt (enligt en tänkt tangerande linje), där den kan täcka bäst samtidigt som den kan se hela planen. Då den har konstant uppsikt över planen kan den även sända ut bollens position till de andra i laget. Målvakten kan då den tror att ett skott skjutits mot mål dessutom försöka rädda genom att lägga sig i vägen för bollen eller kasta sig som man säger i fotbollsvärlden. De två andra spelarna i laget kan anta rollen som antingen anfallare eller understödjare. Vilken av robotarna som får vilken roll beror på vilken som befinner sig i det mest fördelaktigaste läget i förhållande till bollen. En heuristik med bollavstånd och rotationsvinkel används för att avgöra vilken som blir vad. Rotationsvinkeln avser den grad som en robot är vinklad mot motståndarnas mål ryggen mot sitt egna mål är mest fördelaktigt. Rollerna ändras kontinuerligt då bollen befinner sig bättre i fördel för olika spelare i varje instans. Dock implementerade laget en viss mån av säkerhet så dessa byten av roller inte skulle ske alltför lätt. Då avståndsbedömningen inte är hundraprocentig implementerades detta för att byten av roller inte skulle kunna ske baserat på fel- mätningar. Kan ingen signifikant skillnad i avstånd till bollen mätas robotarna emellan ges anfallar- rollen till båda robotarna till dess att avståndet till bollen förminskats tillräckligt så en eventuell skillnad i avstånd går att räkna ut och inte längre är marginell. Anfallaren kan spela både defensivt och offensivt. Bollen kan sparkas iväg från den egna planhalvan om risken bedöms hög. Vidare kan den välja att skjuta eller dribbla in bollen i mål. Understödjarens roll är att hålla sig lite i bakgrunden och 15
därigenom inte hindra anfallaren. Den ska också försöka hålla koll på bollen samt hålla sig vänd den ifall anfallaren skulle tappa bort den (Det händer väldigt ofta, dessvärre). 9. Diskussion RoboCup är sannerligen ett intressant forskningsområde som kommer se stora framsteg i framtiden. Jag är imponerad över hur mycket arbete som krävs för något om kan verka så trivialt att sparka en boll faktiskt kan vara så svårt. Jag som dessutom kan tycka det är kul att titta på vanlig fotboll ser en stor charm i robotfotboll och kan förstå att det är och kan bli en ännu större åskådarsport. Genom att studera runswifts bidrag har jag fått en djupare förståelse för hur en fotbollsspelande robot skulle kunna utformas och hur morgondagens robot- sport kan se ut. Jag tror personligen att vi mycket väl kan få se robot- människa fotboll år 2050. Den nuvarande fotbollen, om man kan kalla det det, som utövas inom RoboCup kan verka nedslående för sannolikheten för att en sådan turnering skulle ske inom en sådan snar framtid. Om än intelligent, så ingenting i närheten av vad som faktiskt krävs av en s.k. agent för att kunna spela fotboll mot en människa. Jag hävdar däremot att de fysiska förutsättningarna ännu inte är rätt. Det är inte den mentala kompetensen hos personerna som bygger de nuvarande agenterna som begränsar, snarare deras val av metoder. När ett system byggs upp görs detta nästan uteslutande manuellt och systemet måste till stora delar hård- kodas och specificeras i förväg. Då fotbollsspelande är en så pass avancerad procedur så krävs det mer än if- och else- satser för att roboten ska klara av det bra. Skulle man istället förlita sig mer på exempelvis maskininlärning och agenter som själva kan förbättra sina system så skulle detta resultera i betydligt bättre fotbollsspelare 7. Problematiken som uppstår blir då den oerhörda processorkraft som krävs för att detta skulle gå att genomföra. 7 http://www.comp.leeds.ac.uk/mscproj/reports/0304/duong.pdf.gz 16
Vi kan med Moore s lag 8 estimera att vi år 2050 kommer ha en processorkraft som är upp emot en miljon gånger snabbare än den idag. Visserligen har vi på senare tid nått den magiska gränsen där våra transistorer inte kan bli mycket mindre och att Moore s lag därför skulle kunna upphöra att gälla. Oavsett resultat så kan vi med säkerhet säga att vi kommer att ha tillräckligt med beräkningskapacitet i framtiden. Med denna enorma ökning av processorkraft blir det därför mer och mer aktuellt att använda sig av spännande metoder såsom maskininlärning och genetiska algoritmer för att utveckla fotbollsspelande robotar. Avslutningsvis kan man säga att RoboCup är ett lärorikt och spännande forskningsområde som faktiskt kan bidraga till andra delar av vetenskapen allt genom att spela lite fotboll. Det är sannerligen något jag personligen kommer följa lite närmre i framtiden. Den där matchen 2050 kommer för övrigt bli riktigt spännande, synd bara att man ännu inte kan köpa biljetter. 8 http://en.wikipedia.org/wiki/moore's_law 17
Referenser 1, http://www.cse.unsw.edu.au/~robocup/2010site/reports/report2010.pdf 2012-09 2, http://www.robocup.org/robocup- soccer/ 2012-09 3, http://www.tzi.de/spl/pub/website/downloads/rules2010.pdf 2012-09 4, http://www.robocup2010.org/home_results.php 2012-09 5, http://www.youtube.com/watch?v=z5-11awt0rw 2012-09 6, http://www.tzi.de/spl/pub/website/downloads/challenges2010.pdf 2012-09 7, Tran Duc Duong, Applying mahine learning methods to imporve player s behaviours in Robocup soccer simulation, 2003/2004 8, http://en.wikipedia.org/wiki/moore's_law 2012-09 9, Stuart Russel, Peter Norvig, Artificial Intelligence A Modern Approach, Thrid Edition, Prentice Hall, 2010 18
Bilaga 1 RANSAC Pseudokod Pseudokod hämtad från Wikipedia; http://en.wikipedia.org/wiki/ransac 19