Robottien sumopainia

Robottisumo tarkoittaa kilpailua, jossa kaksi robottia yrittää työntää toinen toistaan ulos peliareenalta sumopainin tapaan. Peliareena on usein ympyrä, jonka reunoilla on itse peliareenan väristä eroava teippi. EV3-roboteilla pelattava robottisumo on suosittu kilpailumuoto roboteilla, ja se on myös oiva tapa yhdistää pieni kilpailu ohjelmoinnin oppimiseen.

Robottisumon säännöt

Robottisumossa kaksi robottia asetetaan ympyrän muotoisella areenalla ympyrän vastakkaisille puolille. Erä alkaa silloin, kun molemmat robotit laitetaan päälle. Erän aikana robotteihin ei saa koskea ja voittajaksi julistetaan robotti, joka jää areenalle viimeisenä. Häviäjä on siis robotti, joka joko työnnetään areenan reunojen yli tai vastaavasti ajaa itse areenan reunojen yli. Toinen robotti ei saa vahingoittaa toista robottia. Erä kestää tasan 3 minuuttia, ja jos tähän mennessä voittaajaa ei ole vielä selvinnyt, erä tuomitaan tasapeliksi.

Sumopaini-ottelu alkamassa (Kuva: Petteri Kettunen)

Sumopaini-ottelu alkamassa. Kenttä on halkaisijaltaan noin 100cm. (Kuva: Petteri Kettunen)

Sumorobotin rakentaminen

Sumorobotin tarkoitus on pysyä areenalla. Areenalla pysymisen saavuttamiseksi robotissa tulee olla robotin etuosassa sensori, jolla areenan reuna tunnistetaan. Sensoreiksi kelpaavat EV3-sarjan värisensori sekä NXT-sarjan valosensori. Sensorin tulee olla noin 1 cm etäisyydellä maasta ja se on suunnattava lukemaan arvoja alhaalta. Muutoin robotissa on tärkeätä paino sekä moottori, joita kannattaa sumoon laittaa kaksi kappaletta. Robotti kannattaa rakentaa siten, että robotin edessä on jonkinlainen puskuri, jotta toisen robotin työtäminen on mahdollisimman tehokasta.

Sumorobotin ohjelmoiminen

Sumorobotin ohjelmoimista varten tulee olla perustiedot silmukoista sekä ehtorakenteista kunnossa. Liikkuminen ja reunoilla kääntyminen edellyttää silmukan sekä Switch-rakenteen käyttämistä. Ohjelmoimisessa pyritään ottamaan huomioon kaksi erilaista tapahtumaa: robotti on areenalla sekä että robotti kohtaa reunan. Kun robotti on areenalla, robotti ajaa suoraan eteenpäin, ja kun robotti kohtaa areenan reunan, robotti ajaa hieman taaksepäin jonka jälkeen robotti kääntyy hieman joko vasemmalle tai oikealle.

Haluttu tulos saavutetaan ohjelmakoodissa upottamalla silmukan sisään Switch-rakenne, jota ohjaa väri- tai valosensori. Kun sensori on areenalla, Move Steering -palikalla ajetaan molempia moottoreita eteenpäin. Kun taas sensori on reunan päällä, ajetaan Move Steering -palikalla hieman taaksepäin, jonka jälkeen Move Steering -palikalla käännytään toiseen suuntaan. Taaksepäin ajamisessa sekä kääntymisessä Move Steering -palikan suoritusaika voidaan määritellä kierroksiksi (Rotations) ja eteenpäin ajettaessa Move Steering -palikan suoritusaika asetetaan vaihtoehdolle on.

Esimerkki sumopaini-robotin koodista.

Esimerkki sumopaini-robotin koodista.

ijormanainen

View my other posts

Leave a Reply

Your email address will not be published. Required fields are marked *