Remes Jukka (2002) Järjestämättömissä ympäristöissä autonomisesti toimivien robottien ohjausjärjestelmä.



Samankaltaiset tiedostot
Ohjelmistojen mallintaminen, mallintaminen ja UML

Tiedonsiirron kokonaisoptimointi erilaisten tietoverkkojen yhteiskäytössä

UML -mallinnus TILAKAAVIO

DIPLOMITYÖ ARI KORHONEN

Ohjelmistojen suunnittelu

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

FI Moninaisuudessaan yhtenäinen FI A8-0005/4. Tarkistus

FI Moninaisuudessaan yhtenäinen FI. Tarkistus. Beatrix von Storch EFDD-ryhmän puolesta

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Tilastotiede ottaa aivoon

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Vuorekseen liittyvä tutkimusja kehitysprojekti. Langaton Vuores. Kotikatupalvelin

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

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

Mikä on internet, miten se toimii? Mauri Heinonen

Tilastotiede ottaa aivoon

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Ohjelmistojen mallintaminen

Uponor C-46 -lämmönsäädin. Säätilan mukaan kompensoituva ohjain vesikiertoisiin lämmitys- ja jäähdytysjärjestelmiin

Tietotekniikan valintakoe

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Automaatio ja robotiikka arjessa

Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

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

Matematiikan tukikurssi

Harjoitustyön testaus. Juha Taina

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

Tutkittua tietoa. Tutkittua tietoa 1

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Verkko-oppiminen: Teoriasta malleihin ja hyviin käytäntöihin. Marleena Ahonen. TieVie-koulutus Jyväskylän lähiseminaari

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

The OWL-S are not what they seem

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Evolutiivisesti stabiilin strategian oppiminen

kertaa samat järjestykseen lukkarissa.

Harjoitus 6 ( )

Laskut käyvät hermoille

Parasta ammunnanharjoitteluun

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

OPPIMISTEHTÄVÄT. Tietojen hyödyntäminen suunnittelussa ja johtamisessa -verkkokoulutus TEAviisari

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Paloilmoitusjärjestelmän laajennusratkaisu - Sinteso Move

2. Olio-ohjelmoinnin perusteita 2.1

Alkukartoitus Opiskeluvalmiudet

S09 04 Kohteiden tunnistaminen 3D datasta

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Hieman lisää malleista ja niiden hyödyntämisestä

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Harjoitus 3 ( )

Työelämäyhteydet uudistuvassa korkeakoulutuksessa seminaari Sessio 3. Kirsti Keltikangas, Aalto-yliopiston Sähkötekniikan korkeakoulu

työryhmien SharePoint-yhteistyötä helpottava ratkaisu

Yhteisöllisen toimintatavan jalkauttaminen!

Agentit ja semanttinen web. Pekka Halonen

Sähkötekniikan tutkintoohjelma. DI-tutkinto ja uranäkymät

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

4.2 Sulkuyhtälöt ja joustavuus

Uusi, kestävä tapa valaistuksen tarkasteluun

Ohjelmistotekniikan menetelmät, UML

MONOGRAFIAN KIRJOITTAMINEN. Pertti Alasuutari

Oppimistavoitematriisi

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Tietoturvallisuus yhteiskunnan, yritysten ja yksityishenkilöiden kannalta

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Tee-se-itse -tekoäly

Harjoitus 6 ( )

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Selvitys aiemmin hankitun osaamisen tunnustamisen ja tunnistamisen (AHOT) prosesseista korkeakouluissa

83450 Internetin verkkotekniikat, kevät 2002 Tutkielma <Aihe>

Tehtävä: FIL Tiedostopolut

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Uudelleenkäytön jako kahteen

Testaajan eettiset periaatteet

Johdanto. Rough Sets. Peruskäsitteitä

Tarina-tehtävän ratkaisu

Pikapaketti logiikkaan

Määrittelydokumentti

Malliratkaisut Demot

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

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

ARVIOINTI Esiopetuksen opsin perusteissa

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

GA & robot path planning. Janne Haapsaari AUTO Geneettiset algoritmit

Verkkokoulutus ja uuden oppimiskulttuurin luominen. TieVie-kouluttajakoulutus Helsinki Pirjo Ståhle

LISÄOHJEITA DIPLOMITYÖN TEKEMISEEN

Oppimistavoitematriisi

PROJEKTIAVUSTUKSEN (C) TOIMINTASELOSTELOMAKKEEN RAY3707 TÄYTTÖOHJE. Yleistä... 1

Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori

Tekoäly ja sen soveltaminen yrityksissä. Mika Rantonen

Transkriptio:

1

Remes Jukka (2002) Järjestämättömissä ympäristöissä autonomisesti toimivien robottien ohjausjärjestelmä. Oulun yliopisto, Sähkötekniikan osasto. Diplomityö, 91 s. TIIVISTELMÄ Käytöspohjainen ohjaus on osoittautunut lupaavaksi ratkaisuksi, kun robotit toimivat järjestämättömissä ympäristöissä. Tässä työssä tutustutaan käytöspohjaiseen robotin ohjaukseen liittyvään tutkimukseen perusteellisen kirjallisuusselvityksen ja oman ohjausjärjestelmän rakentamisen kautta. Kirjallisuusselvityksessä keskitytään tarkastelemaan kehitettyjen ohjausjärjestelmien arkkitehtuureja ja ratkaisuja käytösten koordinointiin. Koordinointiin löydetään ratkaisuja perustuen etuoikeuksiin, tilakoneisiin, käytösten väliseen kilpailuun, superpositioon, äänestykseen, sumeaan logiikkaan ja optimointiin. Ratkaisuja löydetään myös muihin tärkeisiin käytöspohjaisten ohjausjärjestelmien ongelmiin. Näitä ovat muun muassa se, miten ohjaus voidaan osittaa käytöksiksi, ja se, miten vältetään näennäisesti hyvä ohjaus, joka saattaa viedä ohjauksen umpikujaan. Työssä kehitetään ohjausjärjestelmä käyttäen kirjallisuusselvityksessä saavutettua tietämystä. Kehitystyö lähtee liikkeelle järjestelmän määrittämisestä menetelmä- ja arkkitehtuuritasoilla. Kyseisessä vaiheessa valitaan kirjallisuusselvityksessä esille tulleista lupaavimmat ja tässä työssä toteuttamiskelpoisimmat menetelmät. Myöskin ohjausjärjestelmän arkkitehtuuriin otetaan vaikutteita useammista lähteistä. Kehitetty ohjausjärjestelmä perustuu näin ollen ideoihin ja konsepteihin, joita useat tutkijat ovat koestaneet omissa töissään. Ohjausjärjestelmä toteutetaan itse rakennetun laitteiston päälle Java-ohjelmistona käyttäen kehitystyössä UML-mallinnusta. Oman ohjausjärjestelmän lisäksi työssä esitetään ohjausjärjestelmän rakentamiseen liittyviä näkökulmia, joita on opittu kirjallisuusselvityksen ja järjestelmän rakentamisen yhteydessä. Avainsanat: arkkitehtuuri, hajautus, käytös, laskennallinen älykkyys, liikkuva robotti, tekoäly

Remes Jukka (2002) Control System for Robots Operating in Unstructured Environments. Department of Electrical Engineering, University of Oulu, Finland. Diploma thesis, 91 p. ABSTRACT Behaviour-based control has proven promising in situations where robots operate in unstructured environments. In this thesis behavior-based robot control is studied through a thorough literature study of the subject and by constructing a control system for a robot. In the literature study the emphasis is on architectures of existing control systems and finding solutions to the behavior coordination problem. Discovered solutions utilize priorities, finite state machines, competition between behaviors, superposition, voting, fuzzy logic, and optimization. Some solutions are also found for other important problems of behavior-based control systems. How to divide the control into behaviors and how to avoid control decisions that are only seemingly good serve as examples of these problems. A control system is developed utilizing the knowledge gained in the literature study. The development is started with defining the control system on the algorithmic and architectural level. This beginning phase includes selection of algorithms that are most promising and feasible to be implemented in this thesis. Also features of the control system architecture are influenced by several different sources. The control system developed in this thesis is thus based on ideas and concepts, which have been tested by several researchers in their own work. The control system is implemented as a Java software on a self-made hardware platform. The development process utilizes UML-modeling of the system. In addition to representing the control system developed in this thesis, some information is presented regarding the building of a control system for a robot. The information is based on literature study and experiences gained in the construction of the control system. Keywords: architecture, artificial intelligence, behavior, computational intelligence, distribution, mobile robot

SISÄLLYSLUETTELO TIIVISTELMÄ ABSTRACT SISÄLLYSLUETTELO ALKUSANAT LYHENTEET JA SANASTO 1. JOHDANTO...9 2. ROBOTIN OHJAUKSEN ESIMERKKIONGELMA...11 2.1. Osaongelma 1: tavoitesuuntaan eteneminen...11 2.2. Osaongelma 2: esteiden väistäminen...12 2.3. Osaongelma 3: kääntyminen kulmista haluttuun suuntaan...13 2.4. Osaongelma 4: tavoitteiden yhtäaikaisen täyttymisen ongelma...14 3. ROBOTTIEN OHJAUSJÄRJESTELMÄT...15 3.1. Robotin ohjausjärjestelmätyyppien luokitus...15 3.1.1. Suunnittelupohjaiset järjestelmät...15 3.1.2. Käytöspohjaiset järjestelmät...16 3.1.3. Yhdistelmäjärjestelmät...18 3.1.4. Valittu lähestymistapa...18 3.2. Yksittäisen ohjauksen valinta käytöspohjaisessa ohjauksessa...19 3.2.1. Käytöksien etuoikeuksiin pohjautuvat ratkaisut...19 3.2.2. Toimintatilanteiden mukaan toimivat ratkaisut...21 3.2.3. Käytöksien väliseen kilpailuun pohjautuvat ratkaisut...22 3.3. Ohjausvaihtoehtojen yhdistäminen käytöspohjaisessa ohjauksessa...24 3.3.1. Superpositioon pohjautuvat ratkaisut...24 3.3.2. Äänestämiseen pohjautuvat ratkaisut...26 3.3.3. Sumeaan logiikkaan pohjautuvat ratkaisut...35 3.3.4. Multiple Objective Decision Making...41 4. OHJAUSJÄRJESTELMÄN SUUNNITTELU AUTOART-PROJEKTISSA...46 4.1. Robotin ohjaukseen valitut ratkaisut...46 4.2. Ohjausjärjestelmän toteutus AutoArt-projektissa...51 4.3. Kehitystyössä käytettävä robottialusta...52 4.4. Ohjausjärjestelmä...55 4.4.1. Kokonaistavoitteiden jako yksinkertaisiin osatavoitteisiin...59 5. KEHITETTY OHJAUSJÄRJESTELMÄ...66 5.1. Kehitystyö...66 5.1.1. Kehitystyössä käytetyt menettelyt...66 5.1.2. Kehitysympäristö ja käytetyt työkalut...68 5.1.3. Kehitystyön ongelmat ja niistä saavutetut kokemukset...69 5.2. Syntyneet ohjelmistokomponentit...71 5.2.1. Yleiskäyttöiset ohjelmistokirjastot...71 5.2.2. Järjestelmän valmiusaste...73 5.3. Selvitys modernin ohjausjärjestelmän rakentamisen näkökulmista...78 5.3.1. Käytöspohjaisen ohjauksen käyttäminen...78

5.3.2. Reaktiivisuuden ja suunnittelun yhdistäminen...79 5.3.3. Suunnitteluosan järkevä mitoitus...79 5.3.4. Informaation katoamisen esto...79 5.3.5. Järjestelmän dynaamisuuden ja laajennettavuuden säilyttäminen...80 5.3.6. Järkevä toiminnan valitseminen...80 5.3.7. Teoriapohjan merkitys...80 6. YHTEENVETO...82 7. LÄHTEET...84 8. LIITTEET...88

ALKUSANAT Tämä diplomityö on tehty VTT Elektroniikan Älykkäät järjestelmät tutkimusryhmässä osana VTT:n omarahoitteista Autoart-projektia. Autoart-projektin tarkoituksena oli saattaa ryhmämme tietämys myös robotiikassa käytettävästä tekoälystä ajan tasalle. Robotiikan tekoälyn ollessa laaja ja uudehko aihe ryhmällemme tahdon esittää kiitokset työni valvojille professori Juha Röningille ja professori Jukka Riekille työn arvioinnin lisäksi myös avusta työn aiheen valinnassa. Tahdon kiittää työni ohjaajaa DI Kari Haatajaa hyvästä työlle saamastani tuesta. Tämän diplomityön aiheen ollessa laajahko hänen panoksensa robotin laitteiston parissa auttoi minua paneutumaan enemmän robotin ohjauksen menetelmiin ja niiden ohjelmistototeutukseen. Karin ja ryhmämme esimiehen DI Jorma Hintikan kanssa diplomityön tiimoilta pitämämme palaverit toimivat hyvinä tahdistuspisteinä sen etenemiselle. Ylipäätään tahdon kiittää työnantajaani VTT Elektroniikkaa siitä, että se on tarjonnut hyvät puitteet opetella tutkimustyön tekemistä. Tahdon esittää kiitokset myös muille työtovereilleni, joiden kanssa on aina ollut antoisaa keskustella aiheesta kuin aiheesta. Lisäksi kiitän itseäni siitä, että opin lopulta pitämään näppini erossa muista mielenkiintoisista työtehtävistäni ennen työni valmistumista. Kiitän opiskelutovereitani luottamuksesta toimiessani opiskeluaikanani teekkarijärjestöissä. En kadu yhtäkään niistä päivistä, jotka vietin työn tai opiskelun sijaan hyvässä seurassa opiskelijaelämästä ja yhdessä tekemisestä nauttien. Ne opettivat myös koko joukon asioita, joita ei kirjoja lukemalla opi. Haluan kiittää myös läheisiäni. Ensimmäisenä tahdon esittää kauniin kiitoksen Päiville, joka on ymmärtänyt luomisen tuskaani omaan diplomityöhönsä liittyvän luomisen tuskan lisäksi. Toiseksi kiitän kissojamme siitä, että ne ovat muistuttaneet, etteivät kaikki asiat voi aina odottaa diplomityön valmistumista, ja siskoani Mariaa toimimisesta sinnikkäänä opponenttina, mitä tulee keskusteluihin kaikkein korkealentoisimmista tekniikan mahdollisuuksista. Tahdon kiittää vanhempiani Martti ja Heljä Remestä siitä, että he ovat aina tarjonneet minulle parhaat mahdollisuudet kehittää itseäni. He ovat lisäksi toimineet hyvinä esikuvina aktiivisista ja uusista asioista kiinnostuneista ihmisistä 50 vuoden iässä suorittamine jatkotutkintoineen. Osoitan vanhempieni lisäksi kiitokseni myös muille sukulaisilleni ja tuttavilleni, jotka ovat innoittaneet minua harrastamaan tekniikkaa ja luonnontieteitä, sen jälkeen opiskelemaan niitä ja lopulta myös hankkimaan elantoni niistä. Lopuksi omistan tämän diplomityön isoäidilleni Lovisa Remekselle, joka siirtyi ajasta iäisyyteen keväällä 2001 juuri, kun olin aloittelemassa diplomityötä. Kaipaan erityisesti hänen kanssaan käymiäni keskusteluja elämästä ja tekniikasta. Oulussa 6.5.2002 Jukka Remes

LYHENTEET JA SANASTO AAAI Yhdysvaltalainen yleishyödyllinen tekoälyn tutkimusta edistämään pyrkivä yhdistys (the American Association for Artificial Intelligence) CASE Tietokoneavusteinen ohjelmistokehitys (Computer Aided Software Engineering) DARPA Yhdysvaltain puolustusvoimien tärkein tutkimus- ja tuotekehitysorganisaatio (Defence Advanced Research Projects Agency) DLL Windows-käyttöjärjestelmän tiedostomuoto ohjelmiin ajonaikaisesti linkitettäville funktiokirjastoille (Dynamic Link Library) IDE Integroitu sovelluskehitysympäristö, joka tarkoittaa käyttöliittymällä yhteen nidottua kehitystyökalujen joukkoa (Integrated Development Environment) IEEE Kansainvälinen sähkötekniikan alalla työskentelevien insinöörien järjestö, joka harjoittaa mm. alan standardointityötä (The Institute of Electrical and Electronics Engineers) MODM Useita yhtäaikaisia tavoitteita huomioonottava päätöksenteko (Multiple Objective Decision Making) RS-232 Sarjamuotoisen tiedonsiirron määrittelevä standardi, joka on vakinaistanut paikkansa henkilökohtaisten tietokoneiden ja niiden oheislaitteiden välisen tiedonsiirron määrittäjänä (Recommended Standard 232) SA/SD Proseduraalisten ohjelmointikielten yhteydessä käytetty ohjelmistokehityksen mallinnuskieli (Structured Analysis/Structured Design) SOAPBox VTT Elektroniikassa kehitetty sekä langattomalla että langallisella tietoliikenneyhteydellä varustettu anturointiyksikkö (Sensing, Operating and Activating Peripheral Box) TCP/IP Tietokoneverkoissa de facto standardiksi muodostunut yhteydellinen protokolla (Transmission Control Protocol / Internet Protocol) USB Uudempi ja RS-232:sta nopeamman sarjamuotoisen tiedonsiirron määrittelevä standardi, joka on alkanut korvata RS-232:sta henkilökohtaisen tietokoneen ja sen oheislaitteiden välisen tiedonsiirron määrittäjänä (Universal Serial Bus) UML Oliopohjaisen ohjelmistokehityksen mallinnuskieli (Unified Modelling Language) WLAN Yleisnimi langattomille verkkoteknologioille, jotka pohjautuvat IEEE:n 802.11-standardeihin (Wireless Local Area Network) Etologia Humanoidi- Keinotodellisuus Keskitin Merkki Neuroni Eläinten käyttäytymisen tutkimus Fyysiseltä olemukseltaan ihmistä muistuttuva Fyysistä todellisuutta jäljittelevä 3-ulotteinen tietokonemalli Laite, jonka kautta toistensa kanssa tietoa vaihtavat laitteet voi liittää keskitetysti yhteen Käytöspohjaisessa robotin ohjausjärjestelmissä käytetty komponentti, johon on koottu järjestelmän päällekkäisten tiedonjalostus- ja varastointitehtävien suoritusta; engl. marker Neuroverkon tiedonkäsittely-yksikkö, jonka toiminnan esikuvana ovat oikeissa eliöissä toimivat hermosolut

Neuroverkko Matemaattinen algoritmi, jonka toiminta pyrkii jäljittelemään oikeissa hermostoissa tapahtuvia tiedonkäsittelyprosesseja Ohjelmisto- Ohjelmistokomponentti, joka pystyy yhteistyössä muiden agentti ohjelmistoagenttien kanssa suorittamaan tietyn älykkyyttä vaativan tehtävän Ontologia Yhteisten konseptien formaali ja selvä määritelmä; määrittelee agenttiteknologian tapauksessa agenttien välisessä kommunikoinnissa käytettävät käsitteet, attribuutit ja niiden väliset suhteet Pareto- Tilanne, jossa ei löydy minkään näkökulman kannalta parempaa optimaalisuus ratkaisua muuten kuin huonontamalla samalla jonkin muun näkökulman kannalta parasta ratkaisua PC Card Kannettaviin ja vähän virtaa kuluttaviin tietokonelaitteisiin liitettävien lisäkorttien standardi Planning Päätöksentekoprosessi, jonka tuloksena syntyy pitemmän tähtäimen suunnitelma päästä haluttuun tavoitteeseen, eli vastakohta tässä ja nyt tapahtuvalle päätöksenteolle Sumea Perinteisen logiikan laajennus, jossa päättely tapahtuu sumeaa joukkologiikka oppia hyödyntämällä, engl. fuzzy logic Sumea Laajennus perinteisestä joukko-opista siten, että joukkoon voi kuulua joukko-oppi muutenkin kuin täysin tai ei ollenkaan. Tekoelämä Tieteenala, joka pyrkii jäljittelemään oikeaa luontoa simuloimalla elämää teknisin keinoin ja oppimaan sen kautta ymmärtämään luontoa; engl. Artificial Life Teleoperointi Ihmisen suorittama kauko-ohjaus Tilakone Abstrakti verkko, jonka solmukohdat kuvaavat järjestelmän tiloja ja solmujen väliset kytkökset siirtymismahdollisuuksia tilasta toiseen. Tässä diplomityössä tilakone nimitystä käytetään tarkoittamaan äärellistä tilakonetta, koska sekaannusta ei voi tulla; engl. Finite State Automaton, FSA. Toimilaite Laite, joka toiminnallaan muokkaa ympäristönsä tilaa; esimerkiksi moottori, joka pyörittää ajoneuvon renkaita ja muuttaa siten ajoneuvon paikkaa. Täsmällis- Sumeaa logiikka hyödyntävän järjestelmän toiminto, jossa sumeasta täminen ulostulosta muokataan yksittäinen täsmällinen arvo Vihivaunu Teollisuudessa käytettävä kuljetustehtäviä automaattisesti suorittava ajoneuvo

1. JOHDANTO Robotiikkaa on käytetty ihmiselle yksitoikkoisten töiden automatisointiin jo 1980- luvulta saakka. Tehtävät ovat olleet enimmäkseen teollisuuden tehdasympäristöissä, joissa tuotantoympäristöt ovat usein tarkasti suunniteltavissa ja valvottavissa. Näin ollen robottijärjestelmien toimintaympäristöt ovat olleet tarkasti mallinnettavissa (esimerkiksi autotehtaan kokoonpanolinjalla tapahtuva hitsaus tai maalaustehtävä) ja niitä on voitu melko vapaasti muokata robotin vaatimuksia vastaaviksi (esimerkiksi vihivaunuja varten tehtaan lattiaan asennettavat suunnistuslangat). On kuitenkin olemassa myös vaihtelevia ja jatkuvasti muuttuvia toimintaympäristöjä eikä niihin ole mahdollista lisätä robotin toimintaa tukevaa infrastruktuuria. Havainnollisena esimerkkinä voitaisiin mainita taimistosta tai metsän harvennuksista itsenäisesti vastaavan metsätyökonerobotin työskentely-ympäristö, joka on yhtä moninainen kuin luonto ja johon on lähes mahdotonta lähteä sijoittamaan suunnistuslankoja tai mitään niihin rinnastettavaa. Tällaisissa toimintaympäristöissä käyttöön kaavailtujen robottien toiminta täytyy suunnitella itsenäisemmäksi. Viime vuosina myös ihmisten palveluun tarkoitetut robotit ovat alkaneet tehdä tuloaan oikeiksi tuotteiksi [1]. Tämän tyyppisten robottien täytyy kyetä autonomiseen toimintaan, koska ihmisten keskellä toimiminen on monelta kannalta yhtä ongelmallista kuin em. itsenäisen metsäkoneen toiminta. Lisäksi ainakin valtaosa väestöstä on mieltynyt käyttämään yksinkertaisia teknisiä laitteita, minkä vuoksi robottien itsenäisyys lisäisi huomattavasti niiden käytettävyyttä. Esimerkkeinä tämänhetkisistä kaupallisista palveluroboteista Friendly Robotics on kehittänyt autonomisen ruohonleikkurin [2] ja englantilaiselta Dysonilta on saatavissa itsenäisesti toimiva imuri kotitalouksiin [3]. Japanilaiset puolestaan loistavat viihde-elektroniikan puolella (esimerkiksi Sonyn Aibo-koira [4]) ja ovat alkaneet jopa kehittämään humanoidirobotteja (esimerkiksi Hondan Asimo ja P3 robotit [5]) tulevaisuuden yleispalvelurobottikonsepteja silmällä pitäen. Eräänlainen ulkotila-apuri on myös suunnitteilla Suomessa Teknillisen korkeakoulun Automaatiotekniikan laboratoriossa [6]. Lisäksi huomattavaa on, että palvelurobottien ja itsenäistä toimintaa vaativien teollisuuden robottisovellusten toiminnan haasteet ovat hyvin samantyyppisiä. Niiden ratkaisemiseen soveltuvat osittain saman tyyppiset menetelmät. Valitettavasti vaikuttaa siltä, että osa kaupallisiin sovelluksiin käyttöön päätyvistä menetelmistä on yllättävän alkeellisia verrattuna siihen, mitä tiedeyhteisöllä olisi tarjota. Vaikka robottisovelluksista ei haluttaisikaan kokonaan autonomisesti toimivia, voidaan osittaisen itsenäisyyden lisäämisellä laitteisiin silti esim. helpottaa metsätyökoneen ohjausta, vähentää siivousrobotin toimintaan tarvittavien puuttumisten määrää tai varmentaa vaikkapa vaarallisissa tiloissa toimivan huoltorobotin teleoperointia. Kun robottijärjestelmissä on itsessään selviytymiskyky triviaalien ja arkipäiväisten ongelmatilanteiden varalta (esimerkiksi esteiden kierron, törmäykseneston ja yleisen itsesuojelun automaattinen ja yhtäaikainen huomiointi), niin ohjaaja tai operaattori voi paremmin keskittyä varsinaiseen tehtävään. Tällöin kone suorittaa

automaattisesti käsillä olevan ongelman vaatimat kompensaatiot ihmisohjaajan antamiin ristiriitaisiin tai vahingollisiin käskyihin ja ohjauksiin. VTT Elektroniikan Älykkäät järjestelmät -ryhmässä käynnistyi vuoden 2001 alussa omarahoitteinen projekti AutoArt. Projektin tarkoitus on tutkia robottien autonomisoinnin mahdollisuuksia ja menetelmiä. Tämä diplomityö muodostaa kyseisen projektin osakokonaisuuden, jossa sovelletaan tekoälymenetelmiä robotin ohjauksessa. Ohjaus mahdollistaa robotin autonomisen ja järkevän toiminnan ongelmatilanteissa, esimerkiksi vaaratilanteissa tai esteiden ilmaantuessa valitulle reitille. Autonomisten robottien tutkimusta ja tuotekehitystä on tehty jo paljon. 1980-luvun puolessa välissä robotin ohjaukseen liittyvässä tutkimuksessa alettiin ensimmäistä kertaa kokeilemaan radikaalisti aikaisemmasta poikkeavia lähestymistapoja (mm. Rodney Brooksin työt [7]). Tässä diplomityössä tehdään katsaus kyseisiin lähestymistapoihin. Parhaiten ohjaukseen soveltuvista menetelmistä ja arkkitehtuureista poimitaan joukko piirteitä ja näitä piirteitä hyväksikäyttäen toteutetaan esimerkinomainen ohjausjärjestelmä. Lisäksi kootaan yhteen joukko em. ohjausmenetelmien ja -arkkitehtuurien parissa työskennelleiden tutkijoiden hyväksi havaitsemia ohjenuoria suorituskykyisen, laajennettavan ja joustavan ohjausjärjestelmän rakentamiseksi. Ohjausjärjestelmällä tarkoitetaan tässä yhteydessä sitä osaa robotista, jossa ei ole mukana robotin toiminnan suunnitteluun (engl. planning) tähtääviä osia. 10

11 2. ROBOTIN OHJAUKSEN ESIMERKKIONGELMA Tässä diplomityössä käsitellään robotin ohjauksen ongelman ratkaisua. Ongelmaa voisi lähteä ratkaisemaan etsimällä kullekin robotille soveltuvaa omaa ohjaustapaa tai yrittää löytää yleisempiä ratkaisuja. Tässä työssä perehdytään jälkimmäisiin eli yleisesti robottiin soveltuviin ratkaisuihin. Yleisyyteen pyrkiminen pakottaa käsittelemään ohjausongelman ratkaisemista toimintalogiikan tasolla. Toimintalogiikka viittaa tässä yhteydessä ongelman jäsentämiseen ja sen ratkaisun suunnitteluun korkealla abstraktiotasolla. Tällaisella tasolla kuvatut robotin ohjauksen menetelmät ja tavat ovat toteutettavissa konkreettiseksi ohjausjärjestelmäksi useilla eri tavoilla ohjelmistoteknisesti, elektronisesti tai käyttämällä molempia. Tässä diplomityössä pyritään antamaan juuri toimintalogiikan tasolla kuva siitä, miten eri ohjausmenetelmiä ja tapoja voi hyödyntää roboteissa. Toisaalta, kun ohjausmenetelmät ja tavat ovat jo luonteeltaankin teoreettisia, johtaa niiden hyödyntämisen edellä mainitun kaltainen kuvaaminen helposti vaikeaselkoisuuteen. Sen välttämiseksi tässä kappaleessa kuvataan konkreettinen robotin ohjauksen esimerkkiongelma, jonka ratkaisuun diplomityössä rakennettavaa ohjausjärjestelmää voidaan hyödyntää. Lukijan on tarkoitus saada tästä ongelmasta kiintopiste, jonka kannalta tässä dokumentissa myöhemmin esiteltäviä asioita voi miettiä. Esimerkkiongelma liittyy robottiin, joka suorittaa tehtäviä toimistorakennuksessa. Toimistorakennus koostuu käytävistä ja niiden varrella olevista huoneista. Käytävillä saattaa olla robotin etenemistä haittaavia tilapäisiä esteitä. Käytävät ja huoneiden oviaukot saattavat olla paikoittain kynnystetyt. Robotin ei kuitenkaan tarvitse vaihtaa kerrosta eikä siten huomioida portaikkoja. Robotin tavoitteeksi asetetaan kyky tehdä yhtäaikaisesti seuraavat asiat: 1) edetä annettuun tavoitesuuntaan, 2) väistää vastaantulevat esteet, kuten laatikot ja pöydät, ja 3) kääntyä kulmista haluttuun suuntaan. Seuraavien alaotsikoiden 2.1 2.4 alla esitellään kuhunkin osatavoitteeseen liittyvät ongelmat sekä tärkeimpänä osatavoitteiden yhtäaikaisen huomioimisen ongelma robotin ohjauksessa. Diplomityössä käytettävä robottialusta on nelipyöräinen ajoneuvo, jonka runkona toimii kauko-ohjattava RC-auto ja ohjausjärjestelmän laitteisto-osuutena kevyt sylimikro sekä siihen liitettävä oheiselektroniikka. Tarkempi kuvaus robottialustasta annetaan kappaleessa 4.3. 2.1. Osaongelma 1: tavoitesuuntaan eteneminen Osaongelmassa robotin tavoitteena on ajaa annettuun tavoitesuuntaan (Kuva 1) ja se voidaan toteuttaa esimerkiksi yksinkertaisena säätöjärjestelmänä (Kuva 2). Säätöjärjestelmä pyrkii pitämään sille annetun suunnan asetusarvon ohjaamalla robotin kääntymistä esim. kompassitiedon perusteella.

12 Haluttu etenemissuunta Robotin etenemissuunta Tavoitteen mukaisen ohjauksen tulos Robotin etenemissuunta Robotti Robotti Kuva 1. Ensimmäisen tavoitteen toteutuminen. asetusarvo (tavoitesuunta) + - e Säädin (esim. PID, sumea säädin tms.) robotin pyörien ohjaus Robotti robotin suunta (esim. kompassisuuntima) Kuva 2. Tavoitteen toteuttava säätöjärjestelmä. 2.2. Osaongelma 2: esteiden väistäminen Osaongelman tavoitteena on saada robotti väistämään sitä lähestyvät esteet. Robotti voi päätyä esim. huonon teleoperoinnin tai sille annetun toimintasuunnitelman vuoksi tilanteeseen, jossa se on ajamassa päin seinää tai vaikkapa toimistokalusteita. Ratkaisuksi pulmaan robotille pitää kehittää kyky ohjata etenemisnopeuttaan ja suuntaansa perustuen havaitsemiensa esteiden sijainteihin (estetiedot). Kun robotti on etenemässä sen on pystyttävä väistämään mieluiten etenemissuuntaansa reitillään havaitsemansa esteet (Kuva 3). Sen pitää tietenkin välttää myös osumiset muihin esteisiin, kuten seiniin. Tämä vaatii robotilta jo monimutkaisempaa päättelykykyä kuin suoraviivaisen säätöjärjestelmän, mutta monia jo olemassa olevia tekoälyyn perustuvia, säätöteknisiä ja muita ratkaisuja on hyödynnettävissä ja yhdisteltävissä esteiden väistämisen toteuttamiseksi.

13 Robotin etenemissuunta Este Robotti Este Robotin etenemisreitti Tavoitteen mukaisen ohjauksen tulos Robotti Kuva 3. Esteen väistäminen robotin edetessä. 2.3. Osaongelma 3: kääntyminen kulmista haluttuun suuntaan Robotin on pystyttävä tekemään riittävän jyrkkiä käännöksiä risteyspaikoissa, jotta se pystyisi poikkeamaan toimiston käytäviltä niiden varrella oleviin huoneisiin ja etenemään sulavasti monimutkaisempia reittejä käytävillä. Kolmantena osaongelmana on tällaisen toiminnan huomioiminen robotin ohjausjärjestelmässä. Kuva 4 hahmottaa asiaa esimerkin avulla. Robotin ylemmän tason ohjaus (esimerkiksi suunnittelujärjestelmä tai robottia teleoperoiva ihminen) huomaa, että robotin pitäisi kääntyä oikealle seuraavasta risteyksestä. Se antaa robotille käskyn muuttaa suuntaansa 90 oikealle heti, kun se on mahdollista. Sekaannuksen vaaraa ei ole, koska ennen risteystä ei ole muita reittejä oikealle. Seinä (este) loppuu robotin oikealla puolella. Se kääntyy tarpeeksi jyrkästi annettuun suuntaan, jotta saavuttaisi uuden etenemissuunnan törmäämättä muihin seiniin. Robotille annettu komento: Käänny oikealle (90 astetta) heti, kun pystyt Komennon tulos Robotti Robotti jatkaa kulkuaan komennossa annettuun suuntaan Robotin etenemisreitti Seinän loppuminen mahdollistaa kääntymisen, robotti huomaa sen ja kääntyminen käynnistyy Komento annetaan robotille Kuva 4. Kulmasta kääntyminen.

14 2.4. Osaongelma 4: tavoitteiden yhtäaikaisen täyttymisen ongelma Ongelmien yksittäistä ratkaisua vaikeampaa on saada kaikki robotin toiminnalle asetetut tavoitteet (kuten edellä mainitut tavoitesuuntaan ajaminen, esteiden väistö ja kääntyminen kulmista haluttuun suuntaan) toteutumaan yhtä aikaa. Tämä muodostaa robottijärjestelmän suunnittelun neljännen osaongelman. Esimerkkinä tavoitteiden yhtäaikaisesta toteutumisesta on tilanne, jossa robotin pitää toisaalta edetä sille asetettuun tavoitesuuntaan ja toisaalta väistää reitin varrella olevia esteitä (Kuva 5). Esteet vaativat robottia kääntymään, mutta sen pitää myös jatkaa tavoitettaan kohti. Tällaisten ristiriitaisten tilanteiden optimaaliseen ratkaisemiseen vaaditaan robotin kohdalla omat menetelmänsä, joita tässä diplomityössä erityisesti esitellään ja sovelletaan. Toisena esimerkkinä voisi toimia tilanne, jossa humanoidirobotin käsillään tekemä työ halutaan huomioida sen samanaikaisesti kävellessä, jottei se vahingossa esimerkiksi kaatuisi. Robotin etenemissuunta (tavoitesuunta) Este Useamman tavoitteen täyttävän ohjauksen tulos Robotti Robotin etenemisreitti Este Robotti Kuva 5. Useamman tavoitteen yhtäaikainen huomioiminen ohjauksessa. Useiden tavoitteiden yhtäaikaisen huomioimisen ongelma päätöksenteossa (tämän diplomityön tapauksessa ohjauksessa) on robotiikkaa yleisempi ongelma. Samanlainen ongelma on mm. seuraavilla aloilla: etologia, tekoelämä, keinotodellisuus, ohjelmistoagentit ja hahmontunnistus. [8]

15 3. ROBOTTIEN OHJAUSJÄRJESTELMÄT Tässä luvussa tehdään katsaus olemassa oleviin robottien ohjausjärjestelmiin. Kappaleessa 3.1 käydään läpi kolme erilaista olemassa olevaa robotin ohjausjärjestelmän toimintaperiaatetta. Kyseinen kolmijako on alalla yleisesti hyväksytty tapa kategorisoida robottien ohjausjärjestelmien toimintaperiaatteita karkealla tasolla [8 s. 3-4]. Näistä kolmesta periaatteesta valitaan se, joka sopii parhaiten järjestämättömissä ympäristöissä autonomisesti toimivien robottien ohjauksen perustaksi. Kappaleissa 3.2 ja 3.3 perehdytään aikaisempaan tutkimukseen liittyen kappaleessa 3.1 valittuun toimintaperiaatteeseen. 3.1. Robotin ohjausjärjestelmätyyppien luokitus Erityyppiset robottien ohjausjärjestelmät voidaan toimintalogiikkansa perusteella jakaa karkeasti kolmeen pääryhmään. Nämä ryhmät ovat suunnittelupohjaiset, käytöspohjaiset ja yhdistelmäjärjestelmät. 3.1.1. Suunnittelupohjaiset järjestelmät Suunnittelupohjaisissa järjestelmissä (engl. planning systems, deliberative systems) ideana on, että ohjaus suoritetaan valmiin suunnitelman pohjalta. Suunnitelmanlaadintayksikkö tuottaa suunnitelman perustuen robotille annettuihin tavoitteisiin ja sen ympäristöstä muodostettuun malliin. Tämän jälkeen ohjaus pelkistyy suunnitelman vaiheiden suorittamiseksi robotin toimilaitteiden kautta. Kuvassa 6 näkyy suunnittelupohjaisen järjestelmän rakenne ja toimintaidea. Tällaista jakoa järjestelmän osiin nimitetään myös toiminnalliseksi jaoksi (engl. functional decomposition). Suunnittelupohjaisia järjestelmiä on tutkittu esimerkiksi seuraavissa tapauksissa: Moravec [9], Kosaka & Kak [10] ja Pirjanian & Christensen [11]. 3. Mallintaminen tarjoaa suunnittelulle tarvittavat tiedot ympäristöstä Suunnittelu 4. Suunnittelu antaa valmiin suunnitelman suoritettavaksi Mallintaminen Suunnitelman suorittaminen Havainnointi 2. Havainnointi antaa mallintamiseen siihen sopivaa tietoa 5. Suunnitelman eri vaiheista saadaan robotin ohjauskäskyt Toimilaitteiden ohjaus 1. Havainnointi saa antureilta jalostamatonta tietoa 6. Kuten havainnointi jalostaa anturitietoa, niin toimilaitteiden ohjaus tulkkaa suunnitelman ohjauskäskyt toimilaitteiden ohjaukseksi Toimilaitteet Kuva 6. Suunnittelupohjaisen järjestelmän toiminta.

16 Suunnittelupohjaisten järjestelmien etuna on, että niitä voidaan analysoida matemaattisesti ja siten myös osoittaa niiden toimivuus. Jos robotti toimii järjestämättömissä ympäristöissä, jotka muuttuvat välillä nopeasti, joudutaan suunnitelma tekemään uudestaan. Koska suunnitelman laatiminen on laskennallisesti raskasta, ei sitä käytännössä voida tehdä jatkuvasti uudestaan. Sen sijaan järjestelmään voidaan lisätä poikkeustilanteita käsitteleviä osia. Näiden myötä tosin suunnittelupohjaisten järjestelmien parhaalta ominaisuudelta, niiden toimivuuden matemaattiselta todistettavuudelta, voi pudota pohja pois [12]. Suunnitteluun pohjautuvia järjestelmiä vaivaa huono vikasietoisuus niiden loogisen toiminnan tasolla. Minkä tahansa osatehtävän (esimerkiksi havainnointi tai mallintaminen) suorittamista varten voidaan varata ylimääräisiä laite- ja ohjelmistoresursseja. Niillä voidaan robotin vikaantumistilanteessa korvata alkuperäiset resurssit. Toimintalogiikan vialle varokeinoja ei ole käytettävissä. Esimerkiksi, jos mallintamisesta ei synny paikkaansa pitävä kuvaus ympäristöstä, tulee sen pohjalta tehdystä suunnitelmastakin virheellinen, eikä robotti enää toimi halutulla tavalla. 3.1.2. Käytöspohjaiset järjestelmät Käytöspohjaiset järjestelmät (engl. reactive systems, behaviour-based systems) pyrkivät ratkaisemaan suunnittelupohjaisten järjestelmien ongelmat täysin vastakkaisella lähestymistavalla robotin ohjaukseen. Tämä lähestymistapa syntyi 1980-luvun puolessa välissä (mm. Rodney Brooksin [7] esittämänä) itse asiassa juuri siitä syystä, että kappaleessa 3.1.1 esitettyihin ongelmiin haluttiin löytää ratkaisuja. Robotin ohjausjärjestelmä jaetaan yksittäisiin loogisiin toimintayksiköihin, joita kutsutaan käytöksiksi. Kukin käytös on vastuussa robottia ohjattaessa jonkin yksittäisen tavoitteen huomioimisesta. Kuvassa 7 on karkeasti kuvattu käytöspohjaisen järjestelmän idea (järjestelmän jakoon käytöksiksi viitataan myös englannin kielisellä termillä behavioural decomposition ). Käytökset toimivat rinnakkain ja ne voivat myös toimia eri tahdilla. Voi olla järkevää esimerkiksi pitää esteiden väistö valppaampana kuin ympäristön kartoitus. Sitä, että käytökset pystyvät reagoimaan tällä tavoin nopeasti ympäristössä tapahtuviin muutoksiin, kutsutaan reaktiivisuudeksi, johon toinen englannin kielinen käytöspohjaisten järjestelmien nimityskin viittaa. Reaktiivisuudessa on myös ideana, että päätökset tehdään yleensä tässä-ja-nyt, eikä suunnitteluosaa välttämättä ole mukana reaktiivisessa käytöksessä. Yksittäisen käytöksen sisäiseen toteutukseen voi sisältyä samanlaisia toiminnallisia osia kuin esim. suunnittelupohjaisiin järjestelmiin (esim. havainnointi- ja mallinnusosat). Ne tosin keskittyvät vain käytöksen tavoitteen kannalta olennaisiin asioihin. Käytösohjattuja järjestelmiä esitellään mm. Brooksin [7], Maesin [13], Rosenblattin & Thorpen [14], Mataricin [15] ja Arkinin [16 s. 143-165] tutkimuksissa.

17 1. Jokainen käytös saa antureiltavaintarvitsemansa tiedot Käytös 1: Esteiden väistö 2. Jokainen käytös ohjaa toimilaitteita oman tavoitteensa mukaisesti Anturit Käytös 2: Tavoitteeseen eteneminen Toimilaitteet Käytös N: Esim. ympäristön kartoittaminen Kuva 7. Käytösohjatun järjestelmän looginen rakenne. Käytöksiin perustuvien järjestelmien ongelmana on jako käytöksiin. Yksittäiset käytökset olisi hyvä pitää sen verran yksinkertaisina, että ne säilyttävät tarpeellisen reaktiivisuuden. Toisaalta pitäisi myös huomioida, että käytökset toteuttavat yhdessä ja/tai erikseen kaikki robotille annetut tavoitteet. Tämä on vaikeaa jo senkin puolesta, että reaktiivisuudesta johtuen käytöksien yhteistoimintaa on vaikeaa analysoida teoreettisesti. Näin ollen takeet kokonaistoiminnan optimaalisuudesta tai edes tavoitteiden täyttymisestä ylipäätään tyydyttävästi jäävät saamatta. Lisäksi tavoitteiden täyttyminen ei välttämättä takaa sitä, että robotin toiminta olisi enemmän kuin tavoitteiden toteutumisen summa. Todellisten, eri vaiheita tarvitsevien tehtävien kuten reitin kulkemisen, siivouksen tai esineiden kuljetuksen määrittely robotille pelkän sopivan käytösjoukon valitsemisella on todella vaikeaa. Ilman oikeita tehtäviä robotti on täysin päämäärätön, vaikka se osaisikin hienosti väistää esteet tai ajaa annettuun suuntaan, ja soveltuu tällöin oikeastaan vain teleoperoitavaksi. Robotin tavoitehakuisuuden saavuttaminen on suurimpia käytöspohjaisen ohjauksen ongelmia. Kolmas ongelma on liittynyt siihen, että käytökset tuottavat robotille ohjauskäskyjä vain oman tavoitteensa kannalta. Ne ovat siten useimmiten ristiriitaisia muiden käytösten tuottamien ohjausten kanssa. Miten voidaan valita käytöksien tuottamista ohjauksista sellainen, että kaikki tavoitteet täyttyvät kokonaisuudessaan mahdollisimman hyvin? Kyseinen ohjauksen valinnan ongelma on sama ongelma kuin kappaleessa 2.4 mainittu useiden tavoitteiden yhtäaikainen huomioiminen päätöksenteossa. Molempiin edellisiin ongelmiin esitellään tässä diplomityössä ratkaisut perustuen aikaisempaan eri tutkijoiden tekemään tutkimukseen. Järjestelmän suunnitteluun käytöksiin jakamisen kannalta on kehitetty menetelmä (kappale 3.3.4), joka lähtee liikkeelle tavoitteista ja päättyy käytöksiin. Kyseistä menetelmää käytetään tässä diplomityössä ohjausjärjestelmän käytöksien suunnitteluun. Ohjauksen valintaa varten ohjausjärjestelmään kuuluu lisätä sen toteuttava mekanismi, joka sijoittuu muuhun järjestelmään nähden kuvan 8 osoittamalle paikalle. Tätä aihetta käsitellään enemmän kappaleissa 3.2 ja 3.3.

18 Käytös 1: Esteiden väistö 2. Jokainen käytös ohjaa toimilaitteita oman tavoitteensa mukaisesti Käytös 2: Tavoitteeseen eteneminen Ohjausten valinta / yhdistäminen Toimilaitteet 3. Lopullisen ohjauksen valintamekanismi valitsee toimintatavastaan riippuen useista ohjauksista yhden tai yhdistelee niistä uuden, ja välittää sen toimilaitteille Käytös N: Esim. ympäristön kartoittamine Kuva 8. Ohjauksen valinta käytöksien tuottamista ohjauksista. 3.1.3. Yhdistelmäjärjestelmät Yhdistelmäjärjestelmissä (engl. hybrid systems) pyritään yhdistämään suunnitteluun ja käytöksiin pohjautuvien järjestelmien hyvät puolet. Reaktiiviset käytökset voivat hoitaa aikakriittisiä tehtäviä samalla, kun hitaammalla tempolla erillisessä suunnitteluosassa tapahtuu suunnitelman laatiminen. Suunnitelmalla päästään eroon puhtaasti käytöspohjaisia järjestelmiä vaivaavasta päämäärättömyydestä. Tämä kahden järjestelmän toisiaan täydentävyys on suoraan verrattavissa ihmisten ja eläimien refleksien ja aivoissa tapahtuvan suunnittelun toisiaan täydentävään toimintaan. Seuraavissa kappaleissa esiteltävistä käytöspohjaisista järjestelmistä useimmat sisältävät enemmän tai vähemmän myöskin suunnitteluun liittyviä asioita. Näin ollen ne ovat tietyissä määrin myös yhdistelmäjärjestelmiä. 3.1.4. Valittu lähestymistapa Robotin ohjauksen jakaminen käytöksiin on osoittautunut menestyksekkääksi tavaksi ottaa huomioon järjestämättömän ympäristön reaaliaikaiset ja ennalta-arvaamattomat haasteet. Koska tässä diplomityössä esitellään juuri järjestämättömiin ympäristöihin tarkoitettuja robottien ohjausjärjestelmiä, on käytöspohjaisen ratkaisun valinta tutkittavaksi kohteeksi luonnollista. Diplomityössä toteutettava käytöspohjainen ohjausjärjestelmä on kuitenkin siinä mielessä myös yhdistelmäjärjestelmämäinen, että se rakennetaan vähemmän reaktiivisten suunnitteluosien myöhempää liittämistä silmälläpitäen. Kappaleissa 3.2 ja 3.3 esitellään olemassa olevia ratkaisuja robotin käytöspohjaisiksi ohjausjärjestelmiksi. Kuten kappaleessa 2.4 todettiin, on robotille asetettujen tavoitteiden ja siten eri käytösten (valittu lähestymistapa robotin ohjauksen toteuttamiseen) yhtäaikainen huomioiminen ongelmallista. Sen vuoksi aikaisemman tutkimuksen esittelyssä painotetaan niitä asioita, joilla kussakin ratkaisussa kyseinen ongelma on pyritty ratkaisemaan. Ongelmaa voidaan nimittää myös suoritettavan toiminnon valitsemisen ongelmaksi. Omia tavoitteitaan ajaen eri käytökset tuottavat erilaisia vaihtoehtoja seuraavaksi suoritettavaksi toiminnoksi ja ongelmaksi jää valita niistä se, joka sopii tilanteeseen

19 parhaiten. Tähän valintaan on olemassa karkeasti kaksi erilaista lähestymistapaa [8 s. 23]: yksittäisen ohjauksen valintaan ja ohjausvaihtoehtojen yhdistämiseen perustuvat ratkaisut. Kappale 3.2 esittelee ensimmäiseen ja kappale 3.3 jälkimmäiseen kategoriaan kuuluvia ratkaisuja. 3.2. Yksittäisen ohjauksen valinta käytöspohjaisessa ohjauksessa Yksittäisen ohjauksen valinnasta käytetään usein alalla nimitystä arbitrointi (engl. arbitration). Eräässä mielessä tämä on hieman harhaanjohtavaa. Toisaalta sana tarkoittaa välimiesmenettelyä jollaisena myös ohjausvaihtoehtojen yhdistäminen voidaan nähdä. Toisaalta taas sen yksi merkitys viittaa sovintoon, vaikka arbitrointiratkaisuissa valitaankin yksittäisen käytöksen ehdottama ohjausvaihtoehto ja siten pahimmillaan vain yhden käytöksen tavoitteen toteutuminen. Yksittäisen ohjausvaihtoehdon valintaan pohjautuvat ratkaisut voidaan edelleen luokitella [8 s. 24-25] etuoikeuksiin perustuviin (engl. priority-based), toimintatilanteiden mukaan toimiviin (engl. state-based) ja käytöksien väliseen kilpailuun pohjautuviin (engl. winnertakes-all) järjestelmiin. Yksittäisen ohjauksen valinnassa on se hyvä puoli, että ohjauksen määräytyminen voidaan ymmärtää helposti. Sen näkee suoraan kyseisen ohjauksen tehneen käytöksen toimintalogiikasta. Toisaalta taas, kun ainoastaan yksi käytös kerrallaan pääsee suoritukseen, niin myöskin ainoastaan yksi robotin tavoitteista toteutuu kerrallaan. Koska tämä on ristiriidassa kappaleessa 2.4 määritellyn robotin ohjauksen päämäärän kanssa, tullaan aiemman tutkimuksen esittelyssä painottamaan kappaletta 3.3, jonka esittelemissä menetelmissä usean tavoitteen toteutuminen otetaan huomioon. Yksittäisen ohjauksen valintaa ei kannata silti unohtaa, koska kappaleessa 3.3 selostetut menetelmät eivät yksistään ratkaise kaikkia ohjauksen ongelmia. 3.2.1. Käytöksien etuoikeuksiin pohjautuvat ratkaisut Etuoikeuspohjaisissa järjestelmissä käytöksillä on etukäteen määritelty tärkeysjärjestys. Järjestyksen mukaisesti tärkeimmän käytöksen tuottama ohjaus valitaan sitten robotin ohjaukseksi. Koulukirjaesimerkkinä etuoikeuksiin pohjautuvista ratkaisuista toimii Subsumption-arkkitehtuuri [7]. Sen on kehittänyt Rodney Brooks, jota voi pitää yhtenä käytöspohjaisen ohjauksen alkuperäisistä keksijöistä. Brooksin mallin mukaan voidaan ajatella, että robottien ohjauksessa on erilaisia pätevyystasoja (engl. level of competence). Yksinkertaisin ohjausjärjestelmä toteuttaa vain alimman tason vaatimukset (esim. robotti kykenee väistämään esteitä), kun taas monimutkaisempi voi osata huomattavasti enemmän (robotti pystyy vaeltelemaan ympäristössään jonkin tavoitteen mukaisesti jne.). Subsumptionarkkitehtuurissa on ideana, että ohjausjärjestelmä voidaan rakentaa käytöksiä vähitellen lisäillen. Sana subsume tarkoittaa omaksumista. Subsumption viittaa siihen, että Brooksin arkkitehtuurissa myöhemmin lisätyt käytökset pystyvät omaksumaan niitä aikaisemmin lisättyjen roolin. Myöhemmin lisätyt käytökset estävät tarpeellisissa tilanteissa aikaisemmin lisättyjen toiminnan korvaamalla niiden tuottaman ohjauksen omallaan. Myöhemmin lisätyillä käytöksillä on täten aina järjestelmän rakentamisvaiheessa määrätty etuoikeus aikaisemmin lisättyihin nähden.

20 Brooks loi Subsumption-arkkitehtuurin vaihtoehdoksi perinteiselle mallinnukseen ja suunnitteluun perustuvalle robotin ohjaukselle (ks. kappale 3.1.1). Kuvan 9 osat [7] esittävät a) perinteistä järjestelmää ja b) Subsumption-arkkitehtuuria, joka jakaa robotin ohjauksen tehtävät pienempiin ja rinnakkaisiin osiin, käytöksiin. a) Perinteisen ohjausjärjestelmän toiminnalliset osat. b) Subsumption-arkkitehtuurin toiminnalliset osat. Kuva 9. Perinteisen järjestelmän osat verrattuna Subsumption-arkkitehtuurissa esitettyyn tapaan rinnakkaistaa samat tehtävät. Järjestelmän kokoaminen vaiheittain varmentaa sen, että yksittäiset käytökset ja siten pätevyystasot voidaan rakentaa ja testata huolellisesti ennen kuin siirrytään toteuttamaan vaativampia osia. Brooks käyttää käytöksien toteutuksessa laajennettuja tilakoneita (engl. augmented finite state machines). Pätevyystason N käytöksen toteuttava tilakone on liitetty kiinteästi tason N-1 käytöksen toteuttavan tilakoneen rakenteisiin. Näin ollen järjestelmästä tulee kuitenkin sen verran kiinteä, että jos sitä halutaan muuttaa, on se rakennettava huomattavissa määrin alusta asti uudelleen. Toinen Subsumption-arkkitehtuurin ongelma liittyy siihen, että se ei sisällä mekanismia, jolla robotille voitaisiin määritellä selvät päämäärät. Robotin kokonaiskäytös perustuu tällöin pikemminkin huonosti mallinnettavaan käytöksien yhteistoimintaan ja saattaa olla liian päämäärätön, jotta se toteuttaisi mitään hyödyllistä (ks. kappale 3.1.2). Subsumption-arkkitehtuuriin liittyy myös toinen käytöspohjaisten järjestelmien perusongelma: miten tehdä sopiva jako käytöksiin (ks. kappale 3.1.2)? Jos käytökset valitaan huonosti, voi se myöhemmin johtaa edellä mainittuun järjestelmän uudelleensuunnitteluun alusta asti. Subsumption-arkkitehtuurin ongelmia on käsitellyt tarkemmin esimerkiksi Tsotsos [17]. Ongelmistaan huolimatta Brooksin alkuperäinen ajattelutapa on toiminut tärkeänä perustana käytöspohjaista ohjausta kehitettäessä. Mm. Ferrell [18] on soveltanut Subsumption-arkkitehtuuria menestyksekkäästi monimutkaisessa järjestelmässä.

21 3.2.2. Toimintatilanteiden mukaan toimivat ratkaisut Näissä ratkaisuissa käytöksistä aktivoidaan kulloinkin sopiva osajoukko, joka pystyy ratkaisemaan käsillä olevan tilanteen. Nämä ratkaisut kuuluvat yksittäisen ohjauksen valintaan perustuviin ratkaisuihin, koska niissäkin on suorituksessa yksi käytös kerrallaan. Pääpaino on sen sijaan siinä, miten käytösjoukkoa rajataan kaikkien käytösten joukosta. Kun rajaus on tehty, kyseisen tilanteen hoitamiseen aktivoitujen käytösten yhteistoiminta tuottaa halutun lopputuloksen. Kun tilanne on ohi, valitaan jälleen uusi osajoukko käytöksiä hoitamaan se. Esimerkkinä toimintatilanteiden mukaan toimivista ratkaisuista toimivat Discrete Event Systems ja Temporal Sequencing arkkitehtuurit [19, 20]. Ne perustuvat molemmat tilakoneiden käyttöön. Ideana on, että yksittäiset käytökset ovat omia tilakoneitaan. Tilojen välisten siirtymisten ehtoina on sekä robotin ympäristössä tapahtuvia muutoksia (esim. este ilmestyy robotin tielle) että sen itse suorittamia toimintoja (esim. robotti päättää kiihdyttää). Robotin kokonaiskäyttäytyminen saadaan halutuksi kokoamalla näistä tilakoneista sopiva yhdistelmätilakone. Erilliset käytökset ovat erotettavissa yhdistelmästä sen tilojen osajoukkoina ja niihin liittyvinä tilasiirtyminä. Kuvassa 10 [8] on esitetty esimerkki tällaisesta osajoukosta. Kyseinen käytös pyrkii ohjaamaan robotin oven toisen puolelle. Kuva 10. Oven läpikulun toteuttava käytös tilakoneisiin perustuvassa järjestelmässä. Nähdään helposti, että näissä ratkaisuissa käytökset ohjaavat robottia kukin vuorollaan. Onhan kysymys tilakoneista, joissa kukin tila vuorollaan on aktiivisena. Kukin tila vastaa jotain robotin toimintatilannetta. Vuorosiirtymät puolestaan perustuvat siihen, missä tilassa yhdistelmätilakone sattuu olemaan, koska jokaisesta tilasta ei välttämättä ole siirtymismahdollisuutta kaikkiin muihin tiloihin (ja siten niitä vastaaviin käytöksiin).

22 Yhdistelmätilakone ei välttämättä toimi oikein, vaikka tilakoneet, joista se on rakennettu, yksinään toimisivatkin [19]. Sen vuoksi yhdistelmätilakoneen tilojen välisistä siirtymistä pitää rajata pois ne, jotka johtavat kussakin toimintatilanteessa epätoivottuun lopputulokseen. Arkinin [20] tutkimuksessa tämä on hoidettu asettamalla rajoitukset mukaan jo yhdistelmätilakoneen muodostukseen. Koseckan [19] arkkitehtuurissa on mekanismi, jolla rajaus voidaan tehdä lennosta kuhunkin toimintatilanteeseen sopivalla tavalla: yhdistelmätilakoneen rinnalla toimii toinen tilakone. Sen tilat vastaavat robotille vastaan tulevia toimintatilanteita ja sisältävät rajoitusmääritelmiä. Määritelmä on tieto siitä, mitkä yhdistelmätilakoneen tilojen välisistä siirtymistä ovat sallittuja kyseisessä toimintatilanteessa. 3.2.3. Käytöksien väliseen kilpailuun pohjautuvat ratkaisut Kilpailuun pohjautuvissa ratkaisuissa käytökset kilpailevat jonkin periaatteen mukaisesti. Robotin ohjausvuoro annetaan kunkin kilpailukierroksen päätteeksi sen voittavalle käytökselle. Tästä periaatteesta kuvaa antaa esimerkiksi Activation Networks ratkaisu. Activation Networks [13] tai tarkemmin Spreading Activation Networks tyyppiset ratkaisut kuvaavat menetelmää, jossa käytöksien valintaan vaikuttaa niiden aktivoitumistaso. Menetelmää käyttävä järjestelmä kuvataan käytöksinä, joista jokainen suorittaa aktivoituessaan omasta näkökulmastaan tärkeitä toimia. Käytös, jolla on kulloinkin suurin aktivoitumistaso, pääsee suoritukseen. Käytöksien aktivoitumistasoon vaikuttavat järjestelmän tila ja tavoitteet sekä toiset käytökset. Maes [13] itse käyttää kyseisistä käytöksistä nimitystä kompetenssimoduuli. Jokaiselle käytökselle on määritelty ehtoja, joiden toteutuessa sen olisi tärkeää tulla valituksi, ja tavoitteita, joiden toteutumista se aktivoituneena suorittamiensa toimien välityksellä edistää tai estää. Järjestelmän suorituksen kulku koostuu kierroksista, joissa tehdään muutokset käytöksien aktivoitumistasoihin ja valitaan niistä suurimman tason saavuttanut. Jokaisella kierroksella jaetaan aktivoitumisenergiaa useammasta lähteestä. Tietty määrä aktivoitumisenergiaa jaetaan tasan niiden käytösten kesken, joiden tulee olla aktiivisina, kun järjestelmä on nykyisessä tilassaan (käytöksien aktivoitumisille määritellyt ehdot). Jokin toinen määrä aktivoitumisenergiaa jaetaan sekin tasan niiden käytösten kesken, jotka pyrkivät toimillaan edistämään järjestelmän nykyisten tavoitteiden täyttymistä. Lisäksi käytöksiltä, jotka pyrkivät toimillaan estämään nykyisten tavoitteiden toteutumista, otetaan pois yhteensä jokin kolmas määrä aktivoitumisenergiaa. Edellisten, järjestelmän ulkopuolisten aktivointilähteiden, lisäksi käytökset vaikuttavat toistensa aktivoitumisiin. Käytösten välisiä aktivoitumisenergiavirtoja kuvataan verkkorakenteella, jonka mukaan menetelmäkin on saanut nimensä. Kukin käytöksistä pyrkii antamaan lisää aktivoitumisenergiaa niille käytöksille, joiden aktivoitumisehdot käyvät toteen antavan käytöksen omien toimien seurauksena. Lisäksi kukin käytös puoltaa samalla tavoin niiden käytösten aktivoitumista, joiden toimien seurauksena käytöksen omat aktivoitumisehdot täyttyvät. Kukin käytös pyrkii myös vähentämään aktivoitumisenergiaa toisilta käytöksiltä, jotka estävät sen omien aktivoitumisehtojen toteutumista. Edellinen voidaan nähdä myös siinä valossa, että käytöksellä on oma itsenäinen tavoitteensa, joka ei sen näkökulmasta toteudu, mikäli se ei pääse suorittamaan omia toimiaan. Tällöin käytökset vähentävät toistensa akti-

23 voitumisenergiaa samanlaisesta syystä kuin itse järjestelmäkin, kun järjestelmä pyrkii varjelemaan sille asetettujen tavoitteiden toteutumista. Käytöksien suoritussekvenssin luo, miten aktivoitumistasot vaihtuvat kullekin käytökselle kullakin kierroksella ja mikä niistä tulee suurimman tasonsa vuoksi valituksi kullakin kierroksella. Suoritussekvenssi johtaa lopulta siihen, että järjestelmä on tavoitteittensa mukaisessa tilassa. Tämä sekvenssi riippuu syntytapansa vuoksi siitä, missä tilanteessa järjestelmä sattuu kussakin suorituksensa vaiheessa olemaan, ja on siksi joka kerralla hyvin suurella todennäköisyydellä erilainen kuin aikaisemmin. Järjestelmällä on siis tavallaan suunnitelma edetä, mutta se syntyy samalla, kun sitä suoritetaan. Toisaalta suunnitelmaa on myös vaikea ymmärtää, koska se on määritetty osittain implisiittisesti järjestelmän rakenteeseen säännöiksi siitä, miten aktivoitumisenergiamääriä muutetaan. Kuvassa 11 on esitetty yksinkertainen esimerkki verkon rakenteesta. Pallot ovat käytöksiä ja laatikot ulkoisia vaikuttavia aktivointilähteitä kuten tavoitteita ja järjestelmän tiloja. Valkoiset nuolet tarkoittavat aktivaation lisäämissuhdetta ja tummat sen aktivoinnin vähentämistä. Käytöksien väliset nuolet liittyvät järjestelmän rakenteeseen ja ovat siten kiinteitä. Tiloista käytöksiin tulevat nuolet ovat puolestaan tilapäisempiä siinä missä tilat ja tavoitteetkin. Tila: sijainti käytävällä huoneen edessä Käytös: siirry huoneeseen Käytös: suorita huonekohtainen tehtävä Käytös: navigoi huoneeseelle Käytös: poistu huoneesta Tavoite: tehtävän suorittaminen huoneessa Kuva 11. Esimerkkiverkko järjestelmän osien välisistä aktivointisuhteista. Maesin työt liittyvät pitkälti ohjelmistoagentteihin eivätkä suoraan fyysisiin agentteihin kuten robotteihin. Tässä diplomityössä tehdyssä selvityksessä epäselväksi jäi, onko menetelmää testattu kokeellisesti oikean robotin ohjaukseen, ja mitkä sen vahvuudet ja heikkoudet siinä yhteydessä ovat.

24 Tietyssä mielessä Activation Network konsepti muistuttaa osaa neuroverkkoina tunnetuista tekoälyn matemaattisista algoritmeista. Yhtäläisyytenä voidaan nähdä mm. se, että molemmat esitetään verkkorakenteena ja verkon osien kesken välitetään tietoa. Neuroverkoissa kuitenkaan yksittäisellä verkon osalla, neuronilla, ei ole samanlaista merkitystä kuin käytöksellä Activation Network tyyppisessä verkossa. Neuroni on vain yksittäinen tiedonkäsittely-yksikkö ja sen merkitys on yhteisvaikutuksessa, jonka sen ja muiden neuroneiden muodostama verkko saa aikaan. Käytöksellä puolestaan on sellaisenaan merkitys, koska se määrittää itsenäisesti, mitä järjestelmän tulisi kussakin tilanteessa tehdä. 3.3. Ohjausvaihtoehtojen yhdistäminen käytöspohjaisessa ohjauksessa Ohjausvaihtoehtojen yhdistämisestä käytetään alalla usein myös nimitystä komentofuusio. Komentofuusio-luokkaan kuuluvat menetelmät voidaan edelleen luokitella superpositioon (engl. superposition), äänestämiseen (engl. voting) ja sumeaan logiikkaan (engl. fuzzy) perustuviin menetelmiin [8 s. 25]. Niiden lisäksi oman lisäluokkansa luovat Multiple Objective Decision Making teoriaan perustuvat ratkaisut. Näihin kategorioihin kuuluvat menetelmät toteuttavat karkeasti seuraavanlaisen sekvenssin: 1) Käytökset tuottavat suosituksia seuraavaksi valittavaksi ohjausvaihtoehdoiksi. Kunkin käytöksen tuottamat suositukset ovat hyviä ennen kaikkea sen omalta kannalta. Ne toisin sanoen pyrkivät varjelemaan järjestelmän sen osatavoitteen täyttymistä, jota kyseinen käytös edustaa. 2) Järjestelmä yhdistää jollakin säännöllä eri käytöksien tuottamat suositukset. 3) Oikea ohjausvaihtoehto valitaan perustuen yhdistettyihin suosituksiin. Koska komentofuusiossa valittu ohjausvaihtoehto perustuu yhtä aikaa useamman käytöksen suosituksiin tulevat myös useammat järjestelmän tavoitteet täyttyneiksi samalla kertaa. Lopputulos on kuitenkin kompromissi toistensa kanssa ristiriidassa olevien tavoitteiden välillä, eikä aina ole intuitiivisesti selvää, miten järjestelmä päätyi kyseiseen kompromissiin. 3.3.1. Superpositioon pohjautuvat ratkaisut Superpositiossa käytökset tuottavat kukin omat ehdotuksensa ohjausvaihtoehdoksi, ja komentofuusiointi luo niistä lineaarisen yhdistelmän, kuten esimerkiksi painotetun summan. Esimerkkinä superpositioon perustuvista menetelmistä esitetään potentiaalikenttien käyttö. Niitä esittelee työssään mm. Khatib [21]. Khatibin työ ei käsittele robotin ohjauksia käytöksien avulla, mutta esittelee kuitenkin niiden toiminnan peruskonseptit. Varsinaisen linkin potentiaalikenttien ja käytöspohjaisen ohjauksen välille muodostaa Arkinin työ moottoriskeemojensa parissa [16 s. 143-165]. Khatib on menestyksekkäästi käyttänyt potentiaalikenttiä robottikäsivarren ohjauksessa esteitä väisteltäessä, ja eräät osapuolet ovat käyttäneet sitä kokonaisten robottien ohjauksessakin [8]. Arkinin skeemoja käyttävään arkkitehtuurin pohjautuva robottijoukkue voitti AAAI:n robottikilpailun vuonna 1994 [22]. Potentiaalikentissä on käsitteellisesti kysymys siitä mistä fysiikassakin ilmenevissä potentiaalikentissä. On olemassa varaus ja kenttä tosin tässä tapauksessa keinotekoinen jossa varaus liikkuu kentän siihen kohdistamien voimien vaikutuksesta.