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