Oleme võtnud viiel korral osa iga-aastasest üritusest Robotex ja kahel korral autonoomsete robotite sumovõistlusest Baltic Robot Sumo. Robotex on tehnikahuvilistele mõeldud autonoomsete robotite võistlus ja iga aasta on uus ülesanne. Viimaste aastate valguses tundub see traditsioon rikutud olevat.
Robotex 2012 - joone jälgimine (ja jalgpall)
Esimene mõte oli üritust ignoreerida, sest jälle on sama ülesanne. See muutus, kui saime kastitäie äraviskamisele mõeldud arvutikomponente oma robootikahobi toitmiseks. Uuriti, et milleks see rämps ka kõlbab ja kui roboteid sai mainitud siis viskas sponsor nalja, et pangu me siis robotile nende logo ka peale, kui valmis saab. Sponsoriga robotit meil polegi varem olnud ja lubasin seepeale anda endast parima, mida selle kastitäiega teha annab. Sellest sai teha joonejälgija.
Joonejälgimise ülesanne pole Robotexil uus. Sellega Robotex algas ja eelmisel aastal tegid väljamaalased puhta töö võttes kõik 3 parimat kohta endale.
Joonejälgijaid on mitme tüüplahendusega, meid köitsid eriliselt protsessorivabad lahendused, sest need on tõelised "robotid igaühele". Algajal robotihuvilisel on niigi palju väljakutseid mehaanika valmistamisega ning kui sinna lisada programmeerimise lävepakk, siis sedasi tuleb uusi osalejaid suhteliselt aeglaselt peale. 2007 ülesande lahendasime me ära 3 releega. Sellel aastal on plaan kasutada siiski "analoogarvutit" kahe transistori ja fotodioodiga lahenduse asemel :)
Analoogarvuti peab leidma lahendused järgmistele probleemidele:
Sõit mööda sirget
20cm raadiusega pööre vasakule
20cm raadiusega pööre paremale
ristumine joonega
Ülesannet annab lihtsustada järgnevalt:
püsi joonel
ignoreeri ristumisi
Joonel püsimine
Üldiselt võib joonejälgijad jagada kaheks: 2 anduriga ja enama anduriga robotid. Viimased kasutavad tavaliselt äärmisi andureid kursi järsemaks korrigeerimiseks ning rajalt välja sõitmise korral joone viimatise asukoha tuvastamiseks. 2 anduriga on algajal robotihuviliselt tegelikult lihtsam ja odavam alustada.
Mind on alati köitnud kuju muutvad robotid ja oli kindel plaan seda ka joonejälgimise juures kasutada. Kiire guugeldamine näitas, et selliseid täitsa on kasutatud ning mõni on isegi edukas olnud. Lahenduse uba on esiosas, mis suudab joont jälgida kiiremini kui roboti kere seda ise eales suudaks. Seda asendab mõnel määral ka tihe andurite riba, mida kaks ratast enda ees lükkavad. Kunst on lihtsalt juhtida neid kahte ratast nii, et andurite keskkoht jälle joont kataks. Ülesanne on võrratult lihtsam, kui juhtida on vaja vaid üht mootorit - pööramise oma - ning ülejäänud robot tuleb nagu kutsikas juhtrattale ise järele.
Seega täpsem ülesanne analoogarvutile on: hoia juhtratas alati joone peal. Kahe anduri puhul tähendab see: hoia andurite signaalid võrdsed ning ratas pööratakse selle tulemusena automaatselt õigesti ja ülejäänud robot jälgib automaatselt juhtratast.
Joonejälgija jaoks on vaja kahte CD/DVD lugejat ja ühte kõvaketast. Kõvaketta pea mehanism on loodud joont jälgima ning seda ülikiirelt - see on meie roboti rool. CD lugejaid on vaja liikumise mootorite ja juhtelektroonika jaoks.
Kui nüüd mõelda nii, et kõvaketta pea hoolitseb selle eest, et juhtratas kunagi joonelt maha ei sõidaks, siis ainus väline tegur, mis seda teha suudab, on tsentrifugaaljõud. Seda tasakaalustab rataste hõõrdejõud. Roboti massil ei ole valemite kohaselt tähtsust. Rajalt välja paiskumise määravad ära ainult kiirus, kurvi raadius ning hõõrdetegur. Kurvi raadius on alati sama, seega joonel püsimise teine alamülesanne arvutile on kiiruse kontroll.
Kõvaketta pea suudab ainult teatud ulatuses pöörelda. See määrab ära juhtratta kauguse vedavast teljest. Mõistlik on ära kasutada pea kogu dünaamiline tööpiirkond koos minimaalse varuga - näiteks et mehaanika oleks võimeline võtma välja kuni 18cm raadiusega kurve.
Ristumiste ignoreerimine
See probleemi lahendamiseks on vaja, et roboti joone jälgimise osa ei jõuaks üle reageerida andurite mürale, mis paratamatult kaasneb joone ületamisel. Kui robot on mõeldud võtma 20cm raadiusega kurve, siis ristumised on kui ülijärsud kurvid, mida ei tohi jõuda jälgida selle lühikese hetke korral kui üks anduritest näeb ristumist ja teine veel ei näe.
Programm
Sisenditeks on kaks andurit. Väljundiks pööramise jõud ja liikumise kiirus. Programmeerija peab saama häälestada reageerimise kiirust ning maksimum kiirust. Lihtsaimal juhul peabki arvuti viima liikumise kiiruse maksimaalseks lubatuks ja hoidma seal. Pööramine toimetab omaette reguleerides jõudu vastavalt andurite signaalide tasakaalule. Ristumise hetkel näevad mõlemad andurid musta ja peaks seega jõu jätma minimaalseks. Vahetult enne ja pärast ristumist on probleem.
Elektroonika
Eelnevalt kirjeldatud programmi lahendamiseks on vaja operatsioonivõimendeid ja need leiduvad CD lugejas kõik ühes mikroskeemis. Tüüpiliselt on see 4-kanaliga sildlülituses draiver, kus on 4-6 operatsioonivõimendit sisendis omavahel kombineerituna. Vaja on juhtida optiliste andurite signaalid ühe kanali sisenditesse, selle kanali väljundisse tuleb kõvaketta pea. Teine kanal läheb kahe paralleel ühenduses DC-mootori külge. Võib kasutada lihtsat pingega proportsionaalset juhtimist ning võib lisada ka kerge negatiivse takistuse juhtahelasse saamaks paremat kiirendust ja kiiruskontrolli. Skeemid tulekul.
Tulemused
Esimene variant kasutab BA5983FM kivi, laptopi kõvaketta pead pööramiseks, anduriteks 2x TSL257-LF Light-Voltage Converter, 3x 50F ja 2,2V superkondensaatoreid toiteks (6,6V kogupinge), 2x FF-030PK mootoreid liikumiseks. Vedavad rattad 45mm läbimõõduga polüuretaantorust kokku sulatatud rehvidega. Ülekanne 22:89. Pööramiseks kasutusel kassettmaki linti vedav rull. Reaktsiooniaeg on piiramata ja kõvaketta pea võdiseb meeletult. Üks negatiivse takistusega liikumise draiver kahele paralleelühenduses mootorile.
Keskmine kiirus
14. september 0,7 m/s
1. oktoober 0,91 m/s
Robotex 2010 - jalgpall
See aasta oli pettumus. Igas mõttes. Ülesanne oli eelmise aasta oma, väiksed täiustused olid mõeldud vaid ülesande pilditöötlejatele sobivamaks tegemiseks. Kord on olnud, et on vabavoor, kus on teist laadi ülesanne ning põhivoor, kus võistlesid koolid, kuid seekord oli mõlemas voorus sama ülesanne, lihtsalt osalejad olid löödud tehnilise taseme järgi kaheks.
Nädal enne võistlust ärkas põhitegija üles ning ütles teistelegi, et peaks ikka minema. Parajasti midagi ees ei olnud ning terve mõistuse vastaselt sai nõus oldud. Eelmistel kordadel oli end väga hästi õigustanud põhimõte, et kui kaks nädalat enne võistlust robot valmis pole, siis me ei osalegi.
Mõnes mõttes oli see väga hea harjutus iseseisvaks eluks. Esimestel päevadel sai joonestatud roboti detailid. Järgmiseks need kokku pandud virtuaalselt. Sealt tulid tööjoonised ning materjali spetsifikatsioon. Edasi tuli materjali ning tööriistade hankimine. Oli selge, et kiire tulemuse saavutamiseks oli vaja õigeid tööriistu õige töö jaoks. Jäi üle veel detailid valmistada ning kokku panna. Vastavalt kuidas robot hakkas kuju võtma, oli aeg ka sellise pisiasjaga tegeleda, nagu palli löömise päästik ning sellest hetkest alates läks kõik käest. Palli pidi lööma kelk, mida kiirendasid 4 rulluisu ratast ning kelgu pidi rullide vahele nihutama vedru. Lähte asendisse viimiseks tuli rulluisurattad keerata kaldu ning vedru abil kelk lähteasendisse tõmmata. Polnud varem midagi sellist teinud ning tulemusena toimus vaid 1 löök 5'st ning siis ka oli löögi jõud nõrk. Aeg oli otsas.
Varahommikuks läksime Robotexi saali ning proovisime paaniliselt löögimehanismist asja saada. Mingi hetk oli aeg kibe pill alla neelata ning liikumiseks programm luua. See oli sekundite mäng. Testimiseks muidugi aega ei jäänud. Väljakul üllatusime meeldivalt, et roboti mootorid liikusid juhuslikult õiget pidi ning masin isegi tegi midagi, kuid kahjuks oli löömise algoritm jäänud testimisreziimi ning liikumise algoritm täielik saast. Vastane lõi ühe oma värava ning saime edasi selles voorus. Löömise algoritm sai küll tööle, kuid kuna löömine ise kriitikat ei kannatanud, siis tegime uue löömise lahenduse. Kahjuks selle käigus läks robot oluliselt kergemaks ning raskuskese täiesti paigast ära. Testimiseks jällegi aega ei jäänud ning kuna seekord sattusime sama võimeka vastase otsa, siis peale viimast viigi vooru otsustasid kohtunikud me piinad lõpetada ja kumbki võistkond ei saanud edasi.
Õppetunnid:
Pole mõtet minna testimata asjaga - kui kaks nädalat varem asi valmis pole, siis enam see valmis ei saagi.
Vähem efekti ja rohkem funktsionaalsust! Meie katsetamata ja ambitsioonikas löögimehanism oli küll täiesti originaalne kuid ka täiesti ebaefektiivne.
LEGO pole hõbekuul. Nägime kurja vaeva, et 3 mootoriga kogu liikumise-löömise ülesanne ära lahendada ning seetõttu tuli kasutada keerukaid mehaanilisi liigendeid. Rohkem juhitavaid mootoreid ja andureid oleks tegelikult ülesannet märkimisväärselt lihtsustanud piiratud aja tingimustes.
Robotex 2009 - jalgpall
Kahe roboti vaheline jalgpall korraga 10 golfi palliga väljakul. Osalejad jagunesid kaheks: pilditöötlejad ja hea õnne peale lootjad. Meie võistkond oli teisest grupist. Vaba aja puudusel me oma robotiga osalemist ei planeerinud, kuid 2 nädalat enne võistlust saime kutse osaleda ühes võistkonnas nõu ja jõuga. Piiratud vaba aja ja lühikese tähtaja tingimustes tuli püstitada realistlik eesmärk ning selleks sai "ühe punkti strateegia". Ehk robot pidi väljakul saavutama stabiilselt vähemalt ühe punkti. Võistkonna nimi oli "Proovija" ja robotiks "Ehku II", võistkonna numbriks 2. Tulemuseks 7.-10. koht 19 osaleja seast.
Õppetunnid:
Tuleb kaasata pilditöötluskompetentsi edukaks osalemiseks, sest võistlused on järjest enam kaldu pilditöötluse soosimise suunas.
Võistluse korraldus oli eeskujulikul tasemel - on, millest õppust võtta.
Baltic Robot Sumo 2009 Klaipeda Autumn Cup
Mõtlesime kevadel tehtud panust teist korda ära kasutada ning liitusime ühe kevadiseks võistluseks ettevalmistatud platvormiga, mis ei osalenud edukalt, kuid millel oli meie silmis tohutu potentsiaal. Kuna vanad lindid olid väikse kasuteguriga, sai robotile uued ja õhemad tehtud. Kahjuks teisest silikoonist, mille haarduvus osutus võistlusel oluliselt halvemaks. Nüüd on meil firmas erimõõtudega silikoonkattega lintide tegemise oskus ja jääme ootama ülesannet, kus sellest maksimum võtta. 21-22 koht 26 osaleja seast, võistkond nr. 15.
Õppetunnid:
Võistluse organiseering jääb alatiseks meelde kirka halva näitena.
GPS on autojuhi sõber. Riiast saime läbi ühe teise eesti numbrimärgiga auto taga sõites. Varem olime tast mööda sõitnud, seega kui Riia piiril end nõutult tundsime, siis lihtsalt ootasime ta ära lootuses, et ehk ta on samas suunas teel. Tagaaknast paistis läbi armatuurlaual olnud GPS seade, mis seletas ka ära need jänesehaagid, mis sundisid meid läbi kõrvaltänavate minema. Me ei saanudki teada, kuhu ta teel oli, kuid Riia linnast vedas ta meid läbi :)
Teada saamaks oma potentsiaali pole vaja võistlusele endale minna, piisanuks kohaliku tähtsusega eelvoorust.
Baltic Robot Sumo 2009 Tallinn Spring Cup
Meie esimene katse osaleda robotite sumovõistlusel. Läksime 2 500g kategooria robotiga. Seadsime eesmärgiks võistluse taset tõsta puksides vähemalt ühe võistleja välja. Mõlemad masinad teenisid kumbki 2 punkti. Robotite numbrid olid 4 ja 11.
Õppetunnid:
Sumo võistlusel ei ole peamine elektroonika kvaliteet, vaid põhi rõhk on ratastel. 6-rattaline sõitis väljakult välja küll pigem labase elektroonika kui rataste haarduvuse tõttu.
Arvutiga joonestamine võimaldab kiiremini ehitada. Paljud vaimusilmas olnud 6-rattalise roboti konstruktsioonid muutusid teistsuguseks peale valmis joonestamist. Tulemus oli esmaklassiline ja liikuvate osade vahele mahtus kõikjal vaid 0,5mm vaba ruumi.
Lihtne on elegantne. Üks robot valmis sama LEGO NXT baasil, mille 2008 ostsime. Kuna oli raskusi kaalupiiridesse mahtumisega, siis lõpuks oli robotil vaid üks kaugusandur, kuid liikumine sai sihipärasem, kui 8 anduriga varustatud teisel masinal.
Hea maastikuläbivus ei võrdu hea haarduvusega. 6-rattaline liigenduv kere ja 8 vedavat mootorit kõlavad hästi, kuid üle serva sõites kiskus alla vajunud liigend kogu masinat alla. Puuduliku testimise tõttu ei saanud see varem ilmsiks.
Robotex 2008 - toa koristamine.
Suhteliselt keeruline ülesanne, kui võidu peale välja minna. Otsustasime osaleda. Miinimumprogramm nägi ette, et liigume sirgelt ja lükkame kõik ette jääva koristusalasse. Vaba aja puuduses, sai erandlikult tehtud valik kommertslahenduse kasuks - LEGO NXT. Roboti nimeks sai "Ehku", võistkond "Proovija" ja number 18. Tulemuseks 4. koht ja nutikaima roboti eriauhind.
Õppetunnid:
Kommertlahendus kiirendab valmimist, kuid hõbekuul see pole. Viimasel õhtul tuli LEGO valgusandurid välja vahetada TAKEX professionaalsete peegeldusandurite vastu, mis ellimineerisid taustavalguse mõju.
Osalemine on kõva saavutus. Võistlus oli poole peal ja seni võistelnutel oli kirjas tulemuseks ümmargune 0. Selles valguses on lollikindel plaan vähemalt üks punkt koguda väga hea plaan.
Robotex 2007 - köieronimine.
Võitjateks tulid stabiilse mehaanikaga robotid, mis olid ka piisavalt kiired. Muljet avaldas üks LEGO põhjal tehtud robot, mis ainult 2 mootoriga lahendas ülesande ja oleks võinud ka üheainsaga edukalt hakkama saada. Kahjuks ei olnud LEGO standard mootorid piisavalt kiired. Osalesime kahe masinaga, võistkonnad 10 ("Proovija") ja 18 ("Osaleja"), mis vastavalt saavutasid 5. ja 4. koha. Mõlemad olid ka ainsad robotid, mis köielt alla kukkusid. Olime ainsad võistlejad, kes kasutasid liikumise lahendamiseks protsessorite asemel releesid. Samuti olime ainsad, kes kasutasid DC/DC muundajaid roboti tööpinge tõstmiseks.
Õppetunnid:
Eelmise aasta fiasko tõttu oli kindel siht - robot olgu kaks nädalat enne võistlust valmis, või me ei osale! See suunitlus töötas, kuid 2 nädalat varem toimunud proovivõistlusel selgus, et köiel peatumise tähis ei juhtinud elektrit, nagu olime eeldanud.
Kohe kui olime köiel peatumise andurid ringi ehitanud, asusime robotite kiirust tõstma. Ühe masina ronimismehanismi ringi ehitamine läks meile maksma auhinnalised kohad - jäi vähe aega ronimise enda testimiseks.
Lihtne on hea, kuid häälestatav on parem. Peale alla kukkumist läks mõlemal robotil sihtimine paigast ja sõit käis kõverjoont mööda. "Osalejal" oli tagumine telg peenhäälestatav ja seega oli masin 3 minutiga jälle joonel, "Proovijal" oli vaja pikki katseseeriaid, enne kui telje kinnitus juhuslikult õigesse asendsisse oleks jäänud ja nii sõitis "Proovija" korduvalt köiest lihtsalt mööda.
Parem üks hea, kui kaks keskpärast tulemust. Kui võistlus läbi oli, tõstime "Osaleja" tööpinge 60 voldi peale ja nii saime 2 sekundit võitja ajast kiiremini üles, kuid selleks tuli mehaanikat täiustada ühe juuksekummi võrra. Nimelt meie iselukustuv ronimismehaanika põrutas suurel kiirusel nii palju, et köiest kinni hoidmiseks oli vaja täiendavat jõudu. Ilmselt oleks see välja tulnud rohkemal katsetamisel, kuid palju aega kulus "Proovija" kiiremaks tegemiseks. Oleks pidanud rahulduma proovivõistlusel saadud 23 sekundilise tulemusega.
Võitjaks tuli kõige lihtsama algoritmiga ja kõige stabiilsemalt töödanud robot. Meie osalesime kahe masinaga, millest üks jäi programmi vea tõttu väljakule ilmumata ning teisel ütles väljakule jõudes üles üks lap-topi aku seest taaskasutatud akupurk.
Õppetunnid:
Olime liialt keskendunud võidule ja vähem osalemisele - viskemehanism oli kõige paremini välja töötatud osa (roboti 9'st mootorist 6 tegelesid viskamisega), jättes varju väljakul liikumise ja energiaga varustamise. Viskemehanismi üledimensioneerimise põhjustas varjatud ambitsioon vastasrobot palliga pikali visata.
Taaskasutamine eeldab põhjalikku testimist - kui vigane aku purk sai eemaldatud, suutis masin veel poolt tundi askeldada. Lihtne diood iga akuga paralleelis oleks päeva päästnud.
sügis 2012
Robotex 2012 jaoks valmistumine: 14.09 proovisõit, 01.10 proovisõit.
jaanuar 2012
Loobusime Karuteenete alt testilahenduste pakkumisest. Keskendume elektroonika disainile ja programmeerimisele. Lisandus uus valdkond - tootmisettevõtetele toe pakkumine tootmistehnika elektroonika rikete korral.