Seinää seuraava robotti

Joskus robottien pitää pystyä seuraamaan myös ympärillä olevia seiniä ja muita esteitä. Tämä on hyödyllistä esimerkiksi sokkelossa navigointia varten. Tässä harjoituksessa rakennetaan yksinkertainen seinää seuraava robotti Lego Mindstorms -robottisarjalla.

Seinänseurantarobotti perustuu yhtaikaisesti kahden sensorin yhteistoimintaan. Kahden sensorin käyttäminen EV3-ohjelmakoodissa tuo jo kokeneellekin ohjelmoijalle hieman enemmän haastetta, sillä erilaisia tapahtumia pitää ottaa enemmän huomioon kuin käytettäessä pelkästään yhtä sensoria. Seinänseurantarobottia pystyy sellaisenaan käyttämään vaikkapa labyrintissa, sillä käytettäessä esimerkiksi “Käänny aina oikealle / vasemmalle” -algoritmia, robotti löytää ulos ennen pitkään jokaisesta labyrintista. EV3-ohjelmointiympäristö mahdollistaa robotin ohjelmoimisen suhteellisen vaivattomasti, mutta verrattuna vaikkapa esteitä välttelevään robottiin, on seinänseurantarobotin ohjelmoiminen vaativampaa. Sen vuoksi ohjelmoijalla on hyvä olla vankat perustiedot silmukoista, ehtolauseista ja näiden sisäkkäisyyksistä.

EV3-seinänseurantarobotin rakentaminen

Robotin rakentamiseen EV3-sarjalla tarvitaan kaksi etäisyyttä mittaavaa sensoria. Tällaisiksi sensoreiksi käy ultraääni- (ultrasonic) tai infrapunasensori (infrared sensor). Robotti tarvitsee moottorit, ja rakentamisessa tulee ottaa huomioon se, miten sensorit robotissa asetetaan. Toinen etäisyyttä mittaava sensori asetetaan robotin eteen osoittamaan menosuuntaan päin. Toinen sensori asetetaan osoittaamaan robotin oikealle (tai vasemmalle) puolelle lähelle robotin keulaa. Moottoreiden sekä kahden etäisyyssensorin lisäksi tarvitaan tietysti EV3-älypalikka sekä legoja itse robotin rungon kokoamiseen.

Seinää seuraavan robotin rakenne.

Seinää seuraavan robotin rakenne.

EV3-seinänseurantarobotin ohjelmoiminen

Robotin toiminta perustuu siihen, että robotti yrittää pysyä vakioetäisyyden päässä oikealla puolella olevasta seinästä. Tämä tapahtuu ohjelmakoodissa siten, että kun robotti on esimerkiksi alle 6 cm etäisyyden päässä oikeasta seinästä, se alkaa pikkuhiljaa kaartaa vasemmalle. Kun taas robotti pääsee yli 6 cm etäisyydelle seinästä, robotti alkaa hiljalleen kaartaa oikealle. Kun robotti näkee edessään olevan seinän, se kääntyy joko jyrkästi vasemmalle jos oikealla puolella on seinä. Jos oikealla puolella oleva sensori ei havaitse seinää, robotti kääntyy oikealle. Ohjelmoiminen eroaa edellisistä esimerkeistä siten, että ohjelmakoodissa tulee ottaa jatkuvasti huomioon kaksi eri asiaa: etäisyys eteenpäin ja etäisyys oikealle. Etäisyyksien mittaamisen jälkeinen käsittely tapahtuu ehtolausekepalikoilla (Switch), jotka ovat ikuisen silmukan sisällä. Moottoreiden ohjaaminen tapahtuu Move Steering -palikoiden avulla, joista jokainen on asetettu on-asentoon palikan suoritusajan osalta. Etäisyys oikealle kannattaa pitää suhteellisen pienenä; Switch-palikasta kannattaa valita Compare cm ja etäisyydeksi 4 – 6 cm. Eteenpäin olevan sensorin raja-arvoksi kannattaa valita samalla periaatteella noin 10 cm.

Esimerkkikoodi seinää seuraavalle robotille

Esimerkkikoodi seinää seuraavalle robotille

ijormanainen

View my other posts

Leave a Reply

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