Kurssin robottiohjelmointi, kesä 2011 harjoitustyö Juha Hämäläinen (juha.h.hamalainen@jyu.fi) Jussi Jokinen (jussi.p.p.jokinen@jyu.fi) Videoita robotin toiminnasta: http://www.youtube.com/user/hamismies Dokumentissa olevat kuvat isompina ja lisääkin: http://picasaweb.google.com/hamismies/lego Nosturirobotti robotin tarkoitus Molemmat työskentelemme tällä hetkellä Jyväskylän yliopistolla Agora Center:llä yritysprojekteissa. Yhdessä hankkeessa tuli tarvetta tehdä kokeita nostureilla. Kokeet olisi voinut toteuttaa vain simulaatiolla, mutta tämä robottikurssi tarjosi oivan mahdollisuuden toteuttaa fyysinen nosturi kokeiden tekemistä varten. Kurssin puitteissa nosturia ei vielä ehditty saada täysin valmiiksi. Robotin puuosat aiotaan maalata esikuvansa mukaisesti keltaiseksi. Lisäksi robotin liikuttamiseksi toteutetaan käyttöliittymä sekä kosketusnäytölle Android -ympäristöön, että Windows ohjelmisto. mikä on robotin tehtävä Robotin esikuvana on kaksipalkkinen radan päällä kulkeva siltanosturi. Siltanosturi koostuu karkeasti ottaen kahden kiskon varassa kulkevasta sillasta, siltaan kiinnitetystä ja sitä pitkin liikkuvasta vaunusta. Vaunussa on vaijerilla (usein useammalla) kiinni koukku jolla kuorma nostetaan liikuttelua varten. Robottia on tarkoitus liikuttaa joko ohjaamalla pc:n välityksellä joystickilla tai hiirellä käyttölittymän kautta. Lisäksi on suunnitteilla toteuttaa kosketusnäyttö käyttöliittymä Android laitteille.
kuva 1: rails = kiskot, trolley = vaunu koodin ja rakenteen osuudet tehtävän suorittamisessa Heti ensimmäistä nosturirakennelmaa testaillessamme, tuli selväksi ettei nosturia pystytä toteuttamaan mitenkään järkevässä mittakaavassa pelkästään legoilla. Teimme ohjelmointia varten kuitenkin pyörillä ajavan version nosturista. Vaikka meiltä löytyi jonkun verran kokemusta puutöistä, niin nosturin rakenteen toteuttaminen puusta oli aika haastava ja aikaa vievä projekti. Meillä menikin paljon enemmän aikaa rakentamiseen kuin ohjelmoimiseen.
kuva 2 ensimmäinen prototyyppi notkui aika pahasti. kuva 3 Vaunun liikuttelu toteutettu naruilla
kuva 4 Pyörät alle niin ohjelmointia varten tarvittava prototyyppi on kasassa kuvaus robotin fyysisestä rakenteesta Robotissa on kolme moottoria joista yksi liikuttaa siltaa, yksi sillan päällä liikkuvaa vaunua ja yksi nostaa narua johon oletettu kuorma tulisi. Moottorit on kiinnitetty sillan toiseen päähän ja itse keskusyksikkö roikkuu ainakin vielä tällä hetkellä moottoreiden alla narujen varassa. Luultavimmin moottorin kiinnityskin toteutetaan puulla.
kuva 5 viimeisin versio nosturista Kaikki liikkuminen on toteutettu narujen avulla. Moottoreissa on legoilla toteutetut kelat joiden ympärille narua kierretään. Vaunun naru on kierrätetty metallisen koukun avulla siten että voidaan yhdellä moottorilla liikuttaa sitä edestakaisin. kuva 6 moottorit ja narut Lisäksi robotissa on kaksi kosketus sensoria joiden avulla robotti kalibroi itsensä käynnistyksen yhteydessä.
kuva 7 Kosketus sensori napsahti tukevasti paneelin ponttiin rajoitukset ja parannusehdotuksia Robotti osaa käynnistyksensä yhteydessä ajaa vaunun ja sillan alkuasentoihinsa. Olisi ollut hieno toteuttaa myös kiskon ja sillan pituuksien tarkastaminen käynnistyksen yhteyteen. tällä hetkellä nämä arvot syötetään vakioina koodiin, myöhemmin ne lisätään käyttöliittymän asetussivulle. Kolmas moottori olisi ollut käytännöllistä kiinnittää vaunuun, mutta sarjan johdon pituus ei riittänyt. Tästä seurasi se että vaunua liikutettaessa pitää samassa suhteessa liikuttaa myös kuorman moottoria. käytetyt osat ja lisätarvikkeet Legoista ei ole tarvittu kuin kolme moottoria, muutama akseli ja ratas narujen kelaamiseen ja muutamia legoja ja napsuja moottorirakennelman kiinnittämiseksi puurunkoon. Rakennelman runkona toimii 2 x2 puusta rakennettu kehikko joka on ruuvattu ja liimattu kasaan. Silta ja sen päällä liikkuva vaunu on rakennettu laudasta sopivaan leveyteen sahatuista rimoista jotka on kiinnitetty toisiinsa liimalla ja huonekalunauloilla. Naruna toimii muoviseoksinen ns. kalastajalanka. Runkoon on lisätty teippiä vähentämään kitkaa. Kätevästi legon kiinnitysnaksut sopivat juuri normaalin saunapaneelin ponttiosaan ja huonekalunaulan päälle. Näin saatiin puu ja lego-osat kiinni toisiinsa ilman että legoja piti vahingoittaa.
Joystick:nä on käytössä Thrust Master:n perus lentotikku. Kahvaa liikuttelemalla ohjataan kiskoja ja vaunua. Hatusta voi nostaa ja laskea kuormaa. Robotin ja tietokoneen kommunikointiin käytettiin bluetooth mokkulaa. tekninen kuvaus koodin toiminnasta Tällä hetkellä robottia voi ohjastaa joystick:lla käynnistämällä projektissa mukana olevan CraneClient ohjelman robottiin ja joytest projektista löytyvän BTSend ohjelman linuxissa. Myös CraneMain ohjelmalla voi ajaa robottia lisäämällä siihen komentoja. Esimerkkikomentoja löytyy tiedostosta kommentoituna Javadoc dokumentaatio löytyy svn:stä: https://svn.cc.jyu.fi/srv/svn/legorobotti/hamis/crane/doc/