Niilo Heinonen Hannu Häyrinen Matias Katajamäki Tuomas Pylvänen Robottialustan instrumentointi ja käyttöönotto AS-0.3200 Automaatio- ja systeemitekniikan projektityöt
1. Projektin tavoite Projektin puitteissa otetaan käyttöön laitokselle tilatut kaksi Pioneer P3-DX-robottialustaa. Ensi syksyn kenttä- ja palvelurobotiikan kurssilla on tarkoitus korvata tällä hetkellä käytössä oleva J2B2-robottialusta uudella Pioneerin alustalla. Uuden alustan käyttöä kuitenkin testataan em. kurssilla jo tänä syksynä, mikä asettaa aikataulullisia paineita projektille; alusta olisi saatava toimintakuntoon mahdollisimman nopeasti, jotta kurssilla toteutettavan navigointiohjelmiston työstäminen pääsee käyntiin. Pioneer P3-DX-robottialusta on esitetty kuvassa 1. Kuva1. Pioneer P3-DX Robottialustojen ohjaamiseksi hankitaan kaksi tietokonetta, joihin asennetaan Ubuntukäyttöjärjestelmä ja tämän päälle ROS-ohjelmisto (Robot Operating System), jolla varsinainen robotin ohjaus toteutetaan. Koneisiin on tilattu emolevyt (Asus E45M1-M PRO) ja WLAN-tikut, mutta muiden komponenttien valinta jää meidän tehtäväksemme. Koneet on tarkoitus upottaa robottialustaan, minkä vuoksi meidän tulee projektin puitteissa suunnitella koneelle kotelo, joka saadaan robottialustaan kiinni. Projektin puitteissa suoritetaan tietokoneiden fyysinen kokoonpano, sekä tarvittavien ohjelmistojen asennus, toimintaan saattaminen ja testaus. Robottialusta itsessään sisältää moottorinohjaimen, akun sekä robotin edestä löytyvät ultraäänianturit, joiden lisäksi hankitaan ainakin SICKin laserskanneri, Asus Xtion PRO LIVE liiketunnistin ja bumblebee stereokamera. Myös näiden lisäantureiden asennus ja käyttöönotto kuuluu projektiin. Robottialustalle on lisäksi tarkoitus tehdä esimerkkiohjelma, josta ensi vuoden kenttä- ja palvelurobotiikan kurssin opiskelijat voivat ottaa mallia. Tämä osuus on jätetty samaisen aiheen parissa työskentelevän, pienemmän ryhmän hoidettavaksi.
2. Projektin osa-alueet 2.1 Tietokone 2.1.1 Laitteisto Robottialustoja varten on tilattu kaksi Asuksen emolevyä, joissa on integroidut APU-piirit. APU:t sisältävät AMD:n kaksiytimisen suorittimen sekä Radeon-grafiikkapiirin. Lisäksi on tilattu virtalähteinä toimivat DC-DC -muuntimet sekä WLAN-tikut langatonta tiedonsiirtoa varten. Nämä osat ovat jo saapuneet. Näiden osien lisäksi on tilattava vielä RAM- ja massamuistit sekä joitakin tarvittavia kaapeleita ja adaptereita. Robotti ei välttämättä tarvitse toimiakseen paljonkaan RAM-muistia. Toisaalta DDR3-muisti on erittäin edullista, joten lienee parasta tilata riittävästi - esimerkiksi yksi neljän gigatavun DIMM-kampa 1333 tai 1600 MHz DDR3-muistia kumpaankin robottiin. Tällöin muistia voidaan tarvittaessa vielä laajentaa toisella kammalla (emolevyllä on kaksi muistipaikkaa ja muistin maksimimäärä on kahdeksan gigatavua). Massamuistiksi tilataan jokin noin 60 gigatavun SSD-levy. SSD-levyn etuja perinteiseen pyörivään magneettimediaan verrattuna mobiilirobottisovelluksessa ovat pienempi virrankulutus ja parempi tärinänsieto. Yleisesti SSD-levyt ovat myös magneettimedioita nopeampia, mutta tällä ei liene ratkaisevaa merkitystä robottisovelluksessa. 60 gigatavun arvellaan riittävän hyvin Ubuntu Linuxille, ROS:lle, muille asennettaville ohjelmistoille ja kerättävälle datalle. Tietokoneen yhdistämiseksi robottialustaan tarvitaan sarjaporttia. Tilatulta emolevyltä ei suoraan löydy D-sub-sarjaporttiliitintä vaan pelkät sarjaportin pinnit. On siis tilattava emolevylle sopiva sarjaporttiliitin. Mikäli tilatuissa virtalähteissä ei ole SATA-virtaliittimiä, on tilattava perinteiseen Molex-virtaliittimeen sopivat SATA-virtaliitinadapterit. Tietokoneen kotelointi tehdään itse alumiinista niin, että tarvittavat liittimet ovat helposti käytettävissä, mutta kaikki elektroniikka suojataan kauttaaltaan kotelolla. Emolevyn ja komponenttien lisäksi myös virtalähteen (DC-DC -muunnin) tulisi mahtua koteloon. Kotelon kansi tehdään avattavaksi (esimerkiksi siipimutterikiinnityksellä) jolloin tietokoneen huolto onnistuu helposti. Koteloon on lisäksi jätettävä reikiä riittävän ilmanvaihdon takaamiseksi. On vielä selvitettävä, riittääkö emolevyn mukana tullut pieni tuuletin huolehtimaan koko kotelon riittävästä lämmönpoistosta, vai onko lisäksi asennettava kotelotuuletin. 2.1.2 Ohjelmisto Tietokoneisiin asennamme pohjaksi Ubuntu Linux -käyttöjärjestelmän. Nykyinen robotinohjausohjelmisto korvataan avoimen lähdekoodin ROS-järjestelmällä (Robot Operating System). ROS on tarkoitettu robottien ohjaamiseen ja sisältää valmiiksi suuren määrän laiteajureita, kirjastoja ja visualisointityökaluja, joita voidaan hyödyntää robotille suunniteltavassa ohjelmassa. Asennuksen jälkeen testaamme lyhyesti järjestelmän toimintaa, jolloin tarkistamme perusteiden olevan kunnossa ennen ylimääräisten anturien asennusta. 2.2 Anturointi
Ohjelmistojen asennuksen jälkeen kiinnitämme robottialustaan joukon uusia antureita. Ensimmäisenä asennamme laserskannerin (SICK LMS100, kuva 2), jota tullaan käyttämään robotin paikannukseen ja navigointiin. Laserskanneri sijoitetaan robottialustan päälle, josta sillä on paras mahdollinen näköyhteys ympäristöön. Anturi yhdistetään tietokoneeseen Ethernetkaapelilla, jolloin voimme hoitaa anturidatan lähettämisen esimerkiksi UDP-protokollan välityksellä. LMS100-laserskannerin käyttöön löytyy myös useita valmiita ROS-kirjastoja. Kuva 2. SICK LMS100 laserskanneri Seuraavaksi asennamme liiketunnistimen (Asus Xtion PRO LIVE, kuva 3) robottialustan etuosaan. Liiketunnistimen kommunikointiin käytetään USB-väylää, joten se saadaan kätevästi kiinni ohjaustietokoneeseen. Anturilta saatavan videokuvan/kuvasarjojen lukemiseen käytämme ROSiin saatavilla olevaa USB kameralle tehtyä kirjastoa. Saatujen kuvien käsittelyyn käytetään konenäkösovellusten yhteydessä laajasti käytettyä OpenCV-kirjastoa, joka myös löytyy ROSista integroituna. Kuva 3. Asus Xtion PRO LIVE Lisäksi asennamme stereokameran (bumblebee XB3) ja tähän liittyen on vielä selvitettävä, tarvitaanko kameraa varten FireWire 1394b -> 1394a -adaptereita. Jonkinlaiset FireWirekaapelit tarvitaan joka tapauksessa.
Kuva 4. Bumblebee XB3 2.3 Testaus Testausta on tarkoitus suorittaa jatkuvasti, kun uusia komponentteja saadaan robottialustaan integroitua.
3. Työnjako ja aikataulu Asennukset Tietokoneen kotelointi ja asennus Antureiden asennus Kameroiden asennus Testaus Tietokoneen testaus Antureiden testaus Kameroiden testaus w39,w40 w41 w42 w40,w41,w42 w42,w43 w43,w44 Dokumentointi Välidokumentin teko Loppudokumentin teko Jatkuvaa dokumentointia Jatkuvaa dokumentointia Ryhmämme jäsenistä Heinonen ja Häyrinen ovat kenttä- ja palvelurobotiikan kurssilla, jota varten toinen robottialustoista tulisi saada mahdollisimman nopeasti käyttökuntoon. Ajattelimmekin, että Heinonen ja Häyrinen panostaisivat tähän ensimmäiseen alustaan eniten ja Pylvänen ja Katajamäki voisivat panostaa enemmän toiseen alustaan.
4. Riskien hallinta Tässä projektissa suurimmat riskit aiheuttavat komponenttien yhteensopivuus ja tiukka aikataulu. Komponenttien yhteensopivuus ja tarvittavat kaapeloinnit tulee tuntea ennen kuin projektiin aletaan tilaamaan lisää tavaraa. Koska instrumentoitavia robotteja on kaksi, pitää ottaa tämä huomioon aikataulussa. Toisaalta tämä mahdollistaa työn jakamisen paremmin, sillä kaikkien ei tarvitse työskennellä yhden robotin parissa. Mahdolliset sairaspoissaolot ja muut poissaolo-ongelmat pyrimme kompensoimaan sillä, että kaikki ryhmän jäsenet ovat kokoajan tietoisia projektin tilasta ja muiden tehtävistä. Työn sujuvan etenemisen kannalta järjestelmän jatkuva testaaminen on tärkeässä asemassa. Jotta pystyisimme testaamaan järjestelmän toimintaa mahdollisimman aikaisessa vaiheessa, käytämme alussa mahdollisimman paljon valmiita ohjelmistokomponentteja esimerkiksi paikannuksen ja kuvankäsittelyn testauksessa.