Universaalne autonoomne robotplatvorm
Olles aastaid olnud Microchipi ja PICi usku tekkis kange tahtmine vaadata, mida kujutab endast see Arduino platvorm millest viimasel ajal nii palju räägitakse. Olles omale soetanud Arduino Mega 2560 plaadi, tahtsin selle midagi kasulikumat tegema panna kui tulukeste vilgutamine. Kuna lendavaid aparaate hästi ei usalda, siis otsustasin ehitada maad mööda kulgeva seadme.
Mõningase nuputamise järel sai paika ka roboti riistvaraline osa (selles olin ma ise veel täiesti veendunud). Roboti ajuks on: Arduino Mega 2560, jõudu annab 7,6V NiMh aku, objektide tuvastamine käib HC SR04 ultrahelisensorite toel ning navigeerimisel on abiks HMC5883L magnetomeeter koos Skylab SKM53 GPS mooduliga. Mõned kuud hiljem potsatas mu postkasti ka roomikutel alus mille usinad kollased näpud olid kaugel Hiinamaal kokku monteerinud.
Lahtipakkimisel ilmnesid esimesed probleemid. Alus oli teist marki, väiksem, aeglasem ning roomikud libedast plastikust. Ilmselgelt ei olnud robot võimeline täitma ühe seatud eesmärkidest … olema võimeline sõitma üle kõnnitee äärekivide. Back to the drawing board…. äkki proovime seekord teha ratastel robotit. väikese joonestamise, saagimise, viilimise, lõikamise, kirumise, detailide Hiinast ootamise järel oli valmis küllaltki hea ronimisvõimega ratastel alus. Alus ise on nelikveoline nelja Dagu RS003A mootoriga. Mootorid on väikesed ning suhteliselt taskukohased aga tublid oma näitajate poolest 1:75 , 30W, 130 rpm @ 6V, 6A (lisaks on neist mootoritest saadaval ka integreeritud enkoodriga versioon).
Järgmine probleem…uued mootorid olid liiga võimsad, Arduino motor shield annab välja 2 x 2 A aga meil oli vaja vähemalt 4 x 6 = 24 A. olin valmis juba pea ees jõuelektroonikasse sukelduma, kui avastasin vot sellise asja: SparkFun Monster Moto Shield. Nagu nimigi ütleb on tegemist tõelise koletisega, mis võimaldab lühiajaliselt 2 x 50 A voolu endast läbi ajada ilma katki minemata.
Kuna roboti veermikugeomeetria on optimeeritud stabiilsusele maastikul, ei ole diferentsiaalrežiimis pööramine antud seadmele eriti meeltmööda. Ehk siis tanki või linttraktori kombel ta pöörata ei tahtnud. Ega ma jonni ei jätnud, tahab või ei taha peab pöörama hakkama. Probleemi lahenduseks oli kummirehviga esirataste asendamine mitmesuunaliste rullikratastega (omniwheel).
Tundus, et riistvaraga on nüüd ühelpool ning saab rahus tegeleda hoopis tarkvara debugimisega.
Eip …. väikesed aga võimsad mootorid, koos roboti suure kaaluga hakkasid mõnuga lõhkuma ülekandeid. Ega mootor ei saagi vastu pidada, kui täiskiiruse pealt tagurpidikäik anda. Peab küll ütlema, et antud meetodil olid roboti kiired suunamuutused väga efektsed. täiskäigu pealt hüppega 180 pööre ja teises suunas minema nii et kummipuru jutt maas. Uued mootorid, aeglasem ülekanne, sujuv kiiruse muutmine ja mõlema mootori PID regulaatori parem häälestamine aitasid.
Nüüd kus roboti mehaaniline ja elektriline osa enam vähem toimisid sai keskenduda progammeerimisele ning katsetamisele. Tulemus: lisatud sinihambamoodul HC-05, GPS moodul vahetatud Adafruiti MTK3339 GPS breakout 3 vastu ja lisatud mitmeid puutesensoreid, kuna ultraheli sensoriga näiteks kuusepuud ja võrkaeda eriti hästi ei “näe”. Esialgne Skylabi GPS moodul sai küll kiiresti väga täpse fixi aga pärast seda keeldus tükk aega asukohta uuendamast (tegi seda iga 10 m tagant); ei oska öelda, kas tegin ise midagi valesti või oli veidi katkine seade juhtunud. Adafruiti GPS töötab nii nagu peab. Pärast EGNOSi aktiveerimist isegi paremini.
Hetkel on robotit võimalik otse juhtida Androidipõhisest nutisedmest. Liikumistrajektoore saab ette anda MAVLINK 1.0 (Micro Air Vehicle Link) protokolli tunnistavatest droonidele mõeldud missiooni planeerimise programmidest (osaline ühilduvus programmiga Droidplanner 1.0). Viimaseks tööks selle roboti kallal on hetkel jäänud aku laetustaseme mõõtmine.
Edaspidi on plaan lisada robotile masinnägemine Pixycam CMU5 abil. Suurendada parameetrite hulka, mida saadetakse nutiseadmesse üle MAVLINKi. Sinihambale lisaks võiks olla andmeside üle WiFi ning GSM modemi. Mootoritesse minevatele juhtmetele ning enkoodritele tuleb katted peale teha, kuna mudas müttamine ja üle kivide ning kändude ronimine ei mõju neile hästi.
lisaks üks selgitav video kah.
Teine video siseruumises ja veidi modifitseeritud pöörava kerega:
Analoogne süsteem istutatud mudelpaadile TehnoHack üritusel
Ja ongi esialgu kõik.
« « Matkasellid leidsid Skeemipesa Köögi energiatarbe stend » »
Mind paelub idee säärasest muruniidukist: http://members.iinet.net.au/~tnpshow/RCLM/intro.htm ja sarnasest androidilaadsest juhtimisplatvormist. Veel oleks tahtnud näha, kuidas masin äärekivist üles läheb. Vinge massin, tervisi!
Tere. Äärekivist ülesminekuks on see robot võimeline aga ma pean kuidagi mootorite toitejuhtmed ja enkoodrid ära kaitsma, need kipuvad alati veidi katki minema ronimise ajal. Sarnase muruniiduki saab küllaltki lihtsalt teha. Android telefoni Joystick BT commander 5.2 (android marketis olemas). Vastuvõtjaks HC 05 sinihamba moodul (u 50m leviala). Arduino Uno ja Adafruiti Monster moto shield. Akuks 12V upsiaku ning lisaks kaks u 50 watist harjadega ja ülekandega mootorit. Mootorite nimikiirus võiks olla nii 100 kuni 200rpm. Veidi progemist ja mehaanikatööd ning ongi valmis. Bluetoothi, pwmi, ja kõige muu kohta on netis väga palju näiteid.
Kaugel sa asjaga oled, midagi uut?
Küsimus: Kui täpselt sa GPS’ga asukohta määrata saad
Uut on niipalju, et muutsin roboti veermikku kuna maastikul oli hetkel kasutatav pööramismeetod akusid kurnav. Kõrges rohus või liivas keerates oli suurte omniwheelide takistus väga kõrge (kippus sisse kaevuma). Hetkel on robot keskliigendiga (midagi sarnast nagu kunagi suured “Kirovets” traktorid :). Pööramiseks on robotil keskelt liigendiga raam ning võimas 26 kg/cm mudeliservo, lisaks mängitakse ka parema ja vasaku poole rataste kiirusega (kui aega saan panen mõned videod ja pildid kah siia üles).
GPS täpsus: kui lageda platsi peal aeglaselt liikuda või seista, siis tuleb täpsuseks u 1,5m; tavalistes tingimustes (puude all, majade vahel, pidevas liikumises, näha alla 5 satelliidi) on täpsus tulnud 3..4m kanti. Kui robotile ette anda, et ta peab targetist 1 m kaugusele jääma, siis siblab tükk aega ringi ja vahel ei leiagi sihtpunkti. Kui panna sihtpunktist min kauguseks 3 meetrit, siis leiab alati. NB! Egnos on sisse lülitatud aga koordinaatide filtreerimist ei kasuta.
Mul tegemist muruniidukiga, mis oma 2 ha peaks iseseisvalt ära niitma.
Konstruktsiooni plaanin teha 2 veo- ja 1-2 passiivse tugirattaga. Hetkel teen väikest mudelit – selleks tuleb oma ülafrees laua alla panna, et saaks väikeseid juppe freesida … korra juba jäi üsna vähe puudu, et oleks sõrme freesinud – 30 000 pööret minutis, seal pole pikka pidu.
Lihtne oleks juhtimine GPS peal teha, aga täpsust jääb väheks, olen kuulnud, et geodeedid kasutavad mingit täpsemat … nii cm v paar, kas sa sellest tead midagi.
Otsi netist sellist asja nagu differential GPS (suht kallis valmis süsteemina aga täpsus on juba sentimeetrites). Lisaks GPS vastuvõtjale on vaja spetsiaalset vastuvõtjat, mis püüab DGPS majaka signaali, kui seda signaali pole, siis pannakse differentiali puhul ise püsti lokaalne majakas. Mõned entusiastid on selliseid süsteeme ka ehitanud hiina moodulite ja Arduino baasil. https://sites.google.com/site/wayneholder/differential-gps-with-ublox-modules
Maailmas on ka hulk suuri DGPS majakaid, mis parandavad näiteks lennujaamade jne ümbruses GPS täpsust (ma kahjuks Eestis asuvate majakate ning nende levi kohta suurt ei te).
Võttis aega, mis võttis, kuid eile tellisin DGPS RTK jubinad ära, “Base”, “Rover”, raadiolink, antennid.
Tänud sulle vihje eest.
Kas Skeemipesa seltskond on huvitatud arenduses kaasa lööma.