Autonomous Agents, Chalmers Tekniska Högskola

By: Mahiar Hamedi, Anders Ryberg, Markus Erlandsson

The elevating SUMO robot

Inledning

Målet med denna inlämningsuppgift var att bygga en robot som skulle tävla i robot-sumo. Denna tävlingen gick ut på att två två robotar, huvudsakligen byggda utav LEGO, skulle tävla emot varandra och försöka att få motståndaren att lämna sumoringen.
Själva ringen var ca 1 meter i diameter och var gjord av en högreflekterande gul tejp. Denna var fäst på en i övrigt svartmålad platta. Robotorna fick maximalt väga 1,3 kg och de skulle passa i en kub med sidan 30 cm. Det fanns inga begränsningar på antalet motorer mer än att maximalt två fick användas till framdrift. Det skulle vidare vara fäst en lampa som var synlig 360 grader runt roboten på höjden 5-15 cm.

Du kan vinna genom att antingen: - knuffa motståndaren ut ur ringen - välta motståndaren - cirklat fler varv runt din motståndare än han runt dig efter full tid.
En regel som många, däribland vi hade missat var att man skulle starta utanför ringen. Vi fick därför starta inne i ringen när vår motståndare även han lyckats att ta sig in.

 

Ideer

Vår första ide, som även senare blev den som vi ställde upp i tävlingen med, var att bygga en robot med lyftkran. Om vi gör vår robot fyrhjulsdriven och sätter en lyftkran fram och bak som hissas upp då vi kommer i kontakt med vår motståndare, kan vi dels öka vår tyngd och därmed få bättre fäste i hjulen, och dels sätta delar av motståndarens framdrifts- och sensorsystem ur spel och därmed enklare kunna knuffa ut honom ur ringen. Lyckas vi riktigt bra ka vi kanske t o m välta några motståndare,

En annan ide som vi hade var att bygga en liten snabb robot som försöker att cirkla runt motståndaren så många varv som möjligt och som flyr om den kom i kontakt med densamma. Vi tyckte dock att det kändes lite fegt att inte ens försöka ta strid i sumoringen. Denna lilla robot hade nog annars kunnat klara sig riktigt bra i tävlingen eftersom det var flest stora långsamma robotar utan några system att suga tag i motståndaren med.

 

Vår robot

Den robot som vi byggde var fyrhjulsdriven och hade två lyftkranar, lika breda som hela robot kroppen, på varje sida. Lyftkranarna var kopplade till touchsensorer. Två motorer var kopplade till de fyra hjulen med en motor på varje sida för att kunna styra robotens riktning. En tredje motor användes för att lyfta upp kranarna. Lyftkranarna var kopplade med kraftiga snören till denna motor. Dessa snurrades runt motorn och lyfta upp kranarna.
Vår roboten vägde omkring 1 kg.

Programmet

Vi har tre variabler som styr de tre motorerna. De två driftmotorerna initierar vi till full fart framåt. I en stor loop ändrar vi motorerna enligt värdena på dessa variabler. Därefter kollar vi om någon av trycksensorerna har tryckts in eller ifall någon av ljussensorerna har stött på en ljus linje.
Vi ändrar i så fall värdena på våra motorstyrande variabler enligt följande:

Om trycksensorn aktiveras och lyftkranen är nere startar vi motorn som höjer vår lyftkran och nollställer en tid som ser till att motorn stannar när kranen är helt uppe.
Om en ljussensor ger utslag byter vi riktning och svänger in mot centrum av ringen. Vi nollställer även här en tidsvariabel som ser till att vi efter några sekunder slutar att svänga och istället fortsätter rakt framåt i den nya riktningen. Då en ljussensor ger utslag ändrar vi även den variabel som styr motorn till lyftkranen så att kranen sänks om den tidigare var uppe.

Vi hade mycket enkelt kunnat ändra detta program så att även vi hade kunnat starta utanför om vi hade kännt till den regeln.
Ett problem var att RCX:en endast hade tre ingångar och vi ville använda sex sensorer. Detta löste vi genom att koppla trycksensorerna fram och bak, de vänstra ljussensorerna fram och bak respektive de högra ljussensorerna fram och bak till samma ingång. Eftersom vi hela tiden i våra variabler hade sparat i vilken riktning som vi färdades kunde vi enkelt lista ut vilken sensor det var som hade gett utslag.

Tävlingen

I tävlingen gick det till en början mycket bra. Vår första motståndare fick vi bra grepp på med vår lyftkran och kunde sedan enkelt knuffa ut honom ur ringen. Vår nästa motståndare lyckades vi t o m välta med lyftkranen. Motståndaren som följde efter denna förlorade vi dock emot eftersom han använde en teknik som vi var mycket sårbara för. Han hade nämligen en vit pappskiva som han släpade framför sig längs marken. Då pappskivan hamnade under robot trodde denna att det var sumoringen. Vår robot försökte därför fly undan motståndaren och när vi kom till den verkliga sumoringen lämnade vår robot efter stor tvekan ringen. För att avgöra vem som vann vår grupp fick vi återigen möta pappskive-roboten och vi förlorade även denna gång. I kvartsfinalen fick vi därför möta startfältets verkliga tungviktare. Mot honom hade vi ingen chans eftersom vi inte fick grepp på honom med vår lyftkran och sedan vägde vi alltför lätt. 1

Hosted by www.Geocities.ws