Tehtävänanto: AS-0.3200 - Automaatio- ja systeemitekniikan projektityöt Robottialustan instrumentointi ja käyttöönotto Työn tehtävänä on käyttöönottaa Pioneer P3-DX robottialusta sekä asentaa siihen tietokone ja erinäisiä antureita. Robottialustaa/alustoja on tarkoitus käyttää tutkimuksessa sekä ensi vuoden Kenttä-ja palvelurobotiikan kurssilla. Alustat on hankittu ja tietokoneet sekä anturit tilauksessa, mutta lisäosia voi joutua tilaamaan työn edetessä. Lisäksi robotti olisi tarkoitus tehdä ROSyhteensopivaksi (Robot Operating System ) ja tehdä jonkinlainen esimerkkiohjelma kuinka robottia ohjataan ja antureita luetaan. Alustoja on kaksi (anturit ovat osin erilaisia), joten työ voi sisältää molempien alustojen instrumentointi, tai työ voidaan jakaa kahdelle ryhmälle. Opintopisteet: 4 op Työn nimi: Robottialustan instrumentointi ja käyttöönotto Aloituspäivä: 11.9.2012 Lopetuspäivä: 31.12.2012 Tekijät: Niko Böckerman Niilo Heinonen Hannu Häyrinen Matias Katajamäki Tuomas Pylvänen
1. Johdanto Työn tavoitteena oli käyttöönottaa kaksi laitokselle tilattua Pioneer P3 DX -robottialustaa. Toisen alustan on jatkossa tarkoitus korvata kenttä- ja palvelurobotiikan kurssilla käytössä ollut J2B2- robotti. Tätä alustaa haluttiin kokeilla kuitenkin jo tämän syksyn kurssilla, mikä asetti projektille omat aikataululliset paineensa. Pioneer P3-DX-robottialusta on esitetty kuvassa 1. Kuva 1. Pioneer P3-DX-robottialusta. Kumpaakin robottia varten oli tilattu samanlaiset Asuksen Micro ATX -emolevyt ja DC-DC - muuntimet (kuva 2). Paikannusta ja navigointia varten molempiin alustoihin oli tilattu yksi SICKin LMS 100 -laserskanneri. Lisäksi, kenttä- ja palvelurobotiikan kurssilla käytettävää robottia varten oli hankittu Asuksen Xtion Pro Live -stereokamera. Toista robottia varten tilattiin Asuksen kameran sijaan Bumblebee-stereokamera. Näin ollen ryhmän päätettäväksi jäi käytännössä ainoastaan muistien ja kovalevyjen mallit koneita varten. Alustojen käyttöönotto koostui käytännössä robottiin asennettavan tietokoneen kotelon suunnittelemisesta ja valmistamisesta, itse tietokoneen kokoonpanosta, anturien asennuksesta ja tarvittavien ohjelmistojen asennuksesta. Robotteihin asennettuihin koneisiin asennettiin pohjalle Ubuntu-käyttöjärjestelmät ja näiden päälle ROS (Robot Operating System), joka toimii rajapintana robotin ohjaamiseen.
Kuva 2. Vasemmalla Asuksen emolevy kiinnitettynä toisen robottialustan kansilevyyn. Oikealla DC-DC-muunnin kytkettynä emolevyyn ja robottialustan akkuihin testausta varten.
2. Työn vaiheet Raportin kirjoitushetkellä olemme kasanneet valmiiksi vasta kenttä- ja palvelurobotiikan kurssilla käytettävän robottialustan. Toisen robotin kasaus on käynnissä ja se saadaan valmiiksi viimeistään tammikuun 2013 alussa. 2.1 Muistien ja kovalevyjen valinta ja tietokoneen kokoonpano Ensimmäisenä meidän tuli valita koneista puuttuvat komponentit eli muistit ja kovalevyt, jotka on esitetty kuvassa 3. Alunperin suunnittelimme neljän gigatavun keskusmuistin riittävän yhteen koneeseen, mutta päädyimme tilaamaan kumpaankin koneeseen kaksi neljän gigatavun DDR3-muistikampaa. Syynä tähän oli, että halusimme kaiken robotin toimintaan liittyvän laskennan tapahtuvan robotin omalla tietokoneella. Vaihtoehtona olisi ollut erillinen langattoman verkon kautta kommunikoiva kone, joka olisi hoitanut lievemmin aikakriittiset laskennat, kuten stereokameran kuvankäsittelyn. Massamuistiksi valitsimme Kingstonin edullisen 120 gigatavun SSD-levyn. SSD-levy valittiin, koska se kestää perinteistä mekaanista kovalevyä paremmin tärinää ja kuluttaa vähemmän virtaa, eikä kuitenkaan ole merkittävästi kalliimpi. Kuva 3. G-Skill muistit ja Kingstonin SSD-levy
Komponenttien huonon saatavuuden vuoksi jouduimme odottamaan tilattuja komponentteja yli 5 viikkoa, mikä lisäsi ikävästi aikataulullisia paineita. Osien saavuttua komponenttien asentamiseen kului arviolta noin 20 työtuntia. DC-DC-muuntimen tilauksesta oli jäänyt pois emolevyn vaatima nelipinninen ATX12Vlisävirtakaapeli. Jouduimme siis rakentamaan vastaavan kaapelin itse laitokselta löytämistämme kaapelinpätkistä. Muilta osin tietokoneen fyysinen kokoonpano ja konfigurointi oli melko suoraviivaista. BIOSista asetettiin tietokone käynnistymään automaattisesti aina sähkökatkon jälkeen. Näin tietokone menee itsestään päälle samalla kun robottialustaan kytketään virrat. Näin ollen tietokoneeseen ei nähty tarpeelliseksi liittää erillistä virta- tai reset-kytkintä. 2.2 Kotelon suunnittelu ja kasaus Ensimmäisen robotin koneen kotelo rakennettiin alumiinista. Alumiinikotelo muodostettiin viidestä osasta, jotka kiinnitettiin toisiinsa vetoniiteillä. Kansiosa kiinnitettiin siipimuttereilla helpon avattavuuden mahdollistamiseksi. Kotelon ilmanvaihdon takaamiseksi kannen ja kotelon seinien väliin jätettiin pieni aukko. Emolevyn takapaneelin ulkoiset liittimet ovat käytettävissä kotelon ulkopuolelta. Valmis kotelo on esitetty kuvissa 4, 5 ja 6. Ensimmäisessä kotelossa ei ole pohjalevyä, joten tietokoneen emolevy on kiinnitetty suoraan robottialustan kanteen. Kotelo asetetaan emolevyn ympärille ja kiinnitetään sivuistaan, emolevyn tapaan, robottialustan kanteen. Kotelon sisälle kiinnitettiin vaadittavien koneen osien lisäksi SSD-levy ja DC-DC-muunnin, jolle tuodaan käyttöjännite robotin takaosassa olevista 12 voltin lyijyakuista. Kuva 4. Tietokoneen alumiinikotelo asennettuna robottialustan päälle
Kuva 5. Näkymä valmiin tietokonekotelon sisälle Kuva 6. Emolevyn ulkoiset liittimet Toisen robotin koneen kotelon kasaus on aloitettu. Tämä kotelo eroaa ensimmäisestä siten, että kotelossa on erillinen pohjalevy, johon emolevy kiinnitetään. Tämä kotelo kiinnitetään ensimmäisen kotelon tavoin suoraan robotin kanteen kiinni, mutta kotelon pohjalevy mahdollistaa sen, että tietokone on koteloineen helposti siirrettävissä muuhun käyttöön. Lisäksi toisen robotin kotelo on hieman tilavampi, jotta sen sisälle mahtuu tarvittaessa laajennuskortti.
Kotelot on vielä tarkoitus maalata siistimmän lopputuloksen saavuttamiseksi, mutta tarvittavaa maalia ei ole löytynyt suoraan koulun puolesta. 2.3 Anturien kiinnitys Ensiksi kootun robotin osalta SICKin laserskanneri (kuva 7) kiinnitettiin tietokoneen alumiinikotelon päälle. Laserin skannausalue on 270 ja se on yksin vastuussa robotin navigoinnista, joten se täytyi sijoittaa siten, että sillä on esteetön näkymä ympäristöön. Skannerin kiinnitystä varten muodostettiin alumiinista kaksi L-muotoista palaa, jotka kiinnitettiin alumiinikotelon päälle ja joihin itse skanneri kiinnitettiin. Laserskannerin mukana ei toimitettu minkäänlaisia piuhoja. Piuha datansiirtoa varten löytyi laitokselta valmiina, mutta virtapiuhan jouduimme työstämään itse. Kuva 7. SICK LMS100 laserskanneri Asuksen stereokamera, jonka pakkaus on esitetty kuvassa 8, päätettiin kiinnittää robotin etuosaan, koska sillä oli tarkoitus tunnistaa esineitä lattialta robotin edestä. Stereokamera kiinnitettiin jalustastaan ruuveilla robotin kanteen. Stereokameran sijoituspaikka rajaa mahdollisten manipulaattorien toteutuksia jonkin verran, mutta kamera on helppo siirtää tarvittaessa myös tietokoneen kotelon päälle. Kuva 8. Asuksen stereokamera Piirroskuvassa (kuva 9) on esitetty laserin ja kameran paikat kasatussa robotissa.
Kuva 9. Piirroskuva kasatusta robotista ja antureiden paikoista. Antureiden sijoitusta toisessa robotissa ei ole vielä päätetty, mutta todennäköisesti ne tullaan sijoittamaan pitkälti samalla tavalla kuin jo kasatussa robotissa. Toiseen robottiin ollaan mahdollisesti kiinnittämässä 5 kg painava manipulaattori, joka tulee luonnollisesti huomioida antureiden paikkoja mietittäessä. Asuksen stereokameran sijaan toiseen robottialustaan kiinnitetään Bumblebee-stereokamera (kuva 10). Kuva 10. Bumblebee-stereokamera
3. Tulokset Lopputuloksena saatu ensimmäinen robotti (kuvat 11 ja 12) täytti sille asetetut laitteisto- ja ohjelmistovaatimukset hyvin. Antureiden sijoittelu saatiin toteutettua järkevästi, joten se palveli hyvin myös kenttä- ja palvelurobotiikan kurssilaisten harjoitustyötä. Ohjelmistojen puolesta toteutuksesta ei löydetty merkittäviä puutteita ja tietokoneelle valittu kokoonpano kykeni rimaa hipoen suorittamaan kaiken tarvittavan laskennan itse. Suorituskyvyn pullonkaulana on epäilemättä emolevylle integroitu varsin tehoton AMD:n E-450 prosessori/apu, jota ei valitettavasti ole mahdollista vaihtaa vaihtamatta emolevyä. Eräänä mainitsemisen arvoisena haasteena voidaan nähdä koneen virrankäyttö. Robottialusta, tietokone ja kaikki anturit yhdessä kuluttavat kovassa ajossa melko nopeasti käytössä olevan akkukapasiteetin. Toinen esiin tullut ongelma oli tietokonetta varten tilattujen USB-WLANsovittimien yhteensopivuus: ilmeisesti WLAN-sovitin aiheutti USB-väylän jumittumista, mikä haittasi ainakin Asuksen kameran käyttöä. Ongelma ratkaistiin väliaikaisesti käyttämällä toista WLAN-sovitinta. Alkuperäisen ongelman syistä tai mahdollisista ratkaisuista ei ole tämän tarkempaa tietoa. Kuvat 11 ja 12. Lopullinen versio ensimmäisestä robottialustasta. Robotin etuosaan on kiinnitetty kenttä- ja palvelurobotiikan-kurssia varten suunnitellun manipulaattorin ensimmäinen versio.
4. Ajankäyttö ja työnjako Arvioidut tuntimäärät ovat kaikkien osallistujien yhteenlaskettu summa molemmille roboteille, vaikka toisen robotin kasaaminen onkin vielä kesken. Tunneissa on huomioitu toiselle robotille hieman pienemmät aika-arviot, koska suurimmat haasteet on jo ratkaistu ensimmäisen robotin rakentamisen yhteydessä. Mahdolliset muutokset antureiden sijoitteluun voivat vaikuttaa korottavasti annettuun arvioon. Työvaihe Vastuuhenkilöt Tunnit Suunnittelu Kaikki 35 Koteloiden valmistus ja kokoonpano Tuomas, Matias, Niilo 33 Tietokoneen komponenttien asennus ja konfigurointi Laserin asennus, konfigurointi ja testaus Tuomas, Matias, Hannu, Niilo Hannu, Niilo, Tuomas, Niko 23 38 Kameran asennus ja testaus Hannu, Niilo, Tuomas 22 Ohjelmistojen asennus ja konfigurointi Hannu, Niilo, Matias, Niko 42 Testaus Pääosin kenttä- ja palvelurobotiikan ryhmä 110 Dokumentointi ja demot Kaikki 45 Yhteensä - 348 Ryhmän koko kasvoi tehtävänannossa esiintyneestä ohjeistuksesta, koska ryhmä työskenteli osittain tiiviisti kenttä- ja palvelurobotiikan kurssin pioneeri -ryhmän kanssa. Ryhmäkoko olisi ollut hieman yliampuva pelkkään toimilaitteiden sijoitteluun ja kiinnitykseen. Laitteiston konfigurointi ja testaus osoittautuivat kuitenkin odotettua haasteellisemmaksi ja siten vei myös odotettua enemmän aikaa, jolloin jokaiselle ryhmän jäsenelle riitti tehtävää. Ryhmän jäsenistä kolme kuuluivat myös kenttä- ja palvelurobotiikan ryhmään ja heidän osaltaan työtuntien erottelu näiden kahden kurssin kesken oli hankalaa.