Aga millistest põhimõttelistest detailidest robotid kokku on pandud? Kuidas nad maailma tunnetavad ja otsustavad, kuidas ümbritseva mõjutustele reageerida? Kuidas robotitele uusi trikke õpetatakse?
Parim võimalus nimetatud küsimustele vastuste saamiseks on ise järele proovida. Aga kust alustada? Kirjeldame üht käegakatsutavat võimalust robotiehituse rõõmude ja muredega tutvust teha: Lego Mindstorms NXT.
Lego Mindstorms
1998. aastal valmis Lego ja Massachussetsi Tehnoloogiainstituudi (MIT) meedialabori koostöös Lego tootepere Lego Mindstorms, milles materjaliseerusid professor Seymour Paperti nägemused tehnikaalast loovust arendavast konstruktorist. Selle südameks oli pisikest arvutit sisaldav kollane klots, mille külge sai juhtmetega andureid ja mootoreid ühendada ning millele sai nimeks RCX ehk Robotic Command eXplorer.
Levinuim RCX klotsi sisaldav komplekt oli Robotics Invention System, kus olid peale RCX veel puute- ja valgusandurid, mikromootorid ja hulk mehaanilisi detaile, kokku üle 700. RCX-l oli ümbritseva tunnetamiseks kolm sisendit andurite jaoks ja kolm väljundit mootorite ühendamiseks. Klots sai teiste RCX-de ja arvutiga suhelda läbi infrapunaliidese, mis on tüüpiliselt igasugustes televiisorite jms kodutehnika juhtpultides kasutatav tehnoloogia.
Lego Mindstormsi esimene põlvkond võeti vastu suure õhinaga. Juba mõned nädalad pärast RCX klotsi müügile tulekut võtsid entusiastid selle nii otseses kui kaudses mõttes pulkadeks ja riputasid klotsi detailse kirjelduse Internetti. Kohe asuti looma Lego enda pakutavale programmeerimissüsteemile RCX-Code alternatiive, mille tulemusel on kasutajatel nüüdseks võimalik valida lisaks Lego klotse meenutavate komponentidega RCX-Code programmeerimissüsteemile mõni muu meelepärane programmeerimiskeel, olgu selleks Java või C sarnane NQC (Not Quite C) vms.
Lego Mindstorms koos RCX klotsiga panid aluse aukartustäratavale kogukonnale nii noorte leiutajate, hobientusiastide kui ka ülikoolides näiteks robootikas ja tarkvara modelleerimise valdkonnas uurimistööd tegevate teadlaste seas.
Aastate jooksul tehti RCX-le pisiparandusi, kuid siiski sisaldavad kõik RCX versioonid ühesugust 8-bitist mikrokontrollerit ja on programmiliselt ühilduvad.
Mindstorms NXT
Ajakirja Wired 2006. aasta veebruarinumbri andmetel tegi Lego 2004. aastal julge otsuse Mindstorms täiesti ümber teha. Otsus oli osa mahukamatest ümberkorraldustest, mis järgnesid Lego ajaloo suurimale kahjumile 2003. finantsaastal. 2005. aasta alguseks olid ideed jõudnud järku, kus Mindstormsi tootepere juht Søren Lund otsustas ühendust võtta väikese grupi Mindstormsi kasutajate kogukonnas silma paistnud inimestega ja tegi neile ettepaneku osaleda Mindstormsi uue põlvkonna väljatöötamisel. Steve Hassenplug, John Barnes, David Schilling ja Ralph Hempel osalesid järgneva 11 kuu vältel aktiivselt NXT arendusel, tehes seda vabatahtlikena. Kuigi Lego ei realiseerinud komplekti hinna etteantud 250 dollari piires hoidmise kaalutlusel kõiki ekspertkasutajate ettepanekuid, võeti siiski suur hulk neist arvesse.
NXT riistvara
NXT komplektiga tuleb kaasa üle 500 detaili, millest märkimisväärsemad on NXT juhtmoodul, servomootorid ja andurid. Mootorites on sisseehitatud ülekanded, mis võimaldavad neid ilma täiendava ülekandeta paljudes rakendustes kasutada. Erinevalt RCX-ga kaasa tulnud mootoritest on NXT-i mootorid tagasisidega, mis annab võimaluse mõõta mootori tegelikku pöörlemiskiirust ja pöördenurka, mis võib eeldatavast koormuse muutumise tõttu erineda. Täiturite poolelt on NXT-l veel ka valjuhääldi, millega saab tekitada erineva kõrgusega toone ja maha mängida salvestatud helilõike.
Komplektiga tuleb kaasa neli andurit: mikrofon, puuteandur, valgusandur ja ultraheli kaugusandur. Mikrofoniga saab mõõta heli tugevust või salvestada helilõiku. Puuteandur on sisuliselt lüliti, mille klemmid ühendatakse kokku, kui andur piisava survega vastu mingit objekti suruda. Valgusanduriga saab mõõta valguse üldist nivood, näiteks, kas toas on pime või valge, või peegelduvat valgust, näiteks, kas tegemist on musta või valge pinnaga. Ultraheli kaugusanduriga saab mõõta objektide vahemaad.
NXT puhul on märkimisväärne, et nii riistvara kui tarkvara spetsifikatsioonid ja arenduskomplektid on algusest peale Mindstormsi ametlikul kodulehel saadaval. Sealt võib lugeda, et NXT komplekti ajuks on 32-bitine ARM7 protsessorituumaga mikrokontroller, mille taktsageduseks on 48 MHz. Mikrokontrolleril on 64 kB operatiivmälu ja 256 kB -välkmälu programmide salvestamiseks.
Lisaks NXT komplektis olevatele anduritele-täituritele on kontrolleriga võimalik ühendada ka vana süsteemi andureid ja mootoreid. Selleks on vaja ise teha või osta vastavad juhtmed, mille kirjelduse leiab Mindstormsi veebilehelt. Lisaks Lego anduritele on NXT-ga võimalik ühendada mitmeid teiste firmade pakutavaid andureid. Näiteks HiTechnicu pakutavat elektronkompassi suuna määramiseks ja güroskoopi asendi muutuse kindlakstegemiseks. Täiendavat infot leiab Lego NXT kogukonna veebilehelt.
NXT programmeerimine
Kui roboti mehaanika on kokku pandud, tuleb valmis ehitatud olevusele hing sisse puhuda. Hingeks võib roboti puhul pidada programmi, mis robotit juhib. Ka selleks pakub NXT hulgaliselt võimalusi. Lihtsaim programmeerimise viis on algsesse põhivarasse sisseehitatud 5-sammuline programm, millega saab komplektiga kaasa tulevas õpetuses kirjeldatud kolmerattalise TriBoti poole tunniga ilma lisavahenditeta sõitma panna, kui patareide ostmine suures õhinas ära ei ununenud.
NXT programmeerimise võimalused avanevad aga siiski alles arvuti vahendusel. Algajatele soovitaks kindlasti komplektiga kaasatulevat visuaalset programmeerimiskeskkonda, kus kõiki objekte ja tegevusi kujutatakse ette intuitiivsete moodulitena, mida saab omavahel virtuaalsete Lego klotsidega kokku ühendada ning kus vastava anduri või mootori parameetreid saab häälestada. Keskkond on tehtud National Instruments programmeerimissüsteemi LabView eeskujul.
Teksti kujul programme kirjutada armastavad NXT tarbijad saavad kasutada C-laadset keelt NXC-d (Not eXactly C) või Javat, näiteks vabavaralise Lejose projekti NXJ mooduli toel. Nimetatud tarkvaravahendid toetavad NXT klotsi riistvarakonfiguratsiooni ja sisaldavad enamiku andurite kirjeldusi.
Lisaks NXT klotsi sees töötavatele programmidele on olemas ka klotsi üle Bluetoothi juhtivad programmeerimisvahendid. Sellisel juhul teeb kogu arvutustöö ära laua- või sülearvuti, NXT ainult edastab andurite lugemeid ja täidab saadud käske. Üheks sellist programmeerimist võimaldavaks keskkonnaks on Microsoft Robotics Studio 1,0.
Kuhu edasi?
Mindstorms NXT on värske toode ja kasutajad üle maailma alles avastavad komplekti tegelikku potentsiaali. Näiteks on juba loodud programm NXT-Symbian, mille abil saab NXT klotsi Bluetoothi toetavatest Symbian operatsioonisüsteemi omavatest mobiiltelefonidest (Symbiani kasutavad enamik Nokia ja mitmed Sony-Ericssoni, Samsungi jt tootjate mobiiltelefonid) juhtida. Seega, kui NXT klotsi arvutusvõimsusest väheks jääb, võib oma leiutisse lisada mobiiltelefoni!
Lego Mindstorms NXT komplekte tuleks küsida Lego edasimüüjate käest ehk suurematest kaubamajadest ja mänguasjapoodidest. Komplekti hinna suurusjärk on 5000 krooni.
Seega, head leiutamist!
Loe veel
- Lego Mindstorms ametlik veebileht: http://mindstorms.lego.com
- Lego Mindstorms NXT kogukond: http://www.nxtasy.org
- NXT arenduse lugu ajakirjas Wired - Veidrikud mänguasjamaal (Geeks in Toyland): http://www.wired.com/wired/archive/14.02/lego.html
- HiTechnic: mitmesugused lisad NXT-le: http://www.hitechnic.com
- LDraw: programmid Lego mudelite 3D graafikas joonistamiseks: http://ldraw.org






