Rungon rakentaminen

Aloitimme projektin rakentamisen päättämällä robotin rungon muodon ja liikkumismallin. Päädyimme tasasivuisen kolmion muotoon sen vakauden ja yksinkertaisuuden ansiosta. Robotti on siis kykenevä liikkumaan mihin tahansa suuntaan sen pyöriensä (omnidirectional wheel) avulla, jolloin robotin liikkuvuuskyky paranee huomattavasti, ainakin verrattuna perinteiseen autoissa käytettävään nelipyöräiseen liikkumismalliin.

Runko

Kolmion mallisessa runkomuodossa ongelmaksi tulee liikkumisen monimutkaisuus. Kaikkia moottoreita ei voida vain ohjelmoida menemään eteenpäin silloin kun halutaan liikkua eteenpäin, koska robotti pyörisi silloin paikoillaan.

Eteenpäin (robotin etupääksi sovitaan kolmion yksi kärjistä) mentäessä liikkuminen on kuitenkin vielä suhteellisen yksinkertaista, mutta sivulle ja eteenpäin samanaikaisesti liikkuminen vaatisikin jo hieman ajattelua ja matematiikkaa. Tässä käyttämämme ohjelmointikieli LabVIEW kuitenkin auttaa ja tarjoaa valmiin mahdollisuuden luoda ns. Steering Frame (käytännössä erittäin yksinkertainen matemaattinen mallinnus robotista), jolla robottia voidaan käskyttää x ja y akselien suuntaisesti, sekä antaa pyörimisnopeuden θ.

Käytännön ongelmia

Todellisuudessa mikään ei kuitenkaan ole täydellistä. Moottorit ja renkaat ovat erilaisia, maa ei ole tasainen, eivätkä moottorinohjaimetkaan anna samoja arvoja ulos. Jos robottia pystyisi vain käskyttämään kulkemaan x-akselilla eteenpäin ja se kulkisi täysin suoraan, helpottaisi se projektia huomattavasti. Näitä virheitä aiheuttavia tekijöitä pystyy poistamaan tietenkin aivan perinteisin fysiikan keinoin: tasapainottamalla robotin kuormaa, tasapainottamalla renkaat, kalibroimalla renkaiden nopeudet jne. lista jatkuu loputtomiin. Tässä tapauksessa viisas pääsee vähemmällä ja matematiikka tulee kuvioihin.

Renkaiden moottoreissa on enkooderit, joiden avulla pystyy mm. selvittämään moottorin pyörimisnopeuden ja tämänhetkisen paikan erittäin tarkasti. Näiden tietojen avulla matematiikkaa ja ohjelmointia hyödyntäen moottoreiden todellista pyörimisnopeutta voidaan verrata haluttuun nopeuteen ja muuttaa haluttua nopeutta sen mukaan. Jokaiselle moottorille voidaan luoda vaikkapa PID-säädin, joka pyrkii aina tasaamaan moottorin nopeuden haluttuun arvoon. PID-säädintä voidaan soveltaa muuhunkin, kuin moottoreiden tasapainotukseen robotiikassa, mutta niistä kerron myöhemmin.

Mitä seuraavaksi?

Seuraavana tavoitteena on tehdä ohjelma, jolla robottia voisi ohjata ohjaimella (xbox-ohjain, RC-lennokin ohjain, ?). Kilpailutehtävässä robotin pitää pystyä toimimaan autonomisesti, sekä teleoperoimalla, eli jonkun ohjaamana. Keskitymme ensin teleoperoinnin suorittamiseen, sillä se on huomattavasti helpompi ohjelmoida.

Leave a comment