2011

March 29th, 2011

For første gang i en del år kørte Willy fuldstændig ens begge gennemløb i både kvalifikation og finale. Ingen fejl under vejs. Dog fik den 2 point mindre i finalens andet gennemløb, da den løste forhindringen med den blinkende port ved altid at køre uden om den første blinkende port.

Video af første gennemløb i finalen 2011 ses nedenfor:

2010

March 29th, 2011

Videoer fra 2010:

Første gennemløb (13 point):

Andet gennemløb (3 point):

Same procedure as last year

May 26th, 2009

Det blev i lighed med sidste år til en delt 4. plads for Willy. Det var ganske tæt på at blive til en 3. plads. Et enkelt point mere, havde været nok. Og når det kommer til stykket, kunne Willy let have taget lidt flere point. Vippen og tunnelen burde ikke give problemer, og på racerbanen kunne det nok også være blevet til et par point. Eneste grund til, at jeg ikke forsøgte at få robotten til at tage de forhindringer var, at jeg ikke havde så meget tid til at lege med robotten på banen. Og så havde jeg besluttet mig for, at jeg hellere ville prøve at få robotten gennem nogle af de nye forhindringer, i stedet for alle de gamle, som jeg har prøvet hvert år. Så målet var at tage pukkelpisten. Her lykkedes det dog kun at tage et enkelt point, men robotten burde robotten have taget et point mere. Jeg havde lavet det meste af koden, som kunne styre den sikkert gennem. Desværre nægtede robotten ret ofte at køre til port nummer 2 på pisten. Den valgte i stedet at resette sig selv på nogle af puklerne. Hvorfor ved jeg ikke – tror det må have været jordstråler.

Robotten var ændret en smule i forhold til sidste år. Mest synligt var de større hjul, som var monteret for at få robotten til at køre hurtigere. Desuden var printet på robotten opgraderet i forhold til sidste år. Her var kommet en lidt hurtigere processor og stik til en ny seriel til wlan konverter. Til de teknisk interesserede:

Her ud over var elektronikken ikke ændret i forhold til sidste år.

Nedenfor er et klip af robottens gennemløb. Da begge gennemløb var helt ens, er kun det første vist.

2009

April 13th, 2009

Så er Wild Willy klar til 2009.

Wild Willy Nano

2008

April 12th, 2008

Det blev jo så til en 4. plads for tredje generation af Wild Willy. Ganske fint gået af den lille robot, som langt fra havde samme funktionalitet som sin forgænger.

Efter 5 år med Willy var det på tide at bygge noget nyt i år. Jeg havde en del ideer, men for lidt tid til at realisere dem, så jeg gik efter en lille og simpel robot. Tiden viste sig dog også at være knap selv for denne simple løsning, så den var langt fra køreklar i god tid inden konkurrencen. Faktisk byggede jeg linjesensoren færdig søndag, og første gang robotten kørte efter en linje var om tirsdagen – dagen før kvallifikationen.

Der er altid en masse, som stiller spørgsmål om teknikken på robotten, så her er lige svar på de mest stillede spørgsmål:

Robotten blev bygget op på et stykke plexiglas og nåede at skifte udseende et par gange inden den var køreklar. Senest om tirsdagen, hvor den mistede et hjul.

Wild Willy Nano top Wild Willy Nano bund

Som det fremgår, er de eneste sensorer, robotten har, 8 IR dioder og så en encoder på hvert baghjul. Ud fra data fra sensorerne har jeg dannet følgende kort, som viser hvad robotten ser undervejs. De røde streger angiver hvor roboten skifter tilstand i dens tilstandsmaskine. Det skal lige siges, at robotten ikke bruger dette kort til noget – det er dannet ud fra log-data efter konkurrencen.

Kort over banen som set af robotten

Robotten kørte rimeligt stabilt, og en af de få gange hvor den fejlede var selvfølgelig til konkurrencen i første gennemløb. Det er som altid ikke helt klart, hvad der gik galt, men jeg tror det ene hjul blokerede, eller muligvis at den ene motordriver lukkede ned. Jeg havde ikke set dette før, så jeg ved ikke helt hvad der kan have være årsagen til det.

Men bortset fra dette problem, så klarede den sig fint. 12 point i finalen var ok, da den ikke rigtig var fysisk i stand til at tage flere point (for langsom på racerbanen, kolbøtter på trappen og for ustabil på vippen).

Finalens andet gennemløb set af den officielle kameramand:

Finalens andet gennemløb set fra robotten:

Og vinderen er…

April 13th, 2007

Wild Willy efter RoboCup finalen 2007Wild Willy deltog i år for 5. gang i RoboCup, og det blev året, hvor Willy kørte med det absolut mest utestede slam-kode i robottens levetid. Normalt plejer jeg at nå at finpudse koden i Påsken, men i år lagde jeg mig i stedet syg, så der var ikke megen tid til at programmere på robotten. Søndagen inden konkurrencen var jeg dog nogenlunde på benene igen, så her kunne jeg begynde at arbejde på robotten igen. Jeg fik lavet goldboldopsamlingstingen ved hjælp af toppen af et decilitermål, en lille servomotor og en masse termolim. Mandagen gik med at få hul igennem til de nye kamera, og om aftenen kørte robotten for første gang efter en streg med kameraet.

En del har spurgt til kameraet, som jeg brugte. Der er tale om et hjemmelavet kamera, basseret på en sensor fra en optisk mus (ADNS-3060). Sensoren giver et billede på 30×30 pixels i 6 bit gråtoner – det lyder måske ikke af meget, men man kan faktisk se en del på sådan et billede. Nedenfor er et par eksempler på hvad sensoren så på banen.

Mousecam picture Mousecam picture

Det største problem i at bygge kameraet, har været at få fat i et mount til linsen. Efter megen søgning på nettet fandt jeg dog frem til www.optics-online.com, så hvis der er andre, som skulle have lyst til at bygge et mousecam, kan den side anbefales.

Kvalifikationsrunden gik fint for Willy. Begge gennemløb forløb uden problemer, og det opsamlede antal point resulterede i en 3. plads.

Til finalen gik jeg efter 18 point. Jeg kunne ikke få robotten til at køre racerbanen stabilt på under 7.5 sekunder, så der undlod jeg at tage ét point. Desuden måtte jeg opgive trappen. Willy har et eller andet problem, som får den til at genstarte sin hovedcomputer på trappen, hvilket er lidt skidt. Faktisk havde Willy samme problem sidste år, men det havde jeg glemt alt om, så jeg havde ikke fået løst det. Nå, men jeg gik altså efter 18 point, men desværre lykkedes det ikke i praksis. I første gennemløb opnåede robotten 16 point og i andet gennemløb blev det til 17 point. Begge gange var det golfbold-forhindringen der missede. Havde jeg haft tid havde det været oplagt at bruge kameraet til at se bold/hul, så chancen for fejl kunne minimeres.
Det gjorde nu ikke nogen større forskel i den samlede stilling, da jeg selv med 18 point ikke kunne have opnået en bedre placering. Men det blev altså til en 3. plads, hvilket jeg er godt tilfreds med, især når jeg tænker på den slamkode til kameraet, som jeg fik flækket sammen om mandagen.

Sekvensen, som styrede Willy gennem banen kan ses på sekvensmaskinesiden. Da der i år var mange (for mange) forhindringer, som krævede præcis navigering (tunnel, golfkugle, keglebane) er det den længste sekvens jeg endnu har måttet lavet til Willy. I alt 76 tilstande måtte robotten igennem på sin vej.

Alt i alt synes jeg, at banen i år var alt for kedelig. Der manglede fornyelse, og de få nye forhindringer var ikke specielt spændende – eller for den sags skyld svære. Alt for megen navigation og for lidt autonomi gjorde det kedeligt at se på konkurrencen – hvilket man også kunne se på tilskuerne, som for størstedelens vedkommende forlod salen efter første gennemløb. Willys genneløb tog over 5 minutter, og det er altså ikke voldsomt spændende at se på. Jeg vil gerne foreslå en genindførelse af tidspointene, som blev brugt for nogle år tilbage. Det satte lidt mere fart på robotterne, så det var lidt sjovere for publikum. Det kunne evt. indføres som strafpoint, så man hvis man ikke gennemfører på under 2 minutter mister et point, og jo længere tid robotten er om at gennemføre, jo flere point mister man. Det ville få de forskellige hold til at udelade de forhindringer, som de ved tager lang tid for deres robot at gennemføre.

Men det blev altså til en fin 3. plads. Det betyder, at Willy nu kun mangler at vinde en 2. plads og prisen for design/effekter for at den har vundet alt, der kan vindes. Så der er jo stadig noget at gå efter til næste år…

Første gennemløb:

Andet gennemløb:

Willy – nu med kamera

March 31st, 2007

Wild Willy med kameraEfter en del hovedbrud over hvordan jeg skulle få monteret kameraet, lykkeds det i dag at udtænke en fornuftig holder til kameraet. Så efter nogle timer med sav og boremaskine – og med relativt få fysiske skader på mine fingre, er Willy nu med kamera. Nu skal der så bare skrives noget software, så kameraet også kan bruges til noget…

RoboCup 2007

March 25th, 2007

Så nærmer tiden sig til RoboCup 2007. Som det fremgår af tilmeldingssiden er Wild Willy også med i år. Ambitionsniveauet er dog nok lidt lavere end de tidligere år, hvilket hovedsageligt skyldes, at jeg på nuværende tidspunkt ikke har fået lave andet end at tage robotten ud af skabet og iværksat en eftersøgning efter batteriladeren.

Nå, men eftersom banen er den samme som sidste år, er der jo heller ingen grund til at lave nogle større ændringer på robotten, så det har jeg tænkt mig at gøre – altså lave ændringer. Planen er at erstatte liniesensoren med et kamera. Det kan hurtigt vise sig, at være en frygtelig dårlig idé, da liniesensoren på Willy altid har virket glimrende – men det kan et kamera vel også komme til?

RoboCup 2006

May 13th, 2006

RoboCup 2006 er vel overstået. For Willys vedkommende blev det til en 3. plads i kvalifikationsrunden og til en noget skuffende 9. plads i finaleløbet.

Video af Wild Willy i RoboCup 2006Jeg har ikke nogen endelig forklaring på, hvad der gik galt i finalen. I første gennemløb var Willy programmeret til at tage alle point pånær den ene golfbold, trappen og den fritstående port. Willy valgte dog at opføre sig som et ægte autonomt køretøj, og valgte kun at tage én enkelt port, og derefter køre direkte i mål i voldsomt hastighed. Jeg kan ikke forklare hvad der skete. Willy var ikke programmeret med en state, hvor hastigheden var høj samtidig med at den drejer til venstre, så det mest sandsynlige er at hovedcomputeren er genstartet på et uheldigt tidspunkt. Dette underbygges tildels af at Willy hakkede underligt lige da den blev sat i gang. Det burde dog ikke få motorcontrolleren til at sætte hastigheden op, så det er noget mystisk. Nå, men man kan da altid glæde sig over, at Willy nu har rekorden for hurtigst fra start til mål: Det tog kun omkring 4 sekunder!

Video af Wild Willy i RoboCup 2006I andet gennemløb havde jeg programmeret Willy til også at køre ned af trappen. Det hjalp dog ikke meget, da Willy valgte at køre af stregen på racerbanen. Herefter begyndte den at køre rundt i cirkler midt på banen. Af videoen kan jeg se, at Willy sandsynligvis er i en tilstand, hvor den søger efter klinkerne. Den var programmeret til at finde klinkerne før den blinkende port, da afstanden til denne blev målt fra klinkerne. Jeg valgte desværre at afbryde Willy efter den havde kørt rundt nogle gange midt på banen. Hvis jeg havde ladet den tage en eller to omgange mere, så ville den have fundet nogle klinker, hvilket ville have fået den til at skifte state, og med lidt held ville den være kommet ind på banen igen. Nå, men eftersom jeg afbrød den, så gjorde den ikke det, og resultatet var det dårligste i Willys RoboCup historie: Sølle 1 point. Mit bedste bud på hvorfor Willy kørte af racerbanen er, at linjesensoren var kalibreret forkert. Nogle timer inden løbet var jeg nødt til at skife en diode på linjesensoren, og var derfor nødt til at lave en rekalibrering af den (lære den hvad der er hvidt og hvad der er sort). Det ser ud til at niveauet for hvidt er sat forkert, hvilket har gjort at sensoren havde mindre kontrast mellem sort og hvid. Da den algoritme linjesensoren bygger på anvender et treshold kan det forklare hvorfor Willy pludselig mener, at der er en streg til venstre, som den skal følge.

Willy var nu ikke den eneste, der gjorde det dårligt til finalen. Faktisk var det ret elendigt i år. Kun to robotter var i stand til at få det samme antal point i de to gennemløb, hvilket siger noget om hvor ustabile de fleste konstruktioner er. Interessant nok blev der samlet taget 154 point i kvalifikationsløbet, og kun 131 i finalen. Skuffende.

Generelt synes jeg faktisk at RoboCup var en smule kedeligt i år. Selve banen var ok. Der var en række forskellige løsninger på golfboldforhindringen, hvilket efter min mening gør den til en god forhindring. De bedste forhindringer er efter min mening dem, som folk vælger at løse for forskellige måder. De blinkende porte var også et godt nyt tiltag. Det er ikke nogen voldsomt vanskelig forhindring, men den er let at forstå for publikum. Det tog mig vel ca. en time at finde en fotodiode og en modtand og lodde dem samme, samt en time at programmere robotten til at placere sig præcist, så dioden altid var ud for det ene portben.
Når jeg siger, at RoboCup var kedeligt skyldes det altså ikke banen, men mere ydre omstændigheder. Til finalen var der meget lidt publikum (ud over deltagerne og deres familier), og der var heller ikke ret meget pressedækning. Det manglende publikum skyldes nok tildels placeringen i Oticon Salen; det er altså ikke et sted de studerende lige kommer forbi – på det punkt var landingsbanen altså et bedre sted. Jeg snakkede lidt med de andre deltagere efter konkurrencen om publikum, og hvad man kunne gøre for at lokke flere til. En mulighed kunne være at flytte konkurrencen, så den ligger lidt senere på dagen! Det vil være lettere at lokke familie, arbejdskolegaer og studiekammerater til hvis de ikke skal tage fri fra arbejde og studie. Hvis man f.eks. lagde konkurrencen om aftenen omkring kl. 18.30 ville det måske også være interessant for nogle af nyhedsudsendelserne i TV til at sende direkte fra konkurrencen. Men for at trække flere mennesker og journalister til, så skal robotterne altså også være noget bedre end det var tilfældet i år, da det ellers er alt for kedeligt at kigge på.

Der var en ting, jeg undrede mig meget over i år: Hvorfor var der ingen nye studerende fra DTU med i konkurrencen? Der var stort set kun hold, som har været med tidligere. Hvorfor er det ikke interessant for nye studerende at være med? Kender de ikke til konkurrencen? Jeg ved det ikke, men jeg synes det er noget ærgerligt, hvis der ikke kommer en masse nye til næste år. Efter i år bør nye i hvert fald ikke lade sig afskrække af, at at der er mange gengangere med, da disse klarede sig ret elendigt!

Afslutningsvis vil jeg, som jeg plejer, offentliggøre min tilstandsmaskine. Så hvis ellers Willy havde valgt at gøre hvad den var blevet bedt om, ville den have fulgt denne sekvens: Tilstandsmaskine finale 2006

Hvis der er nogle, som har spørgmål eller kommentarer til Willy præstation i 2006, så skriv en kommentar til denne post, så skal jeg efter bedste evne svare. Det gælder også hvis der er nogle kommende deltagere, som har spørgsmål til robotkonstruktion generelt.

Kort fra 2005

March 18th, 2006

Kort over 2005 RoboCup bane I forbindelse med lidt oprydning af filer på min computer faldt jeg over noget halvfærdigt kode til at generere et kort over Robocup banen, ud fra de data Willy måler. Eftersom jeg tidligere har skrevet, at jeg ville offentliggøre sådan et kort, besluttede jeg at gøre koden færdig. Så her er et kort over banen!

Kortet er dannet ud fra en log af data, som jeg lavede efter kvallifikationsrunden. Det er således ikke den rute Willy fulgte på finaledagen, da jeg desværre ikke har nogen log for disse kørsler. På kortet viser de gule prikker målinger med afstandssensorer, og de røde streger er steder, hvor der skiftes tilstand i tilstandsmaskinen. 1 pixel på kortet svarer til 1 cm i virkeligheden.

Video fra konkurrencen

May 16th, 2005

Her er et klip af Wild Willy under konkurrencen i 2005. Det er 2. gennemløb, hvor Willy tager alle point. 2005-konkurrence-b.rm

Piloteditoren

April 23rd, 2005

Wild Willy styres af en simpel tilstandsmaskine, som jeg kalder piloten. Piloten består af en række tilstande, som robotten løber igennem, mens den kører på banen.

Piloten, som den så ud under finalen i år, kan ses på følgende side: 2005-finale. Som det står beskrevet på siden består en tilstand af tre ting:

  • Det som sker første gang robotten kommer ind i den pågældende tilstand. Det kan f.eks. være at sætte robottens hastighed eller at sætte en position på en servo.
  • Det som skal ske så længe robotten er i tilstanden. Det kan f.eks. være at følge stregen på banen.
  • En betingelse, som skal være opfyldt, for at robotten skifter til en anden tilstand. Det vil typisk være at den afstand robotten har tilbagelagt er større end en værdi, eller at stregen under robotten forsvinder.

Tilstandsmaskinen bliver løbende parset at robotten. Den er altså ikke implementeret i C-kode på robotten, men der i mod som et array af værdier, som er lette for robotten at parse. Grunden til at jeg har valgt at lave det på denne måde er, at det på denne måde er utrolig let at tilføje nye tilstande samt at ændre i værdierne de forskellige parametre, uden at der skal laves ændringer i koden på robotten. For at få robotten til at gøre noget nyt, skal der bare uploades en ny tilstandsmaskine til robotten – ikke noget med at kompilere ny kode.

Ved at separere tilstandsmaskinen fra C-koden har det været muligt, at lave en grafisk editor til tilstandsmaskinen. På de følgende tre screenshots er dens tre vinduer vist:

Pilot EditorDet første billede viser hovedprogrammet. Den største del af dette vindue udgøres af en liste, som viser alle tilstande, og hvilke parametre der i øjeblikket er sat. Øverst er en række knapper, som gør det muligt at manipulere tilstandsmaskinen.

Pilot Editor - State EditorPå næste billede ses det vindue, der kommer frem, hvis man klikker på en tilstand i hovedvinduet. Her er det muligt at ændre i parametre for den pågældende tilstand. Vinduet er delt op i 3 dele, som svarer til de 3 dele en tilstand består af. Ved at trykke på + knapperne tilføjes nye parametre til tilstanden, og – fjerner naturligvis parametre.

Pilot Editor - Robot ControlEndelig er der et vindue, som bruges til kommunikation med robotten. Fra dette er det muligt at uploade tilstandsmaskinen til robotten, og at starte/stoppe denne. Vinduet reagerer også på forskellige tastetryk, f.eks. piletaster som gør det muligt at styre robotten. I vinduet vises også forskellige værdier målt af robotten. På dette screenshot ses f.eks. værdier fra linjesensoren.

Pilot editoren virkede rigtig godt før konkurrencen. F.eks. gik det relativt hurtigt at lave de tilstande, som skulle bruges til racerbanen. Da jeg først havde lavet de 3 tilstande, var det let at ændre i deres parametre (hastighed, acceleration og afstande) og teste de nye ændringer på robotten på banen.

For at svare på Caspers spørgsmål, så kan editoren ikke bruges til at optage robottens tur gennem banen, men altså kun til at redigere tilstande, som robotten skal gennemløbe. I princippet kan man tilføje et vilkårligt antal tilstande, så det vil være muligt at få robotten til at reagere på uforudsete hændelser. Jeg gjorde dog næsten ikke brug af det i årets RoboCup. Eneste undtagelse er i sekvensen omkring åbning af lågen i tunnelen. Her skete det af og til, at robotten ikke fik skubbet lågen op, og hvis I ser efter i tilstandsmaskinen, så vil robotten faktisk gentage denne sekvens, hvis den senere kører ind i lågen.

RoboCup 2005

April 16th, 2005

Wild Willy 2005 før konkurrencen. Foto: Carsten Snejbjerg, IngeniørenEfter en hård konkurrence i Oticon salen lykkedes det igen for Wild Willy at vinde RoboCup. Robotten måtte ud i et tredje gennemløb mod DemolitionCrew, før den vandt – og dette kun fordi den faldt af banen senere end DemolitionCrew. DemolitionCrew burde efter min mening nok have vundet, da den var mere stabil end Willy – den fejlede trods alt kun i 1 af 3 gennemløb i konkurenecen, Willy fejlede i 2 af 3. Det skal dog siges til Wilys forsvar, de to gange den fejlede skyldes fejl ved “boldopsamleren” – en dims, som jeg satte på robotten 1 time før konkurrencen, og som derfor ikke var gennemtestst. I første gennemløb faldt den ganske simpelt af på trappen, og i sidste gennemløb satte tennisbolden sig fast i hjulet på Willy, da opsamleren skulle slippe bolden. Havde jeg brugt lidt mere tid på at teste løsningen, ville jeg let kunne have undgået disse to fejl.

Konkurrencen var i år ændret en del i forhold til tidligere år: Nyt sted, nye regler og nye forhindringer. Jeg må sige, at jeg synes alle nye tiltag var en forbedring.
Oticon-salen var et behageligt sted at opholde sig i dagene op til konkurrencen. Sammenlignet med landingsbanen var der varmt og lyst om natten, hvilket var utroligt rart.
De nye regler gjorde, at de dårligste robotter blev sorteret fra dagen før hovedkonkurrencen. Jeg var på forhånd ret spændt på, hvordan dette ville virke i praksis. Problemet ved at lave denne sortering er bl.a. at nye hold, selvom de har brugt meget tid på at lave deres robot ikke vil kunne komme med i finalen, da de “gamle” hold vil sætte sig på finalepladserne, eftersom de ret hurtigt vil kunne skrabe point nok sammen til at gå videre. I praksis synes jeg dog ikke det var helt så slemt. For det første blev banen sat op en dag før kvalifikationen, så alle havde god tid til at få noget til at køre (sammenlignet med tidligere år, hvor banen først blev sat op nogle få timer før kvalifikationen). For det andet fik de deltagere, der gik ud i kvalifikationen, port-penge for deres kørsel. Det meget positive ved kvalifikationen var at de robotter, der gik videre, allerede onsdag havde et højt niveau, og derfor blev endnu bedre til finaleløbet om torsdagen. Det hævede kvaliteten af finalen væsentligt i forhold til tidligere år.
Det største problem ved at have en kvalifikaton dagen før konkurrencen er, at der er alt for lidt tid til at sove. Først bruger man natten mellem tirsdag og onsdag til at få noget til at virke til kvalifikationen, og dernæst natten mellem onsdag og torsdag til at at optimere robotten til finalen. Personligt fik jeg sovet 3 timer den første nat og 2 den næste. Det er altså lige i underkanten…

Jeg har hørt, at arrangørerne ikke havde forventet, at der var nogle, som kunne tage alle forhindringer i år. Det kommer lidt bag på mig, da der sidste år var en del robotter, som kunne tage alle forhindringer (men som dog fejlede ved konkurrencen), og som derfor i år kun havde brug for at lære de nye forhindringer, og efter min mening var de nye forhindringer ikke voldsomt svære.

Den mest vanskelige var helt sikkert racerbanen. Det der gjorde den svær, var især, at det ikke var muligt at få oplyst hvor hurtigt robotten skulle køre for at få maksimum point, før banen var sat op. Derfor var det umuligt at optimere robotten til en bestemt hastighed hjemmefra. Sidste år kørte jeg det meste af banen med 75 cm/s. Da jeg ikke gik ud fra, at dette var nok, valgte jeg at bruge en dags tid på at få Willy til at køre hurtigere. Dette skete ved at lave tre ændringer i robotten i forhold til sidste år. For det første satte jeg en hurtigere servo i. Hermed kunne forhjulene dreje væsentligt hurtigere. Med denne ændring kunne jeg køre over 1 m/s uden at lave nogle andre ændringer. I reglerne stod nævnt, at 1 m/s nok ville komme til at give 2 point, så jeg var nødt til at gøre noget mere for at få det sidste point. Når jeg forsøgte at køre over 1 m/s begyndte robotten at slingre, hvilket fik den til at miste stregen. Løsningen blev, at justere det gain, der er mellem linjepositionfejl og servo, alt efter hvor hurtigt robotten kører. Så når robotten kører hurtigt, sænkes gain. Men denne ændring kunne jeg på min testbane hjemme kommer op på ca. 1,25 m/s. For yderligere at hæve hastigheden, forsøgte jeg også at lade robottens hastighed være afhængig af linjepositionsfejlen, så hastigheden blev sat ned, hvis robotten var ved at miste linjen. Dette havde jeg dog ikke ret meget held med, da robotten begyndte at skride på underlaget, hvis jeg ændrede hastigheden hurtigt, hvilket var nødvendigt hvis denne løsning skulle virke. Til konkurrencen benyttede jeg mig af en tredie løsning, for at hæve hastigheden: planlægning af hastigheden. Da jeg vidste hvordan banen så ud, kunne jeg styre hastighed og acceleration ret præcist, således at robotten kørte hurtigt på det første lige stykke, dernæst sænkede hastigheden i svinget, og så satte hastigheden op på det næste lige stykke. Resultatet blev, at jeg kunne køre de ca. 9,5 m, som racerbanen var, på 7,0 s, hvilket gav en gennemsnitshastighed på lidt over 1,3 m/s. På de lige stykker kørte jeg ca. 1,5 m/s og i svinget ca. 1 m/s.

Næste nye forhindring var tennisbolden. Jeg havde ikke forberedt denne forhindring hjemmefra, da jeg regnede med at kunne løse den ret hurtigt med et stykke velcro. Det viste sig dog at være besværligt at montere på Willy. Linjesensoren sidder ret højt, for ikke at støde ned i trinene, når der køres ned af trappen. Faktisk sidder den så højt, at bolden kommer ind under sensoren, så linjen ikke kan ses. Samtidig kunne jeg se, at bolden blev mere og mere slidt under konkurrencen, og den sad derfor dårligere og dårligere fast på velcro. Velcro var altså ikke en helt så god løsning, som jeg havde forventet. Af en eller anden grund valgte jeg at udskyde forhindringen, og fokusere på de andre først. Så det endte med, at jeg kl. 10 på konkurrencedagen (1 time før konkurrencen) stod med en robot, som ikke kunne tage bolden med. Så skulle der arbejdes hurtigt. Cristine havde en løsning med en lille spand på en servoarm, som jeg havde set virkede ganske fornuftigt, så den gav jeg mig til at kopiere. På mit bord havde jeg et bøger, hvor der havde være bernaise sauce i – et bæger jeg brugte til skruer og andre småting. Dette blev tømt, og bolden passede fint ned i. Dernæst blev det limet på et stykke aluminium, som igen blev limet på en servo (jeg havde taget lidt forskelligt med hjemmefra – bl.a. den servo jeg erstattede med en hurtigere for at kunne løse racerbanen). Servoen blev limet på en andet stykke aluminium, som blev limet på robotten. Bægeret blev tilpasset, så bolden let kunne komme ind (tilpasset er det pæne ord for klippet i stykker med en skævbider), servoen blev forbundet til Willys hovedcomputer, og jeg ændrede et par states i tilstandsmaskinen, så bægeret blev flyttet op og ned på det rigtige tidspunkt. Alt i alt tog det 45 minutter at få til at virke – incl. to testkørsler ned ad trappen, hen til bolden, og igennem næste port.

Sidste nye forhindring var den røde port. Da jeg oprindeligt så reglerne, troede jeg, at porten ville stå et vilkårligt sted på banen, og havde derfor udtænkt en snedig sensor, som kunne se forskel på portenes farve. Efter en gemmemlæsning af reglerne opdagede jeg dog, at den altid stod det samme sted. Derfor var den intet problem for Willy. Jeg vil tro, at det tog ca. 20 minutter at få Willy til at dreje af efter “bold-porten”, følge den mørke kant mellem de mørke klinker og det lyse gulv et stykke frem, og så dreje ind på linien lige før den gule port.

Som sagt mener jeg ikke, at to af de tre nye forhindringer var ret vanskelige. Den røde port og tennisbolden kunne løses på under 1,5 time samlet. Hvis arangørerne planlægger at bruge disse to forhindringer til næste år, vil jeg forslå, at deres sværhedsgrad øges på følgende måde: Tennisbolden erstattes af en bordtennisbold. En sådan er væsentligt lettere at komme til at skubbe væk, når man kører ind i den. Den sidder heller ikke ret godt fast i velcro (men sikkert udemærket på dobbeltklæbende tape). Jeg tror, det vil være væsentligt sværere at løse en bordtennisbold-forhindring, og samtidig, vil jeg tro, at der vil komme nogle flere interessante løsninger fra de forskellige hold. Jeg ville f.eks. nok vælge at prøve at suge bolden op.
Den røde port vil være en genial forhindring, hvis den står et vilkårligt sted på banen. Det er det to grunde til: For det første vil det være nødvendigt med en sensor, som kan se farven på porten. Dette vil være ret let for kamera-robotterne (og der har længe været et ønske om en forhindring, hvor de har en fordel), men kan også løses på andre måder, som ikke involverer et kamera. For det andet, vil den vilkårligt placerede røde port, gøre det umuligt at gennemføre banen ved at gennemkøre en simpel sekvens, hvilket Willy gjorde i år. Der skal tilføjes noget mere intelligens til robotten, hvis den pludselig skal bryde sekvensen.

Nå, nok for nu. Jeg vil i den nærmeste fremtid offentligøre lidt mere information om Willy. Jeg vil bl.a. vise lidt om, hvad min pilot editor kan, og jeg vil i lighed med sidste år, vise hvordan den tilstandsmaskine som Willy brugte i finalen så ud.
Jeg har endvidere lavet en log af de data Willy målte, mens den kørte gennem banen, og disse har jeg planer om at bruge til at lave et kort, så I har mulighed for at se, hvad Willy ser på banen.

RoboCup 2005

April 15th, 2005

Forvent en længre opdatering om Wild Willy i RoboCup 2005 løbet af weekenden. Lige nu skal der soves efter et par hårde dage i Oticon salen.
Hvis du har spørgsmål om robotten, så tilføj en kommentar til denne post, så skal jeg forsøe at svare på dem.

RoboCup 2005

March 12th, 2005

Wild Willy er selvfølgelig klar til at forsvare titlen fra 2004. Eftersom Willy jo kørte ganske fornuftigt sidste år, har jeg ikke planlagt ret mange ændringer til i år. Banen er stort set ikke ændret, så der er ikke brug for nye sensorer. Det eneste, jeg har planlagt, er en simpel mekanisk løsning til tennisbolden.
Da der ikke er brug for nyt hardware, har jeg i stedet brugt noget tid på at skrive noget software. Robottens software virkede godt sidste år, så min tid er hovedsageligt gået til at skrive en pilot editor, som kører på min PC. Pilot editoren er en grafisk brugerflade, som bruges til at redigere robottens tilstandsmaskine. Jeg håber, at den vil gøre, at jeg meget hurtigt kan lave sekvenserne til banen og stille på parametre. Det viste sig nemlig sidste år, at det var dét, jeg brugte det meste af tiden til før konkurrencen.