robocup - ida.liu.se · aldebaran nao bild 1. aldebaran nao. (aldebaran robotics) bakgrund den...

18

Click here to load reader

Upload: buihanh

Post on 28-Feb-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

RoboCup Standardplattformsligan

Artificiell Intelligens 2, 729G11 Robin Rörberg

Fördjupningsarbete, HT 2009 870430-4859

Linköpings Universitet Robro483

Page 2: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

Page 3: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483 Sammanfattning Northern Bites tävlar i standardplattformsligan i RoboCup, tävlingen där robotar möts på

fotbollsplanen. Laget har mött stora framgångar och varit på prispallen flera gånger. I detta

fördjupningsarbete undersöker jag några tekniker de använder i sina robotar och hur dessa

lösningar fungerar.

Page 4: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483 Innehåll

Syfte .......................................................................................................................................1

Bakgrund RoboCup ................................................................................................................1

Klasser ...............................................................................................................................1

Aldebaran Nao .......................................................................................................................3

Bakgrund ............................................................................................................................3

Design ................................................................................................................................3

Mjukvara ............................................................................................................................3

Northern Bites ........................................................................................................................4

Bakgrund ............................................................................................................................4

Syn .....................................................................................................................................4

Steg ett Planens kanter .................................................................................................5

Steg två - Färgövergångar ...............................................................................................6

Steg tre - Navigationspunkter ..........................................................................................6

Steg fyra - Målet .............................................................................................................6

Steg fem - Bollen ............................................................................................................7

Steg sex Sidlinjer och hörn ...........................................................................................8

Gång ...................................................................................................................................9

Beteende ........................................................................................................................... 10

FSA .............................................................................................................................. 10

Player ........................................................................................................................... 11

Tracking ....................................................................................................................... 11

Navigation .................................................................................................................... 12

Roller............................................................................................................................ 12

Diskussion ............................................................................................................................ 12

Litteraturförteckning ............................................................................................................. 14

Page 5: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

1

Syfte

Eftersom robotar alltid varit den del som för mig representerat AI kändes det självklart att

dyka ner i ämnet när denna kurs presenterades. RoboCup visade sig innehålla en blandad

kompott av teknologier och tillämpningar spännande nog att gräva djupare i. Bland de olika

ligor som finns tycker jag standardplattformen är den som tilltalar mig mest, då den ger

möjligheten till ett otal olika lösningar av samma problem med samma verktyg och hårdvara.

Syftet på uppsatsen är att beskriva några av de bakomliggande teknologierna som använts av

ligans silvermedaljör under RoboCup 2009.

Bakgrund RoboCup Iden om fotbollsspelande robotar föddes 1993. I juli fyra år senare gick den första RoboCup

av stapeln i Nagoya, Japan. Tanken bakom att robotarna spelar just fotboll ligger i att man

genom att skapa ett gemensamt problemområde där en stor mängd teknologier kan bli

studerade och applicerade tillsammans. (RoboCup.org, 2009)

K lasser

RoboCup Soccer är indelad i fem olika ligor inom vilka man kan delta:

Simulation Detta är en av de äldsta ligorna. Inom simulationsligan tävlar lagen med

självständiga agenter som bildar lag med 11 spelare i varje. Här ligger fokus på att

bygga intelligenta agenter som kan samarbeta för att föra laget till seger. Ligan består

i sig av ett antal olika ligor beroende på hur simulationerna representeras: 2D, 3D, 3D

Development och Mixed Reality. Den sistnämnda använder sig av robotar i ett par

centimeters storlek för att representera simulationerna och knyter på så sätt ihop

simulationen med verkligheten.

Små robotar I denna liga får robotarna inte vara större än 18 centimeter i diameter

och spelar med orangea golfbollar på en 4.5x6.5 meter stor plan. Lagen får vara upp

till fem robotar i varje och de arbetar med ett delvis distribuerat delvis centralt system

och fokus ligger på samarbete mellan agenterna.

Mellanstora robotar Här får robotarna vara upp till 50 centimeter i diameter och

spelar på en plan på 12x18 meter. Lagen får bestå av upp till sex robotar och alla

Page 6: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

2

sensorer måste vara inbyggda i robotarna, det vill säga att man endast får använda

lokala perceptorer, och robotarna kan kommunicera genom ett trådlöst nätverk.

Standardplattform I den här ligan får lagen tillgång till identisk hårdvara, med andra

ord får alla likadana robotar. Det gäller nu att utforma den bästa mjukvaran till dessa

robotar för att vinna. Från och med 2008 har man bytt plattform från den fyrbenta där

man arbetar med Sonys robothund AIBO till den tvåbenta Aldebaran Nao som nu

används.

Humanoid Här tävlar människoliknande robotar i två underligor, KidSize (30-

60centimeter långa) och TeenSize (100-160centimeter långa). Här gäller det för

robotarna att kunna hålla balansen när de går och sparkar bollen samtidigt som de ska

veta var på planen de är och vart motståndare och medspelare befinner sig. Inom

humanoidligan finns även ett par tekniska utmaningar som robotarna kan tävla inom.

Page 7: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

3

Aldebaran Nao

Bild 1. Aldebaran Nao. (Aldebaran Robotics)

Bakgrund

Den robot som används i standardplattformligan är utvecklad av det franska företaget

Aldebaran Robotics. Projekt Nao lanserades 2005 med målet att skapa en humanoid robot

med avancerade mekaniska och kognitiva färdigheter som är tillgänglig för allmänheten till

ett överkomligt pris.

Design

Nao är 58 centimeter hög och väger 4.3 kilo och har en batteritid som ger ungefär 90 minuter

av självständiga handlingar i världen. Han kan röra sig med 25 frihetsgrader, med detta menas

att roboten kan röra sig eller sin leder i 25 olika riktingar . (Russel & Norvig, 2003) En mängd

sensorer hjälper honom att navigera och utforska världen, däribland två CMOS

digitalvideokameror, tvåkanals sonar samt diverse accelerometrar, mikrofoner och

tryckkänsliga sensorer. Nao kan kommunicera via trådlöst nätverk, IR-sensorer eller med

röstkommandon.

M jukvara

Aldebaran Nao är utrustad med en specialdesignad version av operativsystemet Linux och kan

styras med det medföljande programmet Choregraphe eller med ett flertal olika programspråk

Page 8: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

4

såsom Python eller C++. Genom att implementera moduler med sin egen kod kan användaren

få full kontroll av Nao ända ner på motornivå och få honom att göra allt från att gå runt till att

plocka upp saker eller till och med spela fotboll. Det finns också programvara som kan

simulera Nao vilket gör att användare kan testa sin kod virtuellt innan den laddas över till

roboten. Inbyggt i Nao finns även mjukvara för färg- och mönsterigenkänning,

hinderigenkänning med sonar och ljudlokalisering med mera.

Northern Bites Northern Bites kom tvåa i RoboCup i Österrike 2009 och förlorade i finalen mot det tyska

laget B-Human. Större delen av mitt arbete och i allra högsta grad detta avsnitt grundar sig på

Northern Bites rapport för år 2008. (Chow, o.a., 2008)

Bakgrund

Northern Bites grundades 2005 av Eric Chown på Bowdoin College i Brunswick, USA. Laget

bestod till en början endast av Chown och en student men har på senare tid växt till sig och

blivit avsevärt större. En del av lagets filosofi är att finna egna lösningar till de problem som

uppstår och att inte låna kod från andra lag, något som annars är mycket vanligt inom

RoboCup. Northern Bites har valt att programmera sina robotar i huvudsak med Python, men

även C++ och all kod som är stabil nog att användas ligger också uppe på deras hemsida

http://github.com/northern-bites/

Syn

Målet med fotboll är att göra mål, fler än motståndarna i alla fall. För att kunna göra mål

behöver man veta två saker, var finns bollen och vart står målet. För en människa handlar

detta om att vrida på huvudet litegrann och eventuellt blinka några gånger. För en robot är det

inte riktigt lika enkelt.

Page 9: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

5

Bild 2. Fotbollsplanens layout. (RoboCup Standard Platform League (Nao) Rule Book, 2009)

De flesta lag i RoboCup löser synen i flera steg. Det första steget är att skanna varje pixel för

sig och sedan lägga dem i kategorier efter vissa färger eller så blir de markerade som

odefinierade. Detta kallas körlängds inkodning och ger klumpar eller längder med likfärgade

pixlar som sedan kan matchas för objektigenkänning. Den största fördelen med denna metod

är dess enkelhet, nackdelen är att större delen av synfältet består av pixlar som ska markeras

som odefinierade, med andra ord onödig information, vilket gör metoden ineffektiv.

Northern Bites lösning till detta är att syna problemet med en mer kognitiv infallsvinkel. För

att effektivisera det hela skulle systemet komma ihåg vart objekt befinner sig i ett sorts

korttidsminne och på så sätt inte behöva skanna hela fältet hela tiden. Den söker då efter

gränserna på spelplanen för att sedan söka upp mål och navigationspunkter. Detta kan då bli

styrt av korttidsminnet och kunskap om fotbollsplanens uppbyggnad och geometri. Laget fick

till slut fram en lösning som tacklar problemet i sex steg, men de lyckades tyvärr inte

implementera alla de nya idéer de hade. Därför är sexstegslösningen en blandning av gamla

och nya tekniker.

Steg ett Planens kanter

Först söker man efter om spelplanens kanter finns i synfältet. Detta görs genom att söka efter

kluster med gröna pixlar. Förutom att kategorisera pixlarna efter färg delas färgerna upp i

hårda och mjuka färger. Detta beror på att kameran ibland har problem att skilja mellan olika

färger i olika ljus beroende på

Page 10: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

6

De mjuka färgerna är då en kombination av

två färger pixeln skulle kunna vara, såsom blågrön eller gulvit.

Steg två - Färgövergångar

Sedan kör man en sorts körlängds inkodning och skannar varje pixel nedifrån och upp,

samtidigt som detta görs letar systemet efter specifika färgövergångar, som till exempel blå

till gul för att på så sätt skapa en guide för var objektigenkänningen ska utföras.

Steg tre - Navigationspunkter

Nästa steg går ut på att finna navigationspunkter på de ställen där färgövergångarna skedde.

När objektigenkänningen sker här så räknas de mjuka färgerna in som den mest passande

färgen för att kunna identifiera objekten, skulle de pixlar med mjuka färger överstiga en viss

procent av de totala pixlarna så blir matchningen negativ.

Steg fyra - M ålet

I steg fyra används informationen om navigationspunkterna för att söka upp målen. Ska laget

till exempel anfalla det blåa målet söker den efter en blå målstolpe. Sedan skannas stolpen för

att finna dess gränser. Detta görs genom att först skanna den från den understa blåa pixeln till

den översta. Här räknas även pixlar som inte matchar färgen, men endast upp till ett visst

gränsvärde. När detta värde är uppnått markeras den plats där den sista korrekta pixeln sågs.

Man har nu fått fram toppen och botten på rektangeln som utgör målstolpen. Sedan utgår man

från mitten av denna och skannar åt höger och åt vänster. För att säkerställa kvaliteten på

rektangeln görs efteråt ett antal skanningar där man säkerställer att rektangeln innehåller

tillräckligt hög procenthalt med pixlar av korrekt färg. Detta gör att man får en rektangel med

en solid kärna av rätt färg.

När man har denna rektangel återstår uppgiften att ta reda på vilken sida av målet stolpen står

på. Eftersom roboten kan stå i en mängd olika vinklar gentemot stolpen kan det vara svårt att

lösa hur man ska finna den andra stolpen. Först söker man efter ett kluster pixlar med samma

färg som stolpen stort nog att vara den andra stolpen, hittar man inte detta undersöker man om

det går att se längre ut på ena sidan av planen än andra. Till sist söker man efter om det finns

mer av stolpfärgen på ena sidan eller andra. När man vet vilken sida den stolpe man funnit

finns på är det relativt enkelt att finna den andra stolpen. Sedan upprepas proceduren med att

skanna nerifrån och upp och sedan inifrån och ut för att få fram en godkänd rektangel.

Page 11: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

7

Bild 3. En vinkel som kan skapa problem, både vid sökning efter den andra stolpen och efter

målets baksida. (Chow, o.a., 2008)

För att få ett klart skott mot mål söker man sedan efter baksidan av målet. Detta görs genom

att leta efter den största färgsamlingen mellan målen som inte är högt upp nog att vara ribban.

Finner man en sådan ansamling som inte är blockerad så har man skottläge, men då behöver

man ju bollen.

Steg fem - Bollen

För att söka efter bollen används så kallad klumpning. Detta går ut på att man tar alla de

kluster som skulle kunna vara potentiella bollar, i det här fallet grupperingar av orangea

pixlar, och kör dem genom en mängd filter för att ta reda på vilken som är den verkliga

bollen. Först skiljer man på små och stora potentiella bollar, i stora kluster tillåts en större

mängd pixlar med mjuka färger än i de små eftersom det är lättare att ta fel på små föremål.

Därefter undersöks var bollarna finns inom synfältet i förhållande till planens horisont. Om en

boll befinner sig ovanför horisonten blir den ignorerad, likaså om en liten boll befinner sig

långt ned på en bild med horisonten högt, detta eftersom bollen i så fall skulle vara nära

roboten och således vara stor. Nästa grupp med filter undersöker hur rund bollen är genom att

skanna från mitten på klustret och ut i åtta riktningar, detta tar också hänsyn till om bollen är

skymd av någonting och försöker då ta reda på vad det är som står i vägen. Den sista gruppen

Page 12: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

8

filter säkerställer vad som finns runt omkring bollen, detta för att inte ta fel på till exempel en

röd yta på en motspelare och en liten boll. Detta gör man genom att söka efter gröna pixlar

runt bollen eller att det inte finns röda pixlar nära den. När man väl funnit bollen mäts

avståndet till den med hjälp av dess storlek.

Steg sex Sidlinjer och hörn

Det sjätte steget innebär att undersöka spelplanens sidlinjer och hörn. För att förenkla

identifieringen har man valt att dela upp linjer och hörn i två klasser vardera: VisualLine och

ConcreteLine respektive VisualCorner och ConcreteCorner där de visuella står för de

uppfattade linjerna och hörnen medan de konkreta står för de fysiska linjerna och hörnen med

sina bestämda platser på planen. Detta görs genom att söka efter punkter som ligger i mitten

på ett vitt område omgivet av grönt. Genom att hålla reda på om färgövergångarna går från

vitt till grönt eller vise versa vet kan roboten sedan finna en mittpunkt på linjen.

Dessa punkter kopplas sedan samman till linjer med en girig algoritm som fungerar genom att

först lägga in alla punkter i en lista sorterat på x-värdet. Den tar sedan den första punkten i

listan som startpunkt för linjen och lägger den i en separat lista. Sedan kollas alla punkter i

den första listan mot linjen och de som matchas läggs till fram till skillnaden mellan x-värdet

på startpunkten och de efterföljande värdena i listan blivit för stort. Om den nya listan med

linjen innehåller tre eller fler punkter används dessa till att skapa en VisualLine och de tas bort

ur den första listan. Annars nås slutsatsen att ingen godkänd linje har sitt ursprung i

startpunkten och proceduren upprepas med nästa punkt i listan.

De linjesegment man sedan fått fram matchas sedan mot varandra för att koppla ihop de linjer

som passar i vinklar till en längre sidlinje. Detta för att koppla ihop linjer som exempelvis är

delvis skymda av en motståndarrobot. Sedan gås de punkter som inte passat in på en linje

tidigare igenom ännu en gång för att undersöka om de passar in på någon av de befintliga

linjerna. Vissa linjer kan fortfarande vara felaktigt tolkade när något skymmer dem och för att

kontra detta förlänger nu roboten de linjer den ser för att undersöka om fler linjer kan

sammankopplas.

Därefter kollas alla linjer efter skärningspunkter sinsemellan och ifall vinkel mellan dessa är i

närheten av 90 grader. I så fall sparar den hörnen men håller reda på vilken av de tre

kategorierna, inner L, ytter L eller T, hörnet tillhör. På så sett kan den lättare avgöra vilket

ConcreteCorner det är den ser, vilket är nästa steg givet att den inte står i mittcirkeln. Detta

måste kontrolleras eftersom linjerna i mittcirkeln lätt feltolkas som hörn och därför görs flera

Page 13: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

9

tester för att säkerställa att det inte är den man ser. Om så inte är fallet går man vidare till att

identifiera vilka hörn det är man ser.

Till detta använder Northern Bites följande algoritm:

For each corner identifed in the image (VisualCorner):

Get a list of all possible corners on the field (ConcreteCorners) for a given type

For each ConcreteCorner that the corner could possibly be:

For each visible object (beacon or goal post):

Estimate the distance between the corner and the visible object

If the estimated distance is too far from what the actual distance would be:

Throw out the ConcreteCorner currently being evaluated

När listan ConcreteCorner är en (1) stor vet man vilket hörn det VisualCorner man

undersöker verkligen är.

Gång

Ett gammalt ordspråk säger att man måste lära sig gå innan man kan springa. Detta gäller i

dubbel bemärkelse för fotbollspelande robotar, som förutom att röra sig snabbt på plan måste

de kunna hålla balansen när de sparkar på bollen eller stöter ihop med motspelare.

Northern Bites försökte inför RoboCup 2009 att ta fram en egen gångstil till sina robotar men

använde aldrig denna i tävlingssammanhang. Tanken bakom den nya gångstilen var att man

skulle få fram en stabil gång som samtidigt skulle kunna röra sig i flera riktningar. (Strom,

Slavov, & Chown, 2009)

I gångstilen man provade rörde sig robotens ben genom tre tillstånd i formen av en oval.

Genom att ändra ovalens form kunde man då ändra riktningen i vilken roboten rörde sig.

För att räkna på rörelserna hos robotens effektorer, till exempel benen, används framåt och

inverterad kinematik. Framåt innebär att man räknar ut slutpositionen för en effektor givet

ledernas vinklar. Detta går relativt enkelt att lösa med penna och papper. Inverterad kinematik

är inte riktigt lika enkelt. Detta är raka motsatsen till framåt kinematik och går inte att lösa

symboliskt. Med processen kan man räkna ut vilka vinklar som krävs hos lederna för att få en

önskad position hos en effektor. (Waldron & Schmiedeler, 2008)

Vill man nå målpositionen. T, för en effektor med tre frihetsgrader får man T=(x, y, z). Om

man har ett set leder j0 kan man sedan med hjälp av framåt kinetik hitta den nuvarande

Page 14: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

10

positionen, t0, och då räkna ut det nuvarande felet som är avståndet mellan den nuvarande

positionen och målpositionen e(ti) = (T ti)2. Det ursprungliga felet kallar man e(t0). Nu söker

man efter set med leder j2 n där kombinationerna av ji har ett lägre fel e(ti) fram tills e(tn)

0. Effektorn har då nått målpositionen.

Men efter flera försök att ta fram en egen gångstil, dock utan att hitta tillräcklig stabilitet

valde man att använda den inbyggda gångstil som kommer med Aldebaran Nao.

Beteende

När roboten kan se och röra på sig måste den på något sätt få användning för sina färdigheter.

Northern Bites använder sig av en FSA (Finite State Automaton) struktur för att styra sina

robotars beteenden. Finite State Automaton är en modell för att beteende bestående av ett

ändligt antal tillstånd, förändringar mellan tillstånd och handlingar som åstadkommer dessa

förändringar. (Wikipedia, 2009)

FSA

Genom att först skriva en abstrakt klass som följer en FSA-struktur och lägga funktionerna

run() och addStates() tillsammans med funktioner för att byta tillstånd och diverse

hjälpfunktioner skapade man ett sorts skelett för lagets artificiella intelligens. Varje beteende

består sedan av två filer, en FSA-fil och en tillståndsfil. FSA-filen bygger på den abstrakta

klassen som skrevs tidigare och har i uppgift att köra addStates() som lägger till alla möjliga

tillstånd för det beteendet i en lista för att sedan kunna användas. Funktionen run() kallas

sedan med jämna mellanrum och utför det nuvarande tillståndet. Tillståndsfilen innehåller alla

möjliga tillstånd i form av funktionen. Nedan är ett exempel på ett sådant tillstånd:

def spinLeft(player):

if player.firstFrame():

turn = motion.WalkTurn(150.,30)

player.brain.motion.setNextWalkCommand(turn)

elif (player.shouldWalkForward()):

return player.goLater('walkForward')

return player.stay()

Page 15: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

11

För att byta mellan olika tillstånd används goNow(), goLater() och stay(). Dessa gör så att

agenten byter tillstånd direkt, i nästa beteendecykel eller behåller nuvarande tillstånd.

Player

Det beteende som ligger högst i hierarkin är Player. Detta är det beteende som sköter

kontrollen över roboten och de andra beteendena genom funktionen switchTo(nyttTillstånd). I

Player ingår även ett antal roller och underroller för att styra roboten såsom ATTACKER eller

DEFENDER med underroller som kick och approachBall med flera.

När man spelar en match finns en Game Controller som styr matchen och startar och stoppar

robotlagen. Detta gör den genom att anta ett av fem olika tillstånd som robotarna sedan ska

anpassa sig efter.

1. gameInitial: Här sitter roboten kvar i sin ursprungsposition.

2. gameReady: Roboten reser sig upp.

3. gameSet: Roboten vrider på huvudet tills den upptäcker bollen.

4. gamePlaying: Detta är tillståndet där matchen spelas. Här har Northern Bites valt att dela

in det hela i tre tillstånd.

Hitta bollen

Gå till bollen

Gå genom bollen. För att ta med sig bollen går roboten helt enkelt rakt över den och

hoppas på att den får med sig den, men för säkerhets skulle hoppar den med jämna

mellanrum tillbaka till tillståndet för att hitta bollen.

5. gameFinished: När matchen är slut sätter sig roboten ner.

Utöver dessa tillstånd kan även GAME CONTROLLERN skicka penalized till enskilda

robotar vilket gör att de inte får röra sig så länge tillståndet gäller. (RoboCup Standard

Platform League (Nao) Rule Book, 2009)

T racking

FSA beteendet för spårning heter självklart nog Tracking. Det är ansvarigt för all kontroll av

huvudet såsom att vrida på det eller följa ett föremål med blicken. Den har tillstånd som

tracking och scan. Tillståndet tracking kan följa alla sorters visuella föremål såsom bollar,

navigationspunkter eller motståndare. Genom att göra spårning till ett eget beteende förenklar

Page 16: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

12

man väsenligt vid testning och utveckling av nya algoritmer. Dessutom är det mycket

användbart att snabbt kunna byta mellan att spåra bollen och navigationspunkter i matchspel

så kan spårningen av målstolparna användas för att mäta avstånd som roboten har rört sig.

Navigation

Beteendet för navigation tar hand om förflyttningen av roboten. Detta gör så att de högre FSA

beteendena kan bry sig om vart roboten ska och när, aldrig hur den ska ta sig dit.

Roller

Som tidigare nämnt finns det ett antal roller som robotarna antar vid lag spel. Dessa roller är

styrda av överliggande formationer som i sin tur är styrda av lagets strategi. Strategierna

bestämmer alltså vilka formationer som ska användas. Laget startar alltid i formationen

kickoff Play men den som används oftast när matchen väl dragit igång är Normal. När

robotarna använder formationen kickoff Play så ställer sig den första i en defensiv position,

den andra jagar bollen och den tredje rör sig ner på flanken och gör sig öppen för en passning.

Rollerna som robotarna antar blir då alltså i tur och ordning DEFENDER, CHASER och

ATTACKER.

Dessa roller är också de som används i formationen Normal. Vad som sker här är att

robotarna kan byta roller med varandra under matchens gång efter behov. Den robot som har

rollen CHASER är den som har kortast tid till bollen, vilket så klart varierar under matchens

gång. Därför sänder robotarna alltid ut sin chase time, den tid den beräknar ha till bollen, till

sina lagkamrater. Om en robot då skulle ha en kortare chase time än den som har CHASER-

rollen så byter de roll om skillnaden är tillräckligt stor. Dock så har Northern Bites skapat ett

antal regler för att förhindra att robotarna inte klarar avgöra vem av dem som borde har rollen.

Dessa regler går ut på att ranka robotarna så att de med högre rank får företräde till att jaga

bollen. Det finns också ett gränsvärde där det måste vara tillräckligt stor skillnad innan de

byter.

Diskussion Allt eftersom jag samlat och gått igenom information för det här arbetet har respekten växt för

de som tävlar i RoboCup. Det ligger en otrolig mängd arbete bakom de robotar som ställer

upp i tävlingarna, till exempel använde Northern Bites sig av 3252 rader med if-satser för att

identifiera vilket hörn roboten tittade på för tillfället. Alla som någon gång knackat kod kan

Page 17: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

13

med viss skräck tänka sig tiden det tog att skriva denna enda funktion, sedan ska flera hundra

funktioner till in i mixen.

Det kan tyckas onödigt att lägga en massa tid och pengar på robotar som ska spela fotboll,

men då missar man poängen. Genom att ha ett problem som sammanför problemområden som

kamerasyn, navigation, tvåbenad gång och interaktion mellan agenter kan man göra oerhörda

framsteg. Förutom att samla forskare från flera områden i samma lag som arbetar ihop och

byter idéer så hjälps man även åt mellan lagen. Det är mycket vanligt att nyare lag lånar stora

kodstycken från de mer rutinerade och sedan anpassar den till att passa sin egen spelstil och

sina lösningar. Detta gör att samma problem kan synas med ett otal olika ögon och

lösningarna blir smartare och effektivare för varje år.

Trots allt detta tror jag inte att målet att slå ett människolag år 2050 är realistiskt. Det skulle

nog vara möjligt om man bortser från kravet att det skulle vara på lika villkor, men med

människoliknande perceptorer och två ben skulle människorna nog vara svårslagna. Å andra

sidan är det faktiskt 40 år kvar och för så länge sedan sade man att en dator skulle slå en

människa i schack, vilket nu är ett faktum, även om man trodde att de då skulle ske inom tio

år. Fast schackspelare lägger inte krokben.

Page 18: RoboCup - ida.liu.se · Aldebaran Nao Bild 1. Aldebaran Nao. (Aldebaran Robotics) Bakgrund Den robot som används i standardplattformligan är utvecklad av det franska företaget

729G11 Artificiell Intelligens Robin Rörberg Fördjupningsarbete Ht 09 robro483

14

L itteraturförteckning Aldebaran Robotics. (u.d.). http://www.aldebaran-robotics.com. Hämtat från Produktblad

Aldebaran Nao: http://www.aldebaran-robotics.com/Files/DSV3+_Light.pdf den 01 Oktober

2009

Chow, E., Fishman, J., Strom, J., Slavov, G., Hermans, T., Dunn, N., o.a. (den 11 November

2008). Northern Bites 2008 Standard Platform Robot Team. Hämtat från www.tzi.de:

http://robocup.bowdoin.edu/media/2008/NorthernBites-TeamReport-2008.pdf

Committee, R. T. (den 23 Maj 2009). RoboCup Standard Platform League (Nao) Rule Book.

Hämtat från www.tzi.de: http://www.tzi.de/spl/pub/Website/Downloads/Rules2009.pdf den 1

Oktober 2009

RoboCup.org. (2009). Hämtat från http://www.robocup.org den 01 Oktober 2009

Russel, S., & Norvig, P. (2003). Chapter 25 - Robotics. i P. N. Stuart Russel, Artificial

Intelligence. New Jersey: Prentice Hall.

Strom, J., Slavov, G., & Chown, E. (2009). Omnidirectional Walking using ZMP and Preview

Control for the NAO Humanoid Robot. Hämtat från Northern Bites Blog:

http://robocup.bowdoin.edu/media/papers/strom-slavov-nao-omnidirectional-locomotion.pdf

Waldron, K., & Schmiedeler, J. (2008). Kinematics. i B. Siciliano, & O. Khatib, Springer

Handbook of Robotics. Berlin: Springer.

Wikipedia. (2009). Hämtat från Finite-state machine: http://en.wikipedia.org/wiki/Finite-

state_machine den 05 Oktober 2009