Reaali Robootika.COM

NXT robotimaailm ja programmeerimine C-keeles

Robootika: Sleepless in Tallinn

Sellest on nüüd aastaid tagasi kui ma mõnest progemisest nii haaratud olin, et ööl ega päeval vahet polnud. Kas kardinad liikusid ise ette ja eest ära? Ah et juba jälle päev?

Tegelikult olin haaratud robootikast. Sügisest alates olen taas juhendanud robootikaringi ning täpselt nädal tagasi saime kätte koolivaheajal toimuva robomiku võistluse korralduse. Seega viimase nädalaga tegid poisid valmis kaks erineval põhimõttel töötavat võistlusrobotit.

Võistlus on pealtnäha lihtne: on üks suur ovaalne 60cm laiune rada, mille sisering on tähistatud 5cm laiuse musta joonega ning väline serv 5cm laiuse punase joonega. Võidab see, kes kiiremini kolm ringi läbib.

Poiste käe ja tiheda mõttetöö abil valmisid Valgusrobot ja Värvirobot. Esimene neist kasutab kahte valgusandurit ning püüab nende abil maksimaalselt kiiresti mustal joonel sõita. Teine robot kasutab värviandureid ning püüab nende abil võimalikult kiiresti ühest rajaservast teise sik-sakitades ringitada.

Praktiliselt tulid robotid ühekiired, kuigi üks neist läbib oluliselt pikema teekonna.

Valgusroboti pluss:
1. Robot läbib peaaegu lühima tee ehk siis siseringi

Valgusroboti miinus:
1. Andurite kalibreerimisele vaatamata töötavad need veidi ebakindlalt erinevates valgustingimustes. Selle asemel on hea kasutada Hitechnicu EOPD andureid, kuid neid on mul vaid üks – ja siis ei hakanud seda kasutama.
2. Robot kaotab joone väga kergelt kui kiirust tõsta.

Värviroboti pluss:
1. Värviandurid töötavad kiiresti ja erakordselt täpselt kõikides valgusoludes.
2. Otsesõites võib robot arendada päris suurt kiirust (kass üllatus korduvalt selle roboti tegutsemise peale)

Värviroboti miinus:
1. Juhuslikkuse printsiibil võib ette tulla olukord, kus robot paneb täie lauluga risti joone peale. sellisel juhul on üsna kindel väljasõit.

Kuidas kõik need miinused eemaldada ja teha väga kiire ringirobot, seda ma tean. Aga nii noortelt kõrgemat matemaatikat, loogikat, abstraktset mõtlemist, alamprogramme jms nädalaga selgeks õppida oleks ilmselt palju tahta. Ja vingeid programme, millest nad midagi aru ei saa, pole mõtet neile kirjutada.

Sest võistlusel võidakse poiste käest küsida, “kuidas sinu tehtud programm töötab”. Ja selle peale oleks ju päris lahe kui 11-12 aastane hakkaks selgitama õpetajale “uurisin siin väheke Calculus printsiipe robotite juhtimisel ning mõtlesin joonejälgija juures kasutada sellest tulenevalt PID-controlleri tööpõhimõtet” või “värviroboti juures otsustasin järskude tagasipöördenurkade juures võtta kasutusele gyroskoop-anduri, et selle abil vastavalt pöördenurgale tasakaalustada roboti esialgne suund, tagades sellega sujuva ja kiire sõidu”.

Ülaltoodud kaks olidki ideed mis mind hommikuni arvuti taga ja ilmselt kauemgi oleks hoidnud kui Kaja poleks ajanud mind Lasnamäe Spordihalli lätti võistlema minejatele köieharjutusi ja ronimisjuhendamist tegema.

PID Controlleri tööpõhimõte joonejälgijale minu vabas sõnastuses: “analüüsides läbitud teed ja võttes arvesse käesolevat hetke joone ning andurite suhtes, ennustame kuhu ja kui kiiresti peab robot järgnevalt liikuma”.
Wiki page on PID Controllers