AS Automaatio- ja systeemitekniikan projektityöt Loppuraportti

Samankaltaiset tiedostot
Robottialustan instrumentointi ja käyttöönotto

S11-09 Control System for an. Autonomous Household Robot Platform

AS Automaatio- ja systeemitekniikan projektityöt. Robottialustan instrumentointi ja käyttöönotto

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

ZigBee-ohjaus kuorma-autolle

S09 04 Kohteiden tunnistaminen 3D datasta

AS Automaatio- ja systeemitekniikan projektityöt

Tämä on PicoLog Windows ohjelman suomenkielinen pikaohje.

Projektisuunnitelma. Projektin tavoitteet

A14-11 Potilaan mittaustiedon siirtäminen matkapuhelimeen

A13-03 Kaksisuuntainen akkujen tasauskortti. Projektisuunnitelma. Automaatio- ja systeemitekniikan projektityöt AS-0.

AS Automaatio ja systeemitekniikan projektityöt A13 10 Radio ohjattavan pienoismallin ohjausjärjestelmän ja käyttöliittymän kehittäminen

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

HomeMonitor käyttöönotto-ohje

Projektisuunnitelma Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Peltorobotin akselimoduulin kontrolleri

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

A13-03 Kaksisuuntainen akkujen tasauskortti. Väliaikaraportti. Automaatio- ja systeemitekniikan projektityöt AS Syksy 2013

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU011 Sweex 1-portin rinnakkainen PCI Express -kortti

Harjoitus 3 (viikko 39)

Projektisuunnitelma: Vesipistekohtainen veden kulutuksen seuranta, syksy Mikko Kyllönen Matti Marttinen Vili Tuomisaari

Videon tallentaminen Virtual Mapista

Simulaattorin asennus- ja käyttöohje

AS Automaatio- ja systeemitekniikan projektityöt

Electric power steering

Jouko Nielsen. Ubuntu Linux

Suomenkielinen versio. Johdanto. Laitteiston asennus. PU013 Sweex 1-portin rinnakkainen & 2 -portin sarja PCI-kortti

Valppaan asennus- ja käyttöohje

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

AS Automaatio- ja systeemitekniikan projektityöt

ADOBE CONNECT KÄYTTÖOHJE OPETTAJALLE/ LUENNOITSIJALLE

Power Steering for ATV

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Loppuraportti. Virtuaali-Frami, CAVE-ohjelmisto. Harri Mähönen projektiassistentti Seinäjoen ammattikorkeakoulu. Versio

Choose Finland-Helsinki Valitse Finland-Helsinki

Tekninen Tuki. Access Point asennusohje

LINUX-HARJOITUS, MYSQL

Golfsimulaattorin käyttö- ja peliohjeet

Näin asennat MS-DOS käyttöjärjestelmän virtuaalikoneeseen

OPAS IOT OFFICE PALVELUSI KÄYTTÄMISEEN

SUMO-ROBOTTI. Tehtävä

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Eye Pal Solo. Käyttöohje

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Electric power steering

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Mallintarkistus ja sen

Salasanan vaihto uuteen / How to change password

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

Viva-16. Käyttöohje Veikko Nokkala Suomen Videovalvonta.com

OPAS IOT OFFICE - PALVELUSI KÄYTTÄMISEEN

Tietorakenteet ja algoritmit

Lego Mindstorms NXT. OPH oppimisympäristöjen kehittämishanke (C) 2012 Oppimiskeskus Innokas! All Rights Reserved 1

Teknisen ja ympäristöviraston sekä Hangon veden palautejärjestelmän käyttäjäopas

WBelectronics. Infinity USB Phoenix - Käyttöohje

Autentikoivan lähtevän postin palvelimen asetukset

Tosi elävä virtuaalimalli Mika Karaila Tutkimuspäällikkö Valmet Automation

Laboratoriotyö. 1. Laitteisto. 1.1 Kamera

OHJELMOINTILAITE 10/50

A09-05 OSGi IRC Bot For Coffee Maker

Foscam kameran asennus ilman kytkintä/reititintä

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Sonera Neuvottelupalvelut Microsoft Office 365 -sisäänsoittopalvelu. Pikaopas

Uudelleenkäytön jako kahteen

Lähettimet. Vastaanotin Hälytykset. OV-yksikkö DPR990

Toteutusvaihe T3 Digi-tv: Edistymisraportti

Tieteellinen laskenta 2 Törmäykset

Projektityö

ELEC-C1110 Automaatio- ja systeemitekniikan. Luento 11 Esimerkki automaation soveltamisesta

521365S Tietoliikenteen simuloinnit ja työkalut: Advanced Design System ADS

Jypelin käyttöohjeet» Ruutukentän luominen

Race Technology tiedonkeruu tuotteet s2i Motorsportilta!

VUOSI 2015 / YEAR 2015

Lego Mindstorms anturit

ELM GROUP 04. Teemu Laakso Henrik Talarmo

FIS IMATRAN KYLPYLÄHIIHDOT Team captains meeting

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

SQL Server 2008 asennus

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Calisto USB-kaiutinpuhelin. Käyttöopas

Alatunniste

Travel Getting Around

MultiSave - käyttö ja käyttöönotto

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Seuraavia painikkeita klikkaamalla voit aktivoida, eli ottaa käyttöön (vihreä ikoni) tai poistaa käytöstä (valkoinen ikoni) toimintoja.

Comtieto Uutiskirje on helppokäyttöinen ja tehokas ratkaisu markkinointiin ja

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Aimo-ohjauspaneelin käyttöohje Sisällys

Yhteydensaantiongelmien ja muiden ongelmien ratkaisuita

Transkriptio:

AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Loppuraportti Toni Okuogume, 78982W, EST, toni.okuogume@aalto.fi Lammi Lauri, 69488F, AUT, lauri.lammi@aalto.fi 17. joulukuuta 2012 Opintopisteet 4 op Projektityön nimi Robottialustan instrumentointi ja käyttöönotto Aloituspäivä 11. syyskuuta 2012 Lopetuspäivä 31. joulukuuta 2012 Ohjaaja Matthieu Myrsky

Sisältö 1 Projektin kuvaus 1 2 Robot Operating System (ROS) 1 3 Simulaattori 3 4 Graafinen käyttöliittymä 4 4.1 Lasertutka............................. 4 4.2 Teleoperointi........................... 6 5 Ajanhallinta 6 6 Yhteenveto 8 A Liite: LaserScan-viestirakenne 9

1 Projektin kuvaus Alun perin projekti oli tarkoitus toteuttaa 2-3 hengen ryhmässä. Pian projektin alun jälkeen tosin selvisi, että projektissa käytetty Pioneer-robottialusta oli myös kurssin AS-84.3144 Kenttä- ja palvelurobotiikka käytössä ja että osa projektiin ilmoittautuneista henkilöistä oli myös kyseisellä kurssilla mukana. Lopputuloksena projektin osallistujamäärä paisui kahdeksaan henkilöön. Osallistujat jaettiin kahteen ryhmään, joista suurempi kuuden hengen ryhmä koostui niistä henkilöistä, jotka olivat myös kenttä- ja palvelurobotiikan kurssilla mukana. Suuremman ryhmän tehtävä vastasi alkuperäistä tehtävänantoa, kun taas pienemmälle ryhmälle annettiin tehtäväksi tutustua ROS-pohjaiseen ohjelmointiin ja toteuttaa Pioneer-robotille esimerkkiohjelma, joka demonstroi ROSin käyttöä mahdollisimman monipuolisesti. Tässä raportissa esitellään Pioneerin ohjelmoinnista vastanneen ryhmän projektityö. Työssä luotiin ROSia käyttävä graafinen käyttöliittymä, joka piirtää Pioneeriin asennettujen antureiden mittausdataa ja jolla voi teleoperoida robottia. Käyttöliittymän on tarkoitus olla modulaarinen siten, että se toimii eri ROS-alustoilla riippumatta siitä, mitä antureita niihin on asennettu. Työhön kuului myös ohjelmiston kattava dokumentointi ja käyttöohjeen laatiminen. Ohjelmistoa on tarkoitus käyttää esimerkkinä tulevien vuosien kenttä- ja palvelurobotiikan kurssilla. Projektityössä käytettiin Pioneer P3-DX -robottialustaa. Edeltämainittu toinen projektityöryhmä asensi siihen tietokoneen, 270 SICKin laseretäisyysskannerin sekä Microsoft Kinectiä vastaavan Asus Xtion PRO LIVE -liiketunnistimen, jossa on myös stereokameraa vastaavaa toiminnallisuutta. Näiden lisäksi robottialustassa on valmiiksi kahdeksan eteenpäin suunnattua ultraäänianturia sekä odometriadatan keräykseen tarvittavat enkooderit. Työssä käytetty robotti on esitetty kuvassa 1. 2 Robot Operating System (ROS) ROS on robottiohjelmistojen kehitykseen tarkoitettu avoimen lähdekoodin metakäyttöjärjestelmä. Se tarjoaa työkaluja ja kirjastoja matalan tason laitteistonhallintaan, prosessienhallintaan, monen tietokoneen ylitse toimivien ohjelmistojen pyörittämiseen yms. Käytännössä ROS-ohjelma koostuu rinnakkaisista, keskenään kommunikoivista prosesseista, joita ROSissa kutsutaan noodeiksi. Täysimittainen ROS-ohjelmisto koostuu monesta eri noodista, jotka yhdessä muodostavat vertaisverkon prosesseja. ROS-ohjelmiston pienimpiä komponentteja, kuten yksittäisiä ohjelmia, kirjastoja yms. kutsutaan paketeiksi 1

Kuva 1: Projektityössä käytetty Pioneer P3-DX -robotti (package). Ohjelmistojen jakamisen helpottamiseksi kaikki tietyn ohjelmiston tarvitsemat paketit voi ROSissa koota pinoiksi (stack). Noodien välinen kommunikointi tapahtuu julkaisemalla dataa yleisille, kaikkien noodien nähtävissä oleville kanaville (topic). ROSissa on lukuisia valmiita viestimuotoja, joissa dataa voi julkaista. Noodin käynnistyksen yhteydessä ROS-mestarinoodille ilmoitetaan, mille noodeille käynnistettävä noodi julkaisee minkä muotoisia viestejä ja vastaavasti mitä kanavia se kuuntelee. Kanavien julkisuuden vuoksi tiettyä kanavaa voi kuunnella mielivaltainen määrä noodeja. Vastaavasti tietty noodi voi julkaista viestejä mielivaltaiselle määrälle kanavia. Julkaistut viestit voivat sisältää esimerkiksi anturilta saatua mittausdataa tai ohjauskäskyjä. Monesta moneen -tyyppiselle kanava- ja noodirakenteelle on myös vaihtoehtoinen kommunikaatiorakenne, jota RO- Sissa kutsutaan palveluiksi (service). Tässä rakenteessa viestien julkaiseminen ja niiden kuuntelu korvataan tietyn noodin tekemillä palvelupyynnöillä, johon jokin tietty noodi vastaa. Esimerkki viestin rakenteesta on liitteessä A, jossa on esitetty LaserScan-viestin rakenne. Tämän projektityön tapauksessa noodit jakautuvat robotilla ja etäkoneella ajettaviin. Robotin puolella on kerralla käynnissä sen sisäänrakennettujen laitteiden käyttöön tarkoitettu valmis RosAria-noodi, joka julkaisee mm. ultraääni- ja odometriadataa ja jota käytetään robotin ohjaamiseen. Sen lisäksi on käynnissä noodit laserskannerille ja liikkeentunnistimelle. Turvatoime- 2

na törmäyksien ja vaaratilanteiden ehkäisemiseksi robotin puolella on myös käynnissä erillinen turvanoodi. Etäkoneella on käynnissä käyttöliittymän ja teleoperoinnin tarvitsemat noodit, jotka kuuntelevat langattoman verkkoyhteyden välityksellä Pioneerin noodien julkaisemaa dataa ja lähettävät sille ohjauskomentoja. Jos robottia halutaan simuloida, täytyy myös käynnistää Stage-simulaattorille oma noodi. Käytännössä se julkaisee virtuaalirobotin mittaus- ja odometriadataa tietyille kanaville. Simulaattorissa pyörivän esimerkkiohjelmiston noodiverkosto on esitetty kuvassa 2. Kuvassa soikiot ovat noodeja, joiden välisten nuolten suunta kertoo kumpi noodi julkaisee ja kumpi kuuntelee viestejä. Nuolet on nimetty viestien kanavien nimillä. Kuva 2: Esimerkkiohjelmiston noodigraafi 3 Simulaattori Koska projektityön alkuvaiheissa oikeaa robottia ei ollut vielä käytettävissä, tarvittiin ohjelmiston kehitystä auttamaan jokin ROS-yhteensopiva simulaattori. Käytännössä tähän oli kaksi vaihtoehtoa, Gazebo ja Stage. Gazebo on erittäin monipuolinen 3D-simulaattori, joka mm. pystyy mallintamaan robottien yksittäisiä liikkuvia osia ja robottien fyysistä interaktiota ympäristöjen kanssa. Gazebo kuitenkin osoittautui raskaaksi ajettavaksi, eikä Pioneerin tapauksessa suurimmasta osasta sen ominaisuuksia ollut mitään hyötyä. Näin ollen projektia varten valittiin Stage-simulaattori. Stage on yksinkertainen mutta tehokas 2D-simulaattori, joka on alunperin tarkoitettu robottiparvien simulointiin. Simulaattorissa on helppo määritellä uusia robotteja tai karttoja. Stage osoittautui kevyeksi ja helppokäyttöiseksi, joten sitä voi suositella myös tulevia kenttä- ja palvelurobotiikan kursseja varten. Stagessa robotit mallinnetaan yksinkertaisina liikkuvina objekteina, joiden mahdolliset liikkuvat osat jätetään huomioimatta. Roboteilla ei ole 3

muita fyysisiä ominaisuuksia kuin niiden dimensiot ja mahdollisesti esimerkiksi huippunopeus, jos sellainen on niille määritelty. Robotteja voi kuitenkin olla monta, ja niitä on erittäin helppo määritellä Stagen omalla syntaksilla lisää. Simulaattori on nopea jopa heikkotehoisemmalla tietokoneella ja usealla robotilla. Roboteilla voi olla Stagen normaalissa käytössä mielivaltainen määrä etäisyysantureita, mutta ROSissa määrä on rajoitettu yhteen per robotti. Uusien karttojen määrittäminen on niinkin helppoa kuin uuden kuvatiedoston luominen halutun ympäristön pohjakaaviosta. Kuvassa 3 esitetään Stage-simulaatiossa otettu kuvankaappaus Pioneerista. Kuva 3: Stage-simulaattori 4 Graafinen käyttöliittymä Projektityötä varten tehty esimerkkiohjelma on Qt-pohjainen graafinen teleoperointikäyttöliittymä. Se lukee Pioneerin lähettämää anturidataa ja piirtää sitä käyttäen tutkakuvan robotin ympäristöstä. Se myös mahdollistaa robotin etäohjauksen mm. näppäimistökomennoilla langattoman verkon ylitse. 4.1 Lasertutka Laserskanneri-ohjelman tarkoitus on auttaa tulevia Kenttä- ja palvelurobotiikan kurssin opiskelijoita ohjaamaan Pioneer-robottia. Se näyttää robotilta saadut laserscanneri ja ultraäänidata ja kertoo sen lisäksi robotin sen hetkisen nopeuden. Käyttöliittymä on rakennettu käyttäen Qt:tä. Tämä valittiin, 4

koska Qt:tä käytetään monissa ROSin mukana tulevissa ohjelmissa ja uuden projektin aloittaminen on mutkatonta, kun käyttää qt ros -pakettia apuna. Tämä paketti tekee valmiin pohjan jota voi sitten muokata omiin tarkoituksiin. Kuva 4: Lasertutkan käyttöliittymä Kuva 4 näyttää tehtyn lasertutkan käyttöliittymän. Kuva on otettu simulaattorissa, joten lasermittauksissa ei ole kohinaa. Vasemmanpuoleisessa ikkunassa näkyy keskellä robotti ja sen ympärillä valkoisena pisteenä kaikki estepisteet mitkä laserscanneri näkee. Vihreä ympyrä näyttää laserskannerin maksimilukuetäisyyden sekä minimi- ja maksimikulmat. Kaikki nämä tiedot saadaan ROS lähettämästä LaserScan-viestistä, jonka ohjelma olettaa tulevan kanavalle /tilt scan. LaserScan-viestin rakenne on liitteessä A. Oikeanpuoleisista valintaruuduista voi valita haluuko vasemmanpuoleiseen näyttöön laserskannerin antamat tiedot ja/tai ultraäänianturin antamat tiedot. Ultraäänianturin tiedot merkitään ruutuun sinisellä. Ultraäänisensorin tiedot odotetaan tulevan topicille /sonar. Pieni ruutu oikealla puolella on tarkoitettu robotin Kinect-tyyppisen anturin videokuvaa varten. Heti ensimmäisen viestin tullessa laserskannerilta, Asuksen kameralta tai ultraääniajurilta lasertutka merkitsee sen oikeaan yläkulmaan tekstillä. Se myös poistaa nimen oikean yläkulman listalta, jos minuuttiin ei ole tullut yhtään viestiä kyseisestä osasysteemistä. Näin on tehty, koska ROSssa ei voi suoraan ohjelman sisältä saada selville onko kanavalle julkaiseva noodi päällä vai ei. 5

4.2 Teleoperointi Teleoperointi koostuu ohjelmistossa käytännössä kolmesta eri komponentista. Graafinen käyttöliittymä ohjaa kaikki näppäimistökomennot teleoperointikäyttöliittymälle, joka tunnistaa esimerkiksi nuolinäppäinten painallukset ja muuttaa ne ohjauskomennoiksi. Komennot välitetään sopivassa muodossa etäkoneella käynnissä olevalle teleoperointinoodille, joka julkaisee ne Pioneerin ohjauskomentoja varten tarkoitetulle kanavalle. Lopuksi Pioneerin puolellla käynnissä oleva turvanoodi tarkistaa, ettei ohjauskäsky esimerkiksi aja robottia päin seinää. Jos vaaratilannetta ei ole, ohjauskäsky julkaistaan robottia ohjaavan RosArian ohjauskanavalle. Teleoperointi siis koostuu kahdesta eri tietokoneilla toimivista noodista, sekä Qt-luokasta joka lukee näppäimistökomentoja. Tavallisen näppäimistöohjauksen lisäksi teleoperointikäyttöliittymässä on myös toteutettu esimerkkinä robotin ohjauksesta autonominen seinänseurantamoodi. Moodin voi kytkeä päälle ja pois oikeaa näppäintä painamalla. Seinänseurantamoodissa robotti ajaa lähimmän seinän suuntaisesti. Seinänseuranta on toteutettu kulmahistogrammilla. Kulmahistogrammi lasketaan ottamalla joka N:s laserskannauksen datapiste, ja muodostamalla niiden välille suuntavektori. Vektorin suunta suhteessa robottiin sijoitetaan sopivaan histogrammin lokeroon. Jos histogrammin laskentaetäisyyden sisällä on seinä, suurin osa näistä vektoreista on samansuuntaisia. Näin histogrammiin muodostuu piikki siihen kulma-arvoon, jonka suuntaan seinä kulkee. Kääntämällä robotti tähän suuntaan se saadaan seuraamaan seinää. Oikealla robotilla tehdyissä kokeissa havaittiin nopeasti, että ohjattaessa robottia verkon ylitse voi esiintyä varsin suuriakin verkkoviivepiikkejä. Piikkien aikana robotille ei voida lähettää ohjauskomentoja. Pahimmassa tapauksessa jokin vanha komento jää päälle, jolloin robotti voi ajaa päin seinää tai aiheuttaa jonkin muun vaaratilanteen. Viivepiikkien vaikutuksen minimoimiseksi ja robotin omaksi turvaksi robotille luotiin erillinen turvanoodi, joka on käynnissä robotin itsensä sisällä etäkoneen sijaan. Turvanoodi pysäyttää robotin, jos se yritetään ohjata liian lähelle seinää. Lisäksi jos uusia ohjauskomentoja ei vastaanoteta tiettyyn aikaan, turvanoodi pysäyttää robotin. 5 Ajanhallinta Alkuperäisessä projektisuunnitelmassa tehtiin virhearvioita projektin eri osaalueisiin kuluvista aikamääristä. Esimerkiksi oikeaa robottia pääsi käyttämään myöhemmin kuin alun perin oletettiin. Lisäksi varsinaisen robotin kanssa 6

työskennellessä ilmeni joitain ongelmakohtia, joihin ei osattu varautua etukäteen. Alkuperäinen aikataulusuunnitelma on esitetty taulukossa 1. ROSiin tutustuminen Laitteistoon tutustuminen ROS-simulaattori Esimerkkiohjelmien rakenne Esimerkkiohjelmien kirjoittaminen Robotin testaus Dokumentointi 0.5 vko 0.5 vko 3.5 vko 2.5 vko Taulukko 1: Alkuperäinen aikataulusuunnitelma Alkuperäisessä aikataulusuunnitelmassa oletettiin, että projektissa työskennellään vain yhden osa-alueen kanssa kerrallaan. Käytännössä näin ei kuitenkaan ollut, vaan useampaa osa-aluetta, esimerkiksi ROSiin ja laitteistoon tutustumista sekä simulaattoria, käsiteltiin rinnakkain yhtä aikaa. Varsinkin esimerkkiohjelmien kirjoittamiseen ja debuggaamiseen oikealla robotilla kului enemmän aikaa kuin oli alun perin suunniteltu. Lisäksi joulua lähestyttäessä ainoa valmiiksi rakennettu Pioneer-alusta oli yhä useammin kenttä- ja palvelurobotiikan kurssin käytössä, joka omalta osaltaan hidasti projektityön edistymistä. Loppuraportin palautushetkellä projektissa on vielä jonkin verran viimeistelyä jäljellä. Työtä olisi lähinnä tarkoitus debugata lisää. Projektityön toteutunut aikataulu on esitetty taulukossa 2. ROSiin tutustuminen Laitteistoon tutustuminen ROS-simulaattori Esimerkkiohjelmien rakenne Esimerkkiohjelmien kirjoittaminen Robotin testaus Dokumentointi 0.5 vko 5 vko 5 vko Taulukko 2: Toteutunut aikataulu Esimerkkiohjelmien kirjoittaminen ja testaaminen varsinkin oikealla robotilla ovat vahvasti riippuvaisia toisistaan ja etenevät rinnakkain. Lisäksi työn alla on käyttöohjeen kirjoittaminen ROSille ja esimerkkiohjelmalle. Tavoitteena on tehdä uusien ROS-projektien aloittaminen tuleville käyttäjille mahdollisimman helpoksi dokumentoimalla kaikki, mitä tarvitaan uuden ROSprojektin luomisesta sen kääntämiseen ja ajamiseen. 7

6 Yhteenveto Projektityössä tutustuttiin ROS-metakäyttöjärjestelmään. Sitä varten toteutettiin Qt-pohjainen graafinen käyttöliittymä ja teleoperaatio-ohjelmisto Pioneer P3-DX -robottialustalle. Ohjelmisto käyttää ROSia eri ohjelmistokomponenttien toteutukseen, rinnakkaisajoon ja robotin kanssa viestimiseen. Käyttöliittymä sekä vastaanottaa dataa kuuntelemalla ROS-viestejä, että lähettää ohjauskomentoja ROS-viesteinä. Lisäksi esimerkkinä robotin ohjauksesta toteutettiin autonominen seinänseurantamoodi robotille. Ohjelmiston on tarkoitus toimia esimerkkinä ROSin käytöstä tulevien vuosien kenttäja palvelurobotiikan kurssilla. Ohjelmistosta luodaan yksityiskohtainen dokumentaatio, jossa kerrotaan sen toimintaperiaatteet ja sen kääntämiseen ja käyttämiseen tarvittavat ohjelmapaketit. Dokumentin on myös tarkoitus toimia kevyenä käyttö-ohjeena ROSille. Syntynyttä ohjelmistoa testattiin sekä Stage-simulaattorissa että oikealla Pioneer-robotilla. Samalla saatiin käsitys ROSin potentiaalisista ongelmakohdista kuten verkkoviiveestä. 8

A Liite: LaserScan-viestirakenne # Single scan from a planar laser range-finder # # If you have another ranging device with different behavior (e.g. a sonar # array), please find or create a different message, since applications # will make fairly laser-specific assumptions about this data Header header float32 angle_min float32 angle_max float32 angle_increment float32 time_increment float32 scan_time float32 range_min float32 range_max # timestamp in the header is the acquisition time of # the first ray in the scan. # # in frame frame_id, angles are measured around # the positive Z axis (counterclockwise, if Z is up) # with zero angle being forward along the x axis # start angle of the scan [rad] # end angle of the scan [rad] # angular distance between measurements [rad] # time between measurements [seconds] - if your scanner # is moving, this will be used in interpolating position # of 3d points # time between scans [seconds] # minimum range value [m] # maximum range value [m] float32[] ranges # range data [m] (Note: values < range_min or > range_m float32[] intensities # intensity data [device-specific units]. If your # device does not provide intensities, please leave # the array empty. 9