20
RoboCup En litteraturstudie av 2010s finalistlag rUNSWift Linköpings Universitet Artificiell Intelligent II, 729G11 Fördjupningsuppgift Martin Krampell [email protected] Linköping 2012-10-16

Enlitteraturstudie#av2010s#finalistlag#rUNSWift729G11/projekt/studentpapper-12/martin... · RoboCup Enlitteraturstudie#av2010s#finalistlag#rUNSWift# Linköpings Universitet Artificiell

Embed Size (px)

Citation preview

RoboCup En  litteraturstudie  av  2010s  finalistlag  rUNSWift  

Linköpings Universitet

Artificiell Intelligent II, 729G11

Fördjupningsuppgift

Martin Krampell

[email protected]

Linköping

2012-10-16

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 1  

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.  

   

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 2  

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  

   

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 3  

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   (729G11).   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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 4  

ä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/  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 5  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 6  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 7  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 8  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 9  

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.  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 10  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 11  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 12  

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.  

 

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 13  

   

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.  

 

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 14  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 15  

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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 16  

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  

fotbollsspelare7.  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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 17  

Vi   kan  med  Moore’s   lag8  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  

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 18  

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  

 

 

 

 

 

 

 

 

 

Martin  Krampell     Linköpings  Universitet      markr644     729G11      

 19  

Bilaga  1  –  RANSAC  Pseudokod  

 

 

Pseudokod  hämtad  från  Wikipedia;  http://en.wikipedia.org/wiki/RANSAC