Kenttä- ja palvelurobotiikan harjoitustyö. Teemu Kemppainen, Heikki Hyyti, Olli Sjöberg, Sami Salonen, Timo Schwarte, Lotta Kannari 15.1.

Koko: px
Aloita esitys sivulta:

Download "Kenttä- ja palvelurobotiikan harjoitustyö. Teemu Kemppainen, Heikki Hyyti, Olli Sjöberg, Sami Salonen, Timo Schwarte, Lotta Kannari 15.1."

Transkriptio

1 Kenttä- ja palvelurobotiikan harjoitustyö Teemu Kemppainen, Heikki Hyyti, Olli Sjöberg, Sami Salonen, Timo Schwarte, Lotta Kannari

2 Sisältö 1 Johdanto 4 2 Ohjelmiston rakenne 5 3 Robotin arkkitehtuuri 6 4 Mittaustieto ja robotin aistit Kamera Odometria Laserskanneri Turvallinen alue robotin ympärillä Konenäkö Kameran kalibrointi Objektien sijainnin määritys Tunnistusalgoritmi Opettaminen Oppiminen ja tunnistaminen Testaus ja suorituskyky Reeksit Pysäytysreeksi Kääntymisreeksi Nopeuden rajoittaminen toteuttamiskelpoiseksi Paikannus laserpaikannus Paikan globaali haku kartalta Robotin paikan oikeellisuuden valvonta Paikannuksen sensorifuusio EKF:llä Viiveen kompensointi ja laitteen paikan prediktointi Navigointi Reitinsuunnittelu Reitinseuraaja Reeksiivinen PD-nopeussäädin Tehtävän suunnittelu Roskien etsintä Roskan hakeminen

3 9.3 Roskan vieminen roskakoriin Matlabin simulaattori Dynamiikkasimulaattori Lasermittauksen simulaattori Törmäyksenhavaitsija ja puskurien simulointi Toimielimen simulointi Käyttöliittymä Uusi ja vanha käyttöliittymä Kommunikointi pääohjelman kanssa Toiminnallisuus Toimielin Laitteiston toimivuus ja haasteet Moottorinohjaimen viive Laskenta-algoritmien raskaus Kameran liikkuminen ja kameran kalibroinnin epätarkkuus IO-kortin ongelmat Yhteenveto 44 Viitteet 46 3

4 1 Johdanto Projektissa tehtävänä oli suunnitella ja toteuttaa robotti, joka kerää tunnetusta huoneesta roskat ja kuljettaa sekä lajittelee ne roskakoreihin. Robotin tulee pystyä toimimaan osittain itsenäisesti, kuitenkin operaattorin auttaessa ongelmatilanteiden ja vaikeampien tehtävien yli. Robotin ohjaus ei saa kuormittaa operaattoria liikaa, vaan operaattorin tulisi pystyä ohjaamaan laitetta muiden töidensä ohella. Robotin fyysinen toteutus, laitteiden ajurit sekä valmis rajapinta robotin ohjaamiseen esimerkkikoodeineen oli kurssilla valmiina. J2B2-robotteja oli kuitenkin vain yksi, ja se tuli jakaa kaikkien kilpailevien ryhmien kesken. J2B2-robotti on kuvassa 1 keräämässä roskia areenalta. Projekti tehtiin kuuden hengen ryhmätyönä. Ryhmän tuli itse suunnitella ja toteuttaa roskien poimimiseen soveltuva työväline - toimilaite, jota käyttäen J2B2-robotti voisi kerätä ja lajitella roskia. Työvälineen liittäminen J2B2-robottiin ja sen ohjaus robotin järjestelmien avulla tuli itse toteuttaa. Projektissa tuli myös suunnitella ja toteuttaa koko ohjelmallinen robottia ohjaava järjestelmä, joka annettujen komentojen ja robottiin asennettujen mittalaitteiden avulla pystyisi selviytymään tehtävästä. Tässä esitetty ratkaisu täyttää kaikki projektityön vaatimukset, mutta sen lisäksi pyrkii mahdollisimman autonomiseen suoritukseen. Ryhmämme lähti jo suunnittelupöydällä kehittämään täysin autonomista laitetta, joka pystyy toimimaan itsenäisesti annetussa työtehtävässä. Ehdimme toteuttaa suurimman osan suunnitelmista, ja lopputuloksena onkin kokolailla autonomisesti toimiva laite, jonka toimintaa käyttäjä pystyy käyttöliittymän avulla valvomaan ja tarkentamaan niin halutessaan. Laitteeseen toteutettiin jonkin verran turvaominaisuuksia, joiden avulla se esimerkiksi välttää seiniin törmäämisen. Pahimmillaan täysin autonomisesti toimiva robotti jää jumiin, eikä selviä ilman käyttäjän apua. Dokumentissa kuvataan tehdyn työn laajuuden takia käytetyt algoritmit vain pintapuoleisesti selittäen niiden idea ja yksinkertaistettu toiminnallisuus. Annettujen tietojen pohjalta on mahdollista toteuttaa samalla toimintaperiaatteella toimiva robotti, mutta algoritmit eivät esitetyssä laajuudessaan toimi täydellisesti. Monia käytettyjä algoritmeja on hierottu ja modi- oitu heuristisesti juuri tähän tarkoitukseen sopiviksi. Näitä hienosäätöjä on jätetty dokumentaatiosta pois, jotta järjestelmän toiminta olisi helpommin ymmärrettävissä. Tällä tavoin esitettynä projektia varten kehitettyjä ideoita ja algoritmeja on helpompi käyttää muissa vastaavissa käyttötarkoituksissa. 4

5 Kuva 1: J2B2-robotti työn toimessa kilpailuareenalla 2 Ohjelmiston rakenne Robotin ohjelmisto on suunniteltu ja toteutettu mahdollisimman modulaarisesti. Toteutetun ohjelmiston yleinen rakenne, lohkojen riippuvuudet toisistaan, ja käytettyjen ohjelmointikielten ja ohjelmistojen jaottelu on esitetty kuvassa 2. Keskeisin luokka on J2B2, joka toimii keskusyksikkönä muille luokille. Sensorit ovat jaettu omaan luokkaansa ja kukin sensorikysely on jaettu omaan säikeeseensä. Myös konenäkö on omassa luokassaan ja säikeessään. Rakenteen ideana on, että sensorit (myös konenäkö) kyselevät fyysiseltä robotilta mittauksia sopivin väliajoin ja J2B2 (luokka) lukee uusimmat sensoritiedot eri sensoriluokilta aina säätöluuppinsa alussa. Säätöluuppi etenee karkeasti seuraavanlaisesti: 1. Lue sensorit 2. Lue konenäön roskatiedot 3. Aja Simulink-malli 5

6 4. Lähetä tiedot käyttöliittymälle 5. Kirjoita säädöt fyysiselle robotille 6. Kirjoita kaikki data logiin Ohjelman rakenne on tehty siten, että kriittinen säätöluuppi ei koskaan jää odottamaan muita luokkia. Kaikki kriittiset osat ovat myös asianmukaisesti suojattu mutexeilla. Konenäkökoodin rakenne on myös tehty modulaariseksi. Jokainen yksittäinen kuvankäsittelyosa on jaettu omaan luokkaansa ja luokkia yhdistellään "johdoilla"ikään kuin Simulink-malleissa. Kuvankäsittelyluokkien käyttö on erillisissä "skripteissä"(header), tässä tapauksessa esikäsittely ja piirreerottelu ovat erillisissä skripteissään. Konenäön oleellisin luokka on TrashClassier, joka omassa pääluupissaan ensin esikäsittelee kuvan, erottelee piirteet ja luokittelee karkeasti, projisoi kuvakoordinaatit maailman koordinaatistoon ja päivittää sisältämänsä TrashTrackerin tilan ja luokittelee lopullisesti objektit. TrashClassier toimii sensorimaisesti siten, että siltä voi milloin tahansa kysellä uusimmat roskatiedot. 3 Robotin arkkitehtuuri Robotin arkkitehtuuri perustuu eräänlaiseen hybridiarkkitehtuuriin, jossa hierarkista ja reaktiivista arkkitehtuuria on yhdistetty. Arkkitehtuuri koostuu erillisestä reaktiivisesta osasta ja sen päällä toimivasta suunnittelu- ja ohjausosasta. Perinteisen hybridiarkkitehtuurin reaktiivista tasoa [3] on laajennettu laskentaintensiivisemmäksi, niin että melko paljon laskentaa tehdään automaattisesti joka syklillä. Tässä reaktiiviseen tasoon voidaan laskea kuuluvaksi mittausdatan käsittely, konenäkö, laserpaikannus, turvallisen alueen estimointi, sensorifuusio, viiveen prediktointi, reeksiivinen nopeussäädin ja törmäyksen estävä nopeusrajoitin. Reaktiivisen tason toimilohkot on esitetty kuvassa 3 vihreällä taustavärillä. Kuvassa ruskean katkoviivan yläpuolinen osa koostuu käyttöliittymästä, tilakoneesta, toimilaiteohjaimesta, reitinsuunnittelijasta ja reitinseuraajasta. Nämä lohkot suunnittelevat ja toteuttavat ohjauskäskyjä ja ohjearvoja, joiden avulla reaktiivista alempaa tasoa ohjataan. Robotin toiminta voidaan kiteyttää kuvan 3 toimikaavion avulla. Mittaustieto kaikista sensoreista esikäsitellään ja puskuroidaan ensin vasemman 6

7 Kuva 2: Ohjelmiston rakenne alanurkan lohkossa. Koska osasta mittauksista mittaustietoa ei ole saatavilla joka 20Hz laskentasykli, käytetään laskentaan tällöin edellistä saatavilla olevaa mittaustietoa, mutta niin että sen laatuarvoa sensorifuusiota varten lasketaan ajan funktiona. Laskennan nopeuttamiseksi laserpaikannus tehdään kuitenkin vain kuitenkin 10Hz laskentasyklissä, koska mittaustietoa ei tämän tiheämmin ole saatavilla. Laserpaikannuksen ja turvallisen alueen estimoinnin laskema tieto, kuten kaikki muukin mittaustieto ja edellinen asetettu nopeusarvo viedään sensorifuusio ja prediktointi -lohkolle. Tässä lohkossa tapahtuu kaikki eri mittaustietojen yhdistäminen ja näiden tietojen avulla viiveen prediktointi. Laitteen paikka pitää ennustaa viiveen verran eteenpäin sen antaman ohjauksen ja sisäisen mallin avulla, jotta laitetta voitaisiin tehokkaasti ohjata viiveellisessä järjestelmässä. J2B2-robotin tehollinen viive mitattiin vajaan sekunnin mittaiseksi. Tehollisella viiveellä tarkoitetaan todellista käsketyn ja toteutuneen robotin nopeuden välistä aikaeroa. Reeksiivinen säädin toimii tällöin täysin ennustetussa tasossa, ja näin ennusteen yleensä toimiessa hyvin, säädin pystyi säätämään mukautettua PD-säädintä käyttäen robotin nopeusarvoja. PD-säätimessä oli normaalin 7

8 Kuva 3: Robotin arkkitehtuuri ja toimikaavio. erosignaalin vahvistuksen ja sen derivaatan lisäksi vapaan tilan mukaan laskettu kulmanopeuteen vaikuttava termi, jolla säädin reeksinomaisesti väistää lähelle tulevia seiniä ja muita esteitä kääntymällä niistä poispäin. Tämän jälkeen ohjausnopeudet menevät rajoittimelle, joka katsoo, että edessä ei ole seiniä liian lähellä. Rajoitin laskee nopeutta jos ollaan päätymässä liian lähelle seinää. Rajoitin pysäyttää laitteen muutamaa senttimetriä ennen sen osumista seinään. Myös rajoitin toimii prediktoidulla paikkatiedolla, ja näin viiveestä tai ohjauksesta johtuen laite ei pääse ajamaan seinään tai esteisiin. Aivan viimeiseksi rajoitin tarkistaa, että annettava ohjaussignaali on fysikaalisesti toteutettavissa. Tämä tehdään vertaamalla annettavaa ohjausta nopeus ja kiihtyvyys rajoituksiin. Lopulta rajoitettu ja säädetty nopeustieto annetaan ulos ohjauksena. 4 Mittaustieto ja robotin aistit Projektityössä käytettiin J2B2-robotin sensoreista kameraa, renkaiden nopeustietoa, laserskanneria ja puskureita. Puskureita käytettiin alkuvaiheessa havaitsemaan tapahtuneet törmäykset, mutta loppuvaiheessa törmäyksiä ei enää tapahtunut joten sensorit jäivät tarpeettomiksi. Kaikkien sensorien mittaustiedolle rakennettiin puskurointijärjestelmä, joka käytti edellistä saatua mittaustulosta ja laski saatujen mittausten laatua ajan kuluessa. Tällöin van- 8

9 hentuneen mittauksen laatu lähestyi nollaa ja sitä ei pian otettu huomioon sensorifuusiossa ja robotin toiminnassa. Tämä kuitenkin mahdollisti robotin toiminnan silloinkin, jos jokin mittaustieto jäi langattoman verkon häiriöiden takia saamatta ajoissa. 4.1 Kamera J2B2-robotissa on kaksi webkameraa sensorina. Toinen on kytketty kääntöpäähän robotin laserskannerin yläpuolelle ja toinen on vapaasti kiinnitettävissä minne vain. Tehtävässä käytettiin vain kääntöpäähän kiinnitettyä kameraa. Kameran kalibroinnin (5.1) helpottamiseksi kääntöpään liike rajoitettiin ohjelmallisesti toimimaan vain pystysuunnassa. Kamera kuvaa 10 kuvaa sekunnissa, mikä oli käytetylle konenäköalgoritmille aivan tarpeeksi suuri määrä. Todellisuudessa vain murto-osa kamerasta saaduista kuvista ehdittiin käsittelemään (5). 4.2 Odometria J2B2-robotin kummankin renkaan kulmanopeutta mitataan inkrementtienkooderilla, tästä MaCI-rajapinnassa lasketaan valmiiksi paikka ja suuntakulma [11]. Nykyisin rajapinnasta on saatavilla myös nopeus ja kulmanopeusarvot. Valmiiksi laskettua paikkaa ja suuntakulma on vaikea käyttää sensorifuusiossa apuna, koska jos oma estimaatti suuntakulmasta eroaa odometrian suuntakulmasta, integroi odometria x ja y arvoja toteutuneista renkaiden pyörimisnopeuksista väärän kulman suhteen, jolloin x ja y sekoittuvat toisiinsa epälineaarisesti. Tällöin kunnollisen sensorifuusion tekemiseen ainoa vaihtoehto on laskea annetusta paikasta derivaatat kullakin hetkellä ja tätä kautta renkaiden nopeusarvot (tai tätä kautta robotin nopeus ja kulmanopeus). Onneksi robotista kuitenkin saatiin Antti Maulan ja Matthieu Myrskyn avustuksella ulos nopeuden ja kulmanopeuden arvot ja robotin paikan sensorifuusion ongelma helpottui ja tarkentui huomattavasti. Robotin nopeus- ja kulmanopeusmittausten perusteella tehty odometria on suhteellisen tarkka. Siihen kuitenkin kertyy koko ajan virhettä, joten mittaustietoa pitää yhdistää lasermittauksen avulla laskettuun paikkaan (7.1) sensorifuusiolla (7.4). 4.3 Laserskanneri J2B2-robotissa on SICK LMS-200 laserskanneri [9]. Se mittaa asteen välein etäisyysmittauksia -90 asteesta +90 asteeseen, yhteensä 181 mittausta. Mittaukset kerätään kymmenen kertaa sekunnissa sarjaväylän yli J2B2-9

10 robottiin. Lasermittalaite on robotille elintärkeä aisti. Se käyttää mittalaitetta etupäässä navigointiin laserpaikannuksen (7.1) avulla. Robotti osaa myös väistää laserskannerissa näkyviä esteitä navigoidessaan. Tämä on toteutettu turvallisen alueen avulla (4.4). 4.4 Turvallinen alue robotin ympärillä Robotin ympärille lasketaan turvallinen alue. Se mallinnetaan 90 etäisyytenä 4 asteen välein. 4 asteen väli valittiin, koska se on riittävän tarkka, mutta silti laskennallisesti riittävän nopea. Turvallisen alueen yksi etäisyys lasketaan kuhunkin kulmaan niin, että se vastaa robotin säteistä (20cm) ympyrää, joka koskettaa lähintä estettä. Tällöin tässä lasketussa suunnassa robotti mahtuu turvallisesti jokaiseen pisteeseen oman keskipisteensä ja mitatun säteen välillä. Laskettavina esteinä käytetään laserskannerin mittaustietoa, kartan seiniä sekä kamerakuvasta nähtyjä esteitä ja roskia. Koska turvallisen etäisyyden laskeminen lähimpään kohteeseen robotin säteen turvamarginaalilla ei ole aivan triviaalia, avataan algoritmia tässä hieman. Ideana on se, että ensin jokaiseen senttimetrin tarkkuudella diskretoidun kartan pisteeseen piirretään robotin säteinen ympyrä. Sen jälkeen robotista piirretään halutun säteen suuntainen suora. Suoran leikkauspisteet määritetään kaikkien leikkaavien ympyröiden kesken. Näistä valitaan robottia lähin ympyrän ja suoran leikkauspiste. Tämän jälkeen sama tehdään kaikille laserskannerin mittauspisteille ja sen jälkeen kamerakuvasta mitatuille roskille (ottaen myös huomioon roskan koon lisäämän mitan säteeseen). Käytännössä edellistä algoritmia ei voi toteuttaa suoraan noin, vaan toteutus vaatii hieman optimointia. Laskentaan olisi mennyt paljon kauemmin, kuin mitä 20Hz päivitystaajuus olisi sallinut, koska kartan seinäpisteitä oli noin 1500, laserskannerin mittauspisteitä 181 ja kameran esteitä maksimissaan 100 kappaletta. Laskentaa voidaan kuitenkin huomattavasti tehostaa ensin segmentoimalla kartasta tiettyyn rajoitettuun kulmaan osuvat seinäpisteet kuten myös laserskannerin ja kameran antamat esteiden paikat. Kaikki tämä onnistuu siististi, jos suurimman osan laskennasta tekee polaarikoordinaatistossa, jossa robotti on origossa. Lisäksi suoraa robotin säteisiin ympyröihin sovittaessa voi samalla algoritmin suorituskerralla laskea robotin etuja takapuolella olevat (180 asteen ero) lähimmät leikkauspisteet. Kuvassa 4 on esitetty loppukilpailun alussa J2B2-robotti, toimilaitteen kytkemisen jälkeen. Kuvassa näkyy karttapohjalla kolme roskaa, jotka on merkitty magentalla vinoneliöllä, laserskannerin punaiset mittauspisteet, robotti toimielimineen vihreällä viivalla ja vihreällä katkoviivalla esitettynä turvallinen alue. Se ei ole aivan täsmällisen tarkka johtuen suurehkosta 4 asteen välistä turvallisten etäisyyksien välillä. Todelliset turvallisen alueen estimoi- 10

11 Kuva 4: Robotin näkemä turvallinen alue vihreällä katkoviivalla. dut pisteet on esitetty vihreillä pisteillä keskelle turvallisen alueen katkoviivaa. Kuvassa nähdään myös ihmisen jalkojen heijastus laserskannerissa. Laite väistää turvallisen alueen ansiosta myös ylimääräisiä kehään tulevia esteitä, jotka näkyvät laserskannerissa. Viimeisenä vaiheena turvallisen alueen etäisyydet estimoitiin myös ennustettuun paikkaan, johon robotti vajaan sekunnin viiveen aikana sisäisen mallin ja annetun ohjauksen perusteella päätyisi. Tätä prediktoitua turvallista aluetta käytettiin robotin ohjauksessa ja turvatoiminnoissa. 5 Konenäkö 5.1 Kameran kalibrointi Robotin kamera kalibroitiin OpenCV:stä löytyvillä kalibrointialgoritmeilla. Kalibroinnilla selvitettiin kameran sisäiset parametrit sekä kameran tuotta- 11

12 mat kuvavääristymät, joiden avulla kuvia pystyttiin käyttämään esineiden paikantamiseen. Shakkiruutukuviosta otettiin kymmeniä kuvia eri asennoissa ja etäisyyksissä robotista. Kuvista 15 käytettiin kameran kalibrointiin. Kalibrointi tapahtuu seuraavasti: Etsitään kuvasta shakkiruutukuvio. Shakkiruutukuvion koko (ruutujen lukumääränä pysty- ja leveyssuunnassa) on määritelty. Tallennetaan jokaisen löydetyn shakkiruutukuvion ruutujen kulmapisteiden sijainnit. Suoritetaan kalibrointi kaikkien löydettyjen shakkiruutukuvioiden avulla. Kuvassa 5 nähdään robotin kameralla otettu kuva shakkiruutukuviosta, johon on merkitty algoritmin löytämä ruutukuvio. Kalibroinnin avulla saatujen kameran sisäisten parametrien ja löydettyjen kuvavääristymien avulla, robotin ottamia kuvia voidaan muuttaa sellaiseen muotoon, että niistä voidaan määrittää kuvassa olevien objektien sijaintia maailmankoordinaatistossa. Kuva 5: Kameran kalibrointi shakkiruutukuviolla 12

13 5.2 Objektien sijainnin määritys Objektien sijainnin määritys tapahtuu kalibroinnin avulla vääristymistä korjatusta kuvasta. Kuva oletetaan laskennassa reikäkamerakuvaksi. Objektien sijainnin määrittämistä varten tarvitaan objektien sijainti kuvassa, robotin sijainti sekä suuntaus, kameran sijainti robottiin nähden, sekä kameran kulma. Lisäksi mitattiin kameran näkökenttää. Objektien voitiin tässä tehtävässä olettaa sijaitsevan lattiatasolla, mikä helpotti sijainnin määrittämistä. Objektin sijainnista kuvassa pystyttiin edellä mainittujen tietojen avulla määrittää sijainti maailmankoordinaatistossa yksinkertaisia trigonometrisia funktioita käyttäen. Kentällä olevia roskia pystyttiin näin paikantamaan riittävän tarkasti keräämistä varten. 5.3 Tunnistusalgoritmi Roskan tunnistaminen kuvasta etenee seuraavanlaisesti. Algoritmin kohdat 1-7 ovat esikäsittelyä, kohdat 8-9 piirre-erottelua, kohta 10 karkea luokittelu ja kohdat robusti luokittelu. 1. Canny Suodatetaan sisääntuleva harmaasävykuva canny-reunansuodattimella. Canny-reunantunnistus on pääasiassa Sobel-suodatettu kuva, josta etsitään vain maksimi arvot (non-maximum suppression) ja käytetään hystereesikynnystystä (hysteresis thresholding). 2. Integraalikuva Saadusta binäärikuvasta muodostetaan integraalikuva. Tämä nopeuttaa tietynlaisten suodattimien laskentaa huomattavasti. Esimerkiksi summan laskeminen pikselin ympäristöstä onnistuu neljällä laskutoimituksella, kun se muuten olisi n 2, jossa n on suodattimen koko. 3. Suodatus Suodatetaan reunakuva siten, että jos suodattimen alle jäävien pikselien summa on tiettyä kynnysarvoa pienempi, merkitään pikseli nollaksi, muuten ei muuteta arvoa. Tämän suodatuksen tarkoituksena on poistaa liian pienet reunat ts. kohina ja roskat. 4. Integraalikuva Muodostetaan suodatetusta kuvasta integraalikuva. 5. Blob-suodatus Ajetaan suodatetulle kuvalle uusi suodatin. Tällä kertaa jos suodattimen alle jäävien pikselien summa on suurempi kuin jokin kynnysarvo, merkitään pikseli ykköseksi, muuten nollaksi. Tässä suodatin on suurempi kuin häiriönpoisto-suodatuksessa. Tarkoituksena maalata kiinnostavien (tarpeeksi reunaa) kohteiden päälle valkoinen alue. 13

14 6. Labelointi Saadusta möykkykuvasta (blob image) pitää kukin yhtenäinen alue erottaa omaksi alueekseen. Tämä tehdään oodll-algoritmilla, joka etsii yhtenäiset alueet ja numeroi ne. Samalla saadaan myös alueen bounding box. 7. Bounding boxes Bounding box on minimaalinen nelikulmio, jonka sisään alue mahtuu. Saatuja nelikulmioita suodatetaan alueen pinta-alan mukaan, nelikulmion ja alueen pinta-alan suhteen mukaan ja neliömäisyyden mukaan. Tämän tarkoitus on poistaa liian pienet, hajanaiset ja pitkulaiset alueet. 8. SURF-piirteet Saatujen nelikulmioiden sisältä etsitään SURF-piirteet. Algoritmia on muokattu siten, että ei käytetä maskia opencv:n SURFalgoritmissa, vaan käytetään jaettua muistia suoraan kuvaan. Tämä nopeutti algoritmia n. 5 kertaisesti. 9. Histogrammi Muodostetaan löydetyistä piirteistä histogrammi vertaamalla piirteitä visual wordeihin. Tämä histogrammi varsinaisesti kuvaa kysesistä objektia. 10. Luokkatodennäköisyys Lasketaan kullekin luokalle (1-4) todennäköisyys viiden lähimmän naapurin mukaan. Käytetään 5-nn luokitinta ja painotetaan saatuja naapureita niiden etäisyyden mukaan ja normalisoidaan välille 0-1. Tällöin objektilla on neljä lukua, jotka kertovat sen todennäköisyyden kuulua kuhunkin neljään luokkaan. 11. Träkkäys Lasketaan objektille paikka maailmankoordinaatistossa ja verrataan sitä tietokantaan löydetyistä roskista. Jos vastaavuus löytyy, päivitetään roskan tietoja. Muuten luodaan uusi roska/muu. Vastaavuus löytyy jos uusi objekti on tarpeeksi lähellä jotain tietokannasta löytyvää objektia. 12. Tietojen päivitys Jos roska löytyy jo tietokannasta, päivitetään sen todennäköisyyksiä ja paikkaa. Todennäköisyyksissä käytetään 30 mittauksen mittaista mediaaniltteriä, josta poistetaan ltterin täyttyessä satunnainen arvo. Todennäköisyydet normalisoidaan välille 0-1. Samanlaista mediaaniltteriä käytetään myös x- ja y-koordinaatille. Träkkäyksen tarkoitus on parantaa tunnistustarkkuutta ja mediaaniltteriä käyttämällä tunnistuksesta saadaan robusti. 13. Luokittelu Objekti luokitellaan johonkin neljästä luokasta sen luokkatodennäköisyyden mukaan. 14

15 Kuva 6: Kuvan käsittelyn vaiheet, numero viittaa algoritmin vaiheeseen Alkuperäinen harmaasävykuva Canny-reunasuodatettu kuva (1) Suodatettu reunakuva (3) Blob-suodatettu kuva (5) Bounding boxes (7) Luokkatodennäköisyydet (10) 5.4 Opettaminen Tehtävässä robotin opettaminen aloitettiin muutamalla sadalla "liian hyvällä"kuvalla, joiden pohjalta algoritmin kehittäminen aloitettiin. Nämä kuvat 15

16 eivät vastanneet kovin hyvin todellisuutta, mutta mahdollistivat algoritmin kehittämisen. Kuvat olivat liian hyvälaatuisia eikä niissä ollut liikettä. Seuraavassa vaiheessa opettaminen tehtiin näillä optimaalisilla kuvilla sekä n huonommalla kuvalla. Nämä auttoivat huomaamaan algoritmin bugeja sekä tekemään algoritmista robustimman. Lopullista opetusta varten kerättiin n kuvaa, aikaisemmin kerättyä dataa ei käytetty lainkaan. Lopullinen data kerättiin siten, että se vastaisi mahdollisimman hyvin todellista tilannetta ts. ajettiin robotilla ympäriinsä roskien seassa. Opettaminen tapahtuu erillisellä ohjelmalla (J2B2-teach ja J2B2-realteach). Opetusohjelma kehittyi projektin edetessä. Ensimmäisessä versiossa ohjelma ei auttanut käyttäjää lainkaan, ei sisältänyt peruutusmahdollisuutta virhenäppäilyjen varalta eikä mitään muutakaan edistyksellistä. Opetusdatan kasvaessa ilmeni tarve paremmalle opetusohjelmalle. Ohjelman viimeisin versio sisältää undo-napin ilman historiarajoitusta sekä tallennusmahdollisuuden. Ohjelma avustaa käyttäjää merkkaamalla sen mielestä kiinnostavat alueet, jolloin käyttäjän tarvitsee vain kertoa alueen tyyppi. Ohjelma tuottaa tekstitiedoston, jossa kerrotaan opetuskuvan polku, kiinnostavan alueen koordinaatit ja sen tyyppi. Ohjelma käyttää ylläkuvatun algoritmin esikäsittelyvaiheita 1-7. Tallennusmahdollisuus ja undo-nappi osoittautuivat tärkeiksi, sillä n kuvan opettamiseen kului useampi päivä useammalta käyttäjältä. Näiden ansiosta työmäärää pystyi hieman jakamaan. 5.5 Oppiminen ja tunnistaminen Opetusdatan oppiminen tapahtuu erillisellä ohjelmalla (J2B2-learn). Oppimisohjelma lukee opetusohjelman kirjoittaman tekstitiedoston ja tuottaa "codebookin". Oppiminen käyttää algoritmin kohtia Oppiminen käyttää nk. bag of words-luokitinta SURF-piirteillä [2]. Algoritmi ei ole valmiiksi saatavilla, vaan se on kirjoitettu itse alusta asti. Algoritmi toimii myös muiden piirteiden kanssa. Bag of Words-algoritmi Algoritmin idea on se, että piirteiden välillä ei ole hierarkista yhteyttä. Idea selviää parhaiten ensin tutustumalla algoritmiin. OPETUS 1. Erotellaan piirteet (SURF-piirteet) koko opetusdatasta, ei välitetä luokkatiedosta 16

17 2. Klusteroidaan piirteet. Klusterin keskipiste on visual word 3. Etsitään kohdassa 1. erotelluille piirteille niitä vastaava klusterin keskipiste käyttäen lähintä naapuria. Tällöin kutakin piirrettä vastaa jokin klusterin keskipiste 4. Muodostetaan histogrammi vastaavuuksista. Huomioidaan luokkatieto. Nyt jokaista opetusdatan objektia vastaa jonkinlainen histogrammi. Tallennetaan histogrammi ja luokkatieto. 5. Vain visual wordit, histogrammit ja luokkatiedot tarvitaan tunnistamisessa Tunnistaminen tapahtuu seuraavasti (oletetaan esikäsittelyn antavan mielenkiintoinen kohde): TUNNISTAMINEN 1. Erotellaan piirteet 2. Etsitään piirteille vastaavat visual wordit 3. Muodostetaan histogrammi 4. Luokitellaan objekti histogrammiavaruudessa Algoritmikuvauksesta nähdään, että vain piirteen esiintymisellä on merkitystä objektin luokittelussa. Piirteet voivat siis objektissa olla missä tahansa, kunhan niiden lukumäärien suhde täsmää opetettuun dataan. Koska piirteillä ei ole hierarkista yhteyttä, saadaan tunnistuksesta melko robusti mm. okkluusiolle, orientaatiolle, skaalalle. Käyttämällä sopivia piirteitä voidaan em. asioita parantaa. Toteutuksessamme käytimme 50 visual wordia ja luokittelimme histogrammit 5NN-luokittimella (viisi lähintä naapuria). Painottamalla naapurien etäisyyksiä luomme kullekin objektille karkean luokkatodennäköisyyden. Lopullisessa toteutuksessa opetuspiirteitä oli n ja niistä saatuja histogrammeja n Piirreavaruus on 128 dimensioinen ja histogrammiavaruus 50 dimensioinen. SURF-piirteet Tarkan kuvauksen SURF-piirteistä voi lukea osoitteesta ( surf/). Piirteiden ominaisuuksia ovat mm. invarianssi skaalalle, rotaatiolle, valaistukselle ja katselukulmalle. Lisäksi piirteet ovat hyvin tehokkaita, koska ne sisältävät lokaalin riippuvuuden naapuripikseleihin. Yhdistettynä Bag of Words-luokittimeen saamme algoritmin, jossa objektin osilla on suppea lokaali riippuvuus, mutta ei hierarkista yhteyttä objektin muihin osiin. 17

18 5.6 Testaus ja suorituskyky Algoritmin evaluoinnissa käytimme crossvalidationia. Tämä on sisällytettynä oppimisohjelmaan (J2B2-learn). Suorituskyvyn (ei luokittelutehokkuuden) testaamiseksi eri ohjelma (J2B2-test). N kuvan oppiminen kestää 2.8GHz dual-core prosessorilla varustetulla tietokoneella hieman yli tunnin. Suurin pullonkaula oppimisessa on klusterointi, jossa käytetään OpenCV:n funktioita. Klusterointia ei tästä syystä voinut jakaa säikeisiin. Muuten kaikki ohjelmat ovat jaettu säikeisiin mahdollisimman joustavasti siten, että moniytimisistä prosessoreista saadaan hyötyä. Säikeiden lukumäärään voi antaa ohjelmalle parametrina. Mm. piirre-erottelu on jaettu säikeisiin, lopullisessa robotin oppimisessa käytimme 8 säiettä. Algoritmin eri osien suoritusajat 2.8GHz prosessorilla, vain yksi säie: Tehtävä Suoritusaika Kiinnostavien kohteiden löytäminen (per kuva) ms Piirteiden erottelu kohteista (per kuva) ms Piirteiden luokittelu (per kuva) 7.611ms Piirteiden luokittelu (per objekti) 4.228ms Kokonaisaika (per kuva) ms Suoritusajat ovat laskettu n kuvan keskiarvona. Nähdään, että algoritmi kykenee käsittelemään yli 20 kuvaa sekunnissa. Kilpailussa ajoimme koodia debug-moodissa, jolloin kuvia käsiteltiin arviolta 5 sekunnissa. Luokittelun tehokkuudesta emme voi antaa tarkkaa arvoa, sillä lopullinen opettaminen ja crossvalidation tehtiin datalla, joka vastasi todellista tilannetta. Tämä tarkoittaa, että opetusdata sisälsi useita hyvin samanlaisia kuvia (kun robotti oli paikallaan), jolloin crossvalidation antaa liian optimistisen kuvan (n. 97% luokittelusta oikein). Träkkäykseen yhdistettynä luokittelu oli kuitenkin yli 90% oikein (arvio). 6 Reeksit 6.1 Pysäytysreeksi Pysäytysreeksillä robotti pysäyttää itsensä ennen seinään törmäämistä. Pysäytysreeksi toteutettiin prediktoidun turvallisen alueen avulla (4.4). Pysäytysreeksi laskettiin kulloisessakin pisteessä maksimaalisen sallitun robotin nopeuden mukaan. Tämän nopeuden neliö kuhunkin prediktoidun turvallisen alueen suuntaan voidaan laskea kaavan 1 mukaan. Kaavassa ρ on prediktoitu turvallinen etäisyys kulmaan Θ. Kaavassa d on etäisyys, jolle robotin 18

19 haluttiin pysähtyvän ennen seinään törmäämistä. Tämä niin sanottu turvamarginaali valittiin 0.07 metriksi tunnetun agentin mukaan. v 2 MAX = ρ d λ cos( θ 2 ) (1) Kaavassa 1 λ on kokeellisesti määritetty painokerroin, jolla järjestelmän herkkyys kalibroitiin. Kaava on johdettu kiihtyvyydestä, jolla robotti tasaisesti jarruttaessaan etenisi täsmälleen ρ-d etäisyydelle, kun painokerroin λ = 2 ja Θ = 0. Kulma on lisätty kaavaan vaimentamaan jarrutusreeksiä kun mitattu vapaa etäisyys ei ole robotin kulkusuunnassa. Tällöin kosinitermi lähestyy nollaa ja sallittu maksiminopeus ääretöntä. Kokeellisesti määritetty painokerroin λ valittiin arvoon 4.0, jolloin robotti oikeasti pysähtyi riittävän nopeasti ennen seinää. 6.2 Kääntymisreeksi Kääntymisreeksin avulla robotti kääntää itseään poispäin lähimmästä esteestä. Tällöin laite osaa itsenäisesti kiertää ja väistää eteen ilmestyviä esteitä. Kääntymisreeksi toteutettiin suoraan PD-nopeussäätimen yhteyteen. Se korjasi nopeussäätimen kulmanopeusasetusarvoa niin, että robotti pyrki hylkimään seiniä ja esteitä. Reeksissä lasketaan turvallisten etäisyyksien käänteisluvut jokaiselle kulmalle. Oikean puoleiset reeksit lasketaan yhteen ja niistä vähennetään vasemman puoleisten arvojen summa. Tällöin jos lähelle tulee esteitä oikealle puolelle enemmän kuin vasemmalle, on reeksin arvo positiivinen ja laite pyrkii kääntymään positiivisen kulman suuntaan eli vasemmalle, poispäin esteestä. Reeksin suuruus rajoitettiin kokeellisesti valitulla raja-arvolla ja kerrottiin kokeellisella vahvistuskertoimella, jonka jälkeen se summattiin PD-säätimen kulmanopeuden ohjausarvoon. Tämä, kuten edellinenkin reeksi lasketaan prediktoidun turvallisen alueen etäisyyksien avulla. 6.3 Nopeuden rajoittaminen toteuttamiskelpoiseksi Viimeisenä vaiheena ennen kuin muuten säädetyt ja rajoitetut nopeusohjaukset käsketään robotin moottorinohjaimelle, tarkistetaan, että nopeudet ovat toteuttamiskelpoisia. Tätä varten mitattiin robotin fyysinen suorituskyky, eli maksiminopeudet ja kiihtyvyydet sekä hidastuvuudet. Mittausten perusteella J2B2-robotin kiihtyvyydeksi valittiin 0.3m/s2, jarrutuskiihtyvyydeksi -0.7m/s2 ja maksiminopeudeksi 0.5m/s. Koska robotin todelliset rajoitukset olivat rengaskohtaisia, laskettiin annettavat nopeuden ja kulmanopeuden asetusarvot kummankin renkaan kehänopeuksiksi, jolloin kääntymisen ja suoraan ajon komponentit voitiin rajoittaa yhdessä rengaskohtaisesti. 19

20 Nopeus rajoitettiin laskemalla annettavasta asetusarvosta aiheutuva kiihtyvyys edelliseen asetettuun arvoon verrattuna kummallekin renkaalle erikseen. Jos kiihtyvyys (tai hidastuvuus) ylitti sallitun rajan, niin kyseisen renkaan asetusarvo rajattiin sallittuun arvoon. Tällöin kuitenkin kulmanopeuden ja nopeuden suhde muuttuu, ja ajettava rata ei enää ole sama. Tämä korjattiin laskemalla nopeuksien suhde ja vähentämällä myös toisen renkaan nopeudesta sopiva komponentti, jotta nopeuden ja kulmanopeuden suhde olisi edelleen sama, kuin ennen rajoitusta. 7 Paikannus 7.1 laserpaikannus Laserin mittaustietoa sovitetaan kartan pisteisiin G. Weiss et al. [1] kehittämän korrelaatiomenetelmän pohjalta kehitetyllä menetelmällä. Ideana menetelmässä on verrata kahta peräkkäistä laserskannerin mittausta ja laskea niiden välinen tapahtunut rotaatio ja translaatio. G. Weiss et al. [1] esittämässä menetelmässä kulmatieto ratkaistaan ensin kulmahistogrammien välisen korrelaation avulla. Tämän jälkeen menetelmässä mitattu rotaatio poistetaan jälkimmäisestä näytteestä ja tämän jälkeen normaalilla x ja y suuntaisella korrelaatiolla lasketaan x ja y suuntaiset siirtymät laserskannerin mittausten välillä. G. Weiss et al. [1] kehittämä menetelmä toimii jokseenkin luotettavasti sisätiloissa, jossa on suoria pintoja ja paljon yhden suuntaisia seinärakenteita. Se toimii erityisen hyvin jos seinät ovat likimain x ja y akselien suuntaisia. Tässä tapauksessa heidän kehittämää menetelmää muokattiin toimimaan karttapisteiden ja uusimman skannerin mittauksen välillä. Lisäksi menetelmään kehitettiin validointimenetelmä, jolla laskettiin sovituksen hyvyysluku. Tätä hyvyyslukua voitiin suoraan käyttää sensorifuusiota tekevässä Kalmansuotimessa (7.4) Menetelmässä nykyistä laserskannerin mittausta ja karttapisteitä verrataan toisiinsa niin, että ensin kartasta lasketaan edellisen paikan ja suuntakulman estimaatin perusteella simuloitu laserskannerin mittaus. Se toteutettiin muuttamalla kartan seinäpisteet robotin keskeiseen polaarikoordinaatistoon niin että kulma 0 vastaa robotin mukana kulkevan koordinaatiston x akselia (robotista kohtisuoraan oikealle). Tällä tavoin on tehokasta valita jokaisen asteluvun kohdalta lähin etäisyys seinäpisteeseen ja saadaan lopputulokseksi etäisyysmittaukset lähimmistä kartan pisteistä aivan kuten laserskannerin mittauksetkin todellisesta ympäristöstä. Kartta ja mittauspisteet sekä simuloidut mittaukset on esitetty kuvassa 7. 20

21 Kuva 7: Laserodometria kartasta simuloidun skannauksen kanssa. Simuloidun ja todellisen lasermittaukselle lasketaan kulmahistogrammit ja näitä korreloidaan keskenään. Näin voidaan estimoida kartan ja todellisen lasermittauksen välinen kulmaero. Seuraavaksi tämä kulmaero päivitetään simuloituihin lasermittauksiin ja nyt muutetun simuloidun ja todellisen laserskannerin mittausten välillä suoritetaan x ja y suuntaiset korrelaatiot. Näiden korrelaatioiden perusteella päätellään oikea x ja y suuntainen siirtymä. Nyt tällä uudella paikan ja asennon estimaatilla tehdään uusi simuloitu laserskannaus kartan seinäpisteiden perusteella. Uutta simuloitua skannausta verrataan laserskannerin mittaukseen pisteittäin. Kunkin toisiaan vastaavan kulman etäisyysmittauksien eron neliöt summataan yhteen ja näin lasketaan neliövirhe laserskannerin mittauksen sopivuudesta karttaan. Sovituksessa tuli ajoittain suuria virheitä yksittäisten mittauspisteiden kanssa, jolloin neliövirhe kasvoi suureksi. Tästä päästiin eroon suodattamalla liian suuren neliövirheen saamat termit pois ja laskemalla neliövirhe vain hyväksyttyjen onnistuneiden kulmavirheiden kanssa. 21

22 Sovituksen onnistuminen validoidaan kaavalla 2, jossa k on hyväksyttyjen etäisyyserojen määrä, indeksit i = 1...k ovat nämä valitut etäisyyksien indeksit, ja r i on etäisyyksien välinen ero mitatun ja simuloidun skannauksen välillä indeksillä i. q = k k k ( r i ) 2 (2) Kaava 2 perustuu ideaan, jossa 0 ja 1 välille skaalattuna 1 tarkoittaa täydellistä sovitusta ja 0 täysin epäonnistunutta sovitusta. Kun kaavassa k lähestyy maksimiaan 181, niin ensimmäinen termi nostaa hyvyysluvun maksimiarvoa lineaarisesti lähemmäs yhtä. Toinen termi sen sijaan vähentää tästä luvusta 100-kertaisena neliövirheen keskimääräisen suuruuden. Kerroin 100 on kokeellisesti valittu tähän tapaukseen sopivaksi. Kaavassa mikään ei estä nollaa pienempiä hyvyysluvun arvoja. Ne kuitenkin erikseen tarkistetaan ja muutetaan nollaksi järjestelmässä. Todellisuudessa kartasta simuloitiin 181 mittauspisteen sijaan 270 asteen välein olevaa etäisyyttä, jotta voidaan luotettavasti tunnistaa rotaatiot myös isommilla kulmilla lopullisesta kulmahistogrammista. Kuvassa 7 on esitetty keltaisella värillä simuloidut skannerin etäisyydet ja punaisella alkuperäisestä paikasta saadut laserskannerin mittaukset. Lopullinen tulos on merkitty oranssilla rasteilla siirtäen kutakin punaista laserskannerin mittausta algoritmilla estimoidun siirtymän ja kiertymän mukaan. Samoin punainen robotin kuva esittää alkuperäistä paikkaa ja asentoa ja oranssi uutta. i=1 7.2 Paikan globaali haku kartalta Robotti osaa hakea paikkansa kartalta estimaatin hukkuessa tai alkuarvauksen puuttuessa. Tämä globaali paikan ja suuntakulman haku on toteutettu tätä tarkoitusta varten ja verioitu kyseistä kilpailun karttaa varten. Se kuitenkin toiminee myös muissa tapauksissa. Sen idea perustuu samaiseen korrelaatioon ja kulmahistogrammin korrelaatioon kuin laserpaikannuskin, mutta siinä käytetään lisäksi muutamaa kartan erityispiirrettä hyväksi. Kurssin kilpailun kartta oli siinä mielessä edullinen, että siinä seinät olivat suurin piirtein suorassa kulmassa toisiinsa nähden. Koska koko kartan kaikkien seinien asento oli joko x tai y akselin suuntainen, voitiin kulma hakea vain neljän vaihtoehdon perusteella jotka olivat pääteltävissä kulmahistogrammin arvosta missä tahansa kohtaa kartalla. Menetelmässä kulmahistogrammista haetaan neljä todennäköisintä kulmaa, jotka ovat oikeassa asennossa laserskannauksen mittauksessa nähtävien suorien kanssa. Kulmahistogrammi siis lasketaan teoriassa vierekkäisten la- 22

23 serin mittauspisteiden välille muodostuvan kulman avulla. Käytännössä kannattaa kuitenkin käyttää vähän kauempana toisistaan olevia mittauspisteitä, jolloin etäisyysmittauksen kohina vaikuttaa vähemmän. Tässä menetelmässä käytettiin 5 asteen etäisyydellä toisistaan mitattuja etäisyyksiä kulmahistogrammin luomiseen. Näin etäisyysmittauksen kohina saatiin hyvin pieneksi. Tällöin myös oletetaan että kaikki nähtävät suorat ovat vähintään 5 astetta nähtynä mistä tahansa kohtaa karttaa. Tämä kuitenkin toteutuu hyvin yksinkertaisessa kilpailun kartassa. Menetelmässä simuloidaan ensin kartasta täyden ympyrän kokoinen asteen välein mitattu robotin laserskannerin keskipisteestä nähty simuloitu laserskannaus. Tätä verrataan laserskannerin mittaamaan skannaukseen kulmahistogrammilla. Näin lasketaan neljä mahdollista suuntaa jossa robotti on kartalla. Näillä jokaisella neljällä suunnalla tehdään erikseen x ja y suuntaiset korrelaatiot kartan seinäpisteisiin nähden. x ja y suuntaisia korrelaatiomaksimeita etsitään maksimissaan 10 kappaletta kumpiakin. Tällöin lopputuloksena saadaan maksimissaan 4*10*10 vaihtoehtoa joissa robotti voi sijaita eri asennoissa. Todellisuudessa kunnollisia x ja y suuntaisia korrelaatiomaksimeita ei useinkaan tule näin paljoa vaan päästään paljon pienemmällä määrällä. Vaihtoehtoisia paikkoja olikin usein reilusti alle sata kappaletta. Menetelmä on tähän mennessä hakenut kaikki potentiaaliset mahdolliset vaihtoehdot joissa robotti voi sijaita korrelaatiomenetelmän perusteella. Seuraavaksi käytetään laserpaikannusta varten kehitettyä validointimenetelmää, jossa lasketaan hyvyysluku paikan ja asennon estimaatin onnistumiselle. Hyvyysluku lasketaan tässä menetelmässä kaikille sallitulle alueelle (kartan sisäpuolelle) päätyville estimaateille, joita usein on kilpailun kartassa vain joitakin kymmeniä. Näistä valitaan uudeksi robotin paikaksi ja asennoksi parhaan hyvyysluvun saanut vaihtoehto. 7.3 Robotin paikan oikeellisuuden valvonta Robotillamme on keino löytää oma alkupaikkansa (7.2), mutta jotta alkupaikan hakua voitaisiin käyttää myös sekaantuneen paikan korjaamiseen, pitää havaita tilanne, jolloin robotti on hukannut oman paikkansa. Tämä tunnistetaan siitä, että laserskannerin sovituksen hyvyysluku on ollut liian pitkään liian alhainen. Tällöin on uskottavasti useimmiten käynyt niin, että robotin estimaatti paikasta ja asennosta ei vastaa todellisuutta ja tällöin laserskannerin mittaukset sopivat huonosti karttaan. Robotin paikan ja asennon valvonta toimii käytännössä niin, että jos kymmenen perättäistä laserskannerin mittausta on hyvyysluvultaan alle 0.1, niin tällöin koko odometriajärjestelmä alustetaan ja robotille haetaan uusi paikan alkuarvaus kartalta. Tämä kuitenkin aiheutti usein lähellä seinää ollessa vää- 23

24 riä tunnistuksia, koska usein laserskannerin mittaukset lähietäisyydeltä eivät olleet riittävän yhteneviä kartan kanssa. Tämä ongelma korjattiin rajoituksella, että edellä mainittu väärän paikan tunnistus on mahdollinen tapahtua vain, jos laserskannerin mittaukset ovat keskeltä edestä yli puolen metrin etäisyydellä. 7.4 Paikannuksen sensorifuusio EKF:llä Sensorifuusion toteuttamiseen käytettiin laajennettua Kalman suodatinta optimaalisen tilaestimaatin saavuttamiseksi. Laajennetun Kalman suodattimen yhtälöitä varten tulee järjestelmästä muodostaa kinemaattinen malli, mittausyhtälö sekä määrittää mallille ja mittaukselle kovarianssimatriisit. Käytetty kinemaattinen malli robotille on ˆx 1 (k k) + v(k) tcos(ˆx 3 (k k)) ˆx(k + 1 k) = f[k, ˆx(k k), u(k)] = ˆx 2 (k k) + v(k) tsin(ˆx 3 (k k)), (3) ˆx 3 (k k) + ω(k) t missä v(k) on robotin nopeus, ω(k) robotin kulmanopeus, t edellisestä päivityksestä kulunut aika, ˆx 1 estimaatti robotin x-koordinaatista, ˆx 2 estimaatti robotin y-koordinaatista ja ˆx 3 estimaatti robotin suuntakulmasta. Koska kinemaattinen malli on epälineaarinen, tulee se myös linearisoida laajennetun Kalman suodattimen toteuttamista varten. Mittauksen ennustusyhtälö on lineaarinen, jolloin sen linearisointia ei vaadita, vaan ennusteet paikasta ja suuntakulmasta saadaan suoraan identiteettimatriisilla. Vastaavat sensorimittaukset ennusteille saadaan laserpaikannuksesta. Kinemaattisessa mallissa vaadittavat robotin nopeus v(k) ja kulmanopeus ω(k) saadaan vastaavasti suoraan odometriamittauksista. Koska odometriamittauksista saatujen signaalien kohina oli hyvin vähäistä, oli mittausten suora käyttö kinemaattisen mallin ohjauksissa mahdollista. Kovarianssimatriisit mallille ja mittaukselle asetettiin siten, että kohina vaimentuu mahdollisimman hyvin, mutta sijainnin estimaatti seuraa kuitenkin tarkasti todellista sijaintia. Matriisien arvojen asettamisessa käytettiin robotin testiajoista saatua oikeaa mittausdataa. Perinteisen Kalman suodattimen rakenteen lisäksi sensorifuusiolohkoon on lisätty tiettyjä modikaatioita. Näillä modikaatioilla pyritään tarkastelemaan laserpaikannuksesta tulevan mittausdatan oikeellisuutta ja reagoimaan tilanteeseen, jossa mittausdata on virheellistä. Joissain tapauksissa on nimittäin mahdollista, että laserpaikannus on sovittanut laserskannerin mittaukset väärin karttaan, jolloin sensorifuusiolle tuleva mittausdata on virheellistä. Sensorifuusiolohko pyrkii tarkkailemaan laserpaikannuksesta tullutta dataa 24

25 laserpaikannuksen hyvyysluvun perusteella. Jos hyvyysluku laskee liian alhaiseksi, suunnistaa robotti pelkän odometrian ja kinemaattisen mallin avulla. Laserpaikannus kuitenkin resetoidaan, jos hyvyysluku on liian pitkään alhaisena, jolloin robotille etsitään uusi paikka kartalta. Tieto resetoinnista lähetetään sensorifuusiolle, jolloin tilaestimaatiksi asetetaan suoraan laserodometrialta tuleva arvo, jonka jälkeen estimointia jatketaan normaalisti. 7.5 Viiveen kompensointi ja laitteen paikan prediktointi J2B2 robotin dynaaminen käyttäytyminen mallinnettiin ja tehollinen viive estimoitiin käsketyn nopeuden ja toteutuneen nopeuden välisellä korrelaatiolla niin nopeudelle kuin kulmanopeudellekin [4]. Molemmat viiveet olivat korrelaatiolaskennan mukaan 0.8s. Parhaaseen tulokseen kuitenkin päästiin, kun käytettiin hieman pienempää viivettä paikan prediktointiin ja annettiin PD-säätimen selvitä lopusta viiveestä. Lopullisessa robotin ohjauksessa käytettiin 0.55 sekunnin viivettä prediktoitaessa robotin paikkaa. Robotin paikka 0.55 sekunnin viiveen kuluttua ennustetaan niin, että edelliset 10 ohjausta tallennetaan puskuriin järjestyksessä. Näitä edellistä ohjausta ja uusinta ohjausta käytetään robotin fysikaalisen mallin kanssa ja vanhimmasta mittauksesta alkaen integroidaan nykyistä paikkaa annetuilla ohjauksilla niin, että saadaan ennuste sille, mihin robotti päätyisi viiveen aikana tapahtuvan ohjauksen aikana. Tällä tavalla prediktoitua paikkaa ja nopeutta käytettiin kaikessa robotin säätämisessä, reeksien laskennassa ja nopeuksien rajoittamisessa. Tulevan paikan ennustamisessa tärkeätä on se, että annettu ohjaus on myös toteutettavissa. Tämä varmistetaan kohdassa (6.3) esitetyllä rajoittimella. 8 Navigointi 8.1 Reitinsuunnittelu Reitinsuunnittelija perustuu A* -algoritmiin [5], jota on tarkoitusta varten hieman muokattu ja rajoitettu. Menetelmässä kartta on muutettu 5x5cm ruudukoksi, jonka avulla reitinsuunnittelu tehdään. Reitti ei ole lyhin mahdollinen, vaan optimointikriteerejä on enemmän. Reitti on riittävän hyvä lähellä lyhintä, mutta samalla riittävän kaukana seinistä ja se myös kiertää kaikki konenäöllä tunnistetut esteet. Lisäksi alku ja loppupään asento robotille on otettu huomioon reittiä suunniteltaessa. Reitinhakualgoritmin voi yksinkertaistaa kuvan avulla prosessiksi, jossa ensin maalista aloittaen aletaan täyttää maalipaikkaa vastaavan pikselin ym- 25

26 päristöä tyhjästä kuvasta, kuten kuvassa 9 on esitetty. Ympäristön pisteitä painotetaan kuvan 8 mukaisella kertoimella (välillä kirkkauden mukaan). Painokerroin on laskettu sitä suuremmaksi mitä lähempänä se on todellista seinää. Kuten kuvasta 8 nähdään, on robotin säde lisätty kaikkiin seinän pikseleihin ja näin on muodostettu kartta jolla suunniteltu reitti on aina mahdollinen robotille. Kunkin kohdan painokertoimen mukaan edellisen käsitellyn pikselin arvoa kasvatetaan painokertoimen arvolla ja tämä uusi luku talletetaan kunkin vastaavan pikselin arvoksi lopputuloksen esittävään kuvaan. Tämä toteutetaan kaikille vapaille reunimmaisille pikseleille järjestyksessä. Algoritmin eteneminen on kuin aaltorintaman eteneminen maalipisteestä alkaen ympäristöön niin, että kuva vaalenee painokertoimen suuruuden mukaan. Kuvissa täysin musta alue on kielletty ja sinne ei algoritmi pääse laajentumaan. Algoritmia on tässä tapauksessa rajoitettu muistin koolla, ja algoritmi ei enää välttämättä hae optimaalista tulosta, mutta ratkaisun se löytää aina, jos sellainen on olemassa [6]. Kun laajeneva ja väriltään kirkastuva kuvan aaltorintama saavuttaa lähtöpisteen koordinaatit, on lähtöpiste löytynyt. Nyt reitti lähtöpisteestä maaliin on löydettävissä alkupisteestä lähtien valitsemalla kulloisenkin pisteen ympäristöstä pienimmän arvon omaava pikseli ja siirtymällä siihen. Tällä perusteella on tehty reitti oikean puoleisessa kuvassa 9 Alku ja loppupäiden suunta voidaan ottaa huomioon muuttamalla sallitun alueen muotoa sopivasti ennen reitin suunnittelua. Oikean puoleisessa kuvassa 9 nähdään alku ja loppupisteiden ympärille tehty muoto, jolla pakotetaan reitinsuunnittelija hakemaan reitti vaaditun suunnan kautta. Tällöin voidaan suunnitella reitti niin että se alkaa läheltä robotin senhetkistä asentoa ja päätyy lähelle haluttua asentoa. Reitinsuunnittelija tekee reitin 5x5cm ruudukolla, joten se ei luonnollisestikaan ole kovinkaan sulava ajettavaksi robotilla. Valmis reitti suodatetaan 5 peräkkäisen mittauksen keskiarvolla, jolloin siitä tulee riittävän tasainen robotin ajettavaksi. Kuvassa 10 on esitetty valmis suodatettu reitti lähtöpisteestä maaliin kiertäen tunnetut esteet. 8.2 Reitinseuraaja Valmiiksi suunniteltu reitti ajetaan läpi niin, että robotin nopeussäätimelle annetaan kohdepiste reitiltä järjestyksessä alusta loppuun. Tätä niin sanottua porkkanaa liu'utetaan reitillä eteenpäin, kun ollaan riittävän lähellä edellistä reittipistettä. Säädin toimi hyvin kun porkkana oli aina noin 30 cm päässä robotin keskipisteestä. Tämä porkkanan etäisyys valittiin kokeellisesti. Reitinseuraaja käy reitin tällä tavoin läpi robotin samalla edetessä kohti 26

27 Kuva 8: Navigointikartan painokerroin sallitulla alueella. maalia. Jos reitinseuraaja ei saa robottia etenemään reitillä kymmenen sekunnin aikana, antaa reitinseuraaja suunnittelijalle käskyn suunnitella uusi reitti ja aloittaa alusta. Ennemmin tai myöhemmin robotti on saavuttanut reitinseuraajan avulla maalin. Kun on lähdetty poimimaan roskaa, tietää reitinseuraaja tämän, ja lopettaa reitin seuraamisen puoli metriä ennen roskaa. Tämän jälkeen vaihdetaan maalipisteeksi roskan koordinaatit ja annetaan ohje PD-säätimelle toimia toimilaitteen koordinaattien mukaan. Tällöin sama säädin säätää robotin paikkaa niin, että toimilaite saadaan mahdollisimman lähelle roskaa. Samalla tavalla edetään roskaa pois kuljetettaessa, ensin reitinseuraajan opastamana reitinsuunnittelijan suunnittelemalla reitillä, ja lopuksi tarkan paikan perusteella säätämällä. Roskan pois kuljettamisen sekvenssi on tarkemmin esitetty tehtävän suunnittelun yhteydessä 9. Reitinseuraajan toimintaa olisi voinut huomattavasti parantaa robotissamme. Siihen jäi loppukilpailuun harmittava ominaisuus tai bugi: jos kone- 27

28 Kuva 9: Vasemmalla kamerakuvassa havaitut esteet vähennettynä reitinsuunnittelijan sallitusta alueesta, ja oikealla puolella A* menetelmällä sovitettu reitti loppupäästä alkupäätä kohti. näkö löysi suunnitellulle reitille esteitä roskaa pois vietäessä, ei niitä huomattu ennen kuin oli jumitettu esteen aiheuttamaa turvallisen etäisyyden rajaa vasten kymmenen sekunnin odotteluaika, jonka reitinseuraaja odottaa todetakseen reitin epäonnistuneen. Tämä olisi helposti voitu havaita vertaamalla edessä olevia reittipisteitä esteisiin. Tällä muutoksella olisimme ehtineet poimia hyvin kaikki roskat kilpailualueelta, koska robotti jäi useammankin kerran kiinni edestään löytämiinsä roskiin osaamatta suunnitella uutta reittiä niiden ympäri. 8.3 Reeksiivinen PD-nopeussäädin Hyvin toimiva reeksiivinen esteitä väistelevä nopeussäädin on tärkeä ohjatessa robottia tarkkuutta vaativissa roskan poiminta ja säiliöihin sijoittamistehtävässä. Samalla esteitä tulee väistellä mahdollisimman ketterästi, mutta silti liikkua mahdollisimman nopeasti. J2B2-robotin ohjauksessa oli lisäksi huomattava noin 0.8 sekunnin mittaiseksi identioitu tehollinen viive (7.5). Tehollisella viiveellä tarkoitetaan viivettä joka on havaittavissa toteutuneen ja annetun nopeusarvon välillä. Säätimen suunnittelu osoittautui robotin tehtävistä lähes haasteellisimmaksi. Lopullinen säädin on idealtaan yksinkertainen PD-säädin, jossa ohjearvon ja mittauksen erosignaalin ja erosignaalin derivaatan painotetuilla arvoilla ohjataan laitetta [10]. Säädintä kuitenkin käytetään 0.55 sekuntia prediktoidun robotin paikan mukaan (7.5). Tällöin viiveestä aiheutuva värähtely saatiin pienemmäksi, ja säätimen vahvistusparametreja voitiin kasvattaa ilman, 28

29 Kuva 10: Lopullinen suunniteltu ja suodatettu reitti. että säädin muuttuisi epästabiiliksi. Koska robotin paikka viiveen jälkeen oli kohtuullisen tarkasti estimoitu, pystyi säädin toimimaan riittävän tarkasti ja nopeasti. PD-säätimen ohjausarvot nopeudelle ja kulmanopeudelle laskettiin asetetun porkkanan paikan perusteella toisistaan riippumatta. Järjestelmässä on siis kaksi erillistä PD-säädintä. Kulmanopeussäätimen erosignaali muodostuu nykyisen suuntakulman ja porkkanan sijainnin suuntakulman mukaan. Nopeussäätimen erosignaali muodostuu porkkanan etäisyyden mukaan. Etäisyyttä painotetaan sijaintikulman kosinilla. Tämän ansiosta säätimen nopeusarvo oli sitä pienempi mitä isompi kulmaero kohteeseen on. Kosinitermi mahdollistaa lisäksi peruuttamisen, koska robotin takana olevan kohteen kulman kosini on negatiivinen. Nopeussäätimen erosignaali R on esitetty kaavassa (PD-säädin), jossa ρ on etäisyys kohteeseen ja Θ kohteen ja oman suuntakulman ero. Termit ovat polaarikoordinaatit robotin mukana kulkevassa koordinaatistossa. 29

30 R = ρ cos Θ (4) Saman PD-säätimen yhteyteen toteutettiin lisäksi esteiden väistöreeksi (6.2). Siksi säädintä kutsutaan tässä reeksiiviseksi PD-säätimeksi. Lisäksi säätimeen toteutettiin useita rinnakkaisia moodeja, joista valittiin oikea kulloisenkin tehtävän mukaan. Näillä moodeilla oli kaikilla erilliset parametrit sekä lisäksi mahdollisuus kytkeä joitakin säätimen ominaisuuksia pois päältä. Esimerkiksi roskakoriin roskaa työnnettäessä väistöreeksi tuli kytkeä pois päältä, jotta laite kykeni työntämään roskan suoraan roskapönttöön. 9 Tehtävän suunnittelu Robotin kulloisenkin tehtävän suunnitteluun päätettiin käyttää Matlabin Simulinkistä löytyvää StateFlow:ta. Stateow:lla on mahdollista tehdä helposti tiloja ja vetää niiden välille erilaisia siirtymäehtoja graasen käyttöliittymän avulla ja käyttää samalla Matlabin toiminnallisuutta. Toteutuksessa lähdettiin liikkeelle siitä, että tilakone antaa muulle ohjelmalle tiedot mitä se haluaa tehtävän kertomalla tavoitekoordinaatit, halutun kameran asennon ja kulloinkin aktiivisena olevan tilan numeron, sekä sen pitääkö gripperin olla auki vai kiinni. Aktiivisena olevan tilan numeroa käytetään hyväksi esimerkiksi siinä, että tiedetään mitä reitinsuunnittelun vaihetta käytetään. Tilakone puolestaan saa muulta ohjelmalta tarvitsemansa tiedot, eli lähinnä oman paikan, roskan paikan ja tyypin. Periaatteessa tilakoneen toiminta on hyvin yksinkertainen. Aluksi etsitään roskia. Stateow saa tiedon roskan löytymisestä sen luo, ja otetaan se gripperillä kiinni. Lopuksi roska viedään oikeaan roskakoriin, ja siirrytään taas etsimiseen. Jos automaatti-moodiin siirrytään muusta moodista esimerkiksi kesken roskan kuljettamista, osaa tilakone havaita tämän, ja jatkaa roskan kuljetuksella roskakoriin. 9.1 Roskien etsintä Ensimmäiseksi automaatti-moodissa mennään 'Seach'-tilaan. Siinä robotti tutkii huoneen siirtymällä ennalta määrättyihin pisteisiin ja pyörimällä ympyrän niiden läheisyydessä. Jos pisteessä on pyöritty kokonaan ympäri siirrytään seuraavaan pisteeseen. Näitä pisteitä on neljä, ja ne sijaitsevat huoneessa siten, että kaksi on väliseinän kummallakin puolella huoneen eri päissä. Ne valittiin kokeellisesti siten, että koko huone tulisi nähtyä kun ajetaan pisteet edestakaisin. 30

31 Tilassa säädetään myös robotin kameran suuntausta kääntämällä sitä alaspäin aina kun lähestytään tarpeeksi seinää. Näin vältetään turha seinien tarkkailu. Tilasta siirrytään seuraavaan tehtävään, kun tilakone saa viestin että uusi roska on löytynyt. Ongelmana on että robotti liikkuu määrättyjen pisteiden välit hivenen liian nopeasti huomatakseen kaikkia kamerassa välähtäviä roskia heti. Lopulta se kuitenkin aina on huomannut ne jossain vaiheessa. Toinen huono puoli etsintä-tilassa on se, että jos laite huomaa roskan kesken reittipisteen ympäristössä pyörimistä, ja tämä roska on sellainen jonka poimimisen käyttäjä hylkää, palaa robotti pyörimään saman pisteen ympäri ja saattaa huomata uudelleen saman roskan jota ei tahdota poimia. 9.2 Roskan hakeminen Kun tilakone saa ilmoituksen uuden roskan löytymisestä, siirrytään tilaan 'GoToGarbage'. Annetaan robotille roskan koordinaatit, jolloin muu ohjelma siirtää robotin roskan luo. Kameraa säädetään tilassa siten, että mitä lähempänä ollaan kohdetta sitä alemmas kamera on suunnataan. Kun ollaan roskasta etäisyydellä, että gripperillä siihen ylletään, siirrytään tilaa 'PickUp', jossa gripperi käsketään kiinni. Jos operaattori muuttaa roskan tyypin ei-roskaksi kesken matkan roskan luo, palaa tilakone roskan etsintä-tilaan. 9.3 Roskan vieminen roskakoriin Roskan kuljettaminen oikeaan paikkaan päädyttiin toteuttamaan useamman tilan yhdistelmänä, jotta siirtyminen käytännössä olisi helpompaa. Ensimmäisenä on tila 'GoToBin'. Tämä antaa tavoitekoordinaateiksi pisteen noin metrin päässä siitä roskakorista, jonka tyyppiseksi roska on luokiteltu. Robotin ollessa tässä tilassa voi operaattori vielä manuaalisesti vaihtaa roskan tyyppiä, tai käskeä robottia avaamaan gripperin, jolloin kourassa ollut roska pudotetaan ja palataan etsimään uusia roskia. Kun robotti on n. metrin päässä oikeasta roskakorista käskee tilakone robottia siirtymään puoli metriä eteenpäin (tila 'NearBin'). Kun ollaan siirrytty osa tästä matkasta eteenpäin, siirrytään tilaan 'bin2'. Ja jatketaan siirtymistä siihen asti että ollaan siirrytty loputkin tahdotusta matkasta. Tällä kolmen erillisen tilan lähestymisellä saadaan aikaan se, että reitinsuunnittelija saa robotin käännettyä oikeaan kulmaan roskakoreihin nähden, ja ajettua sitten kohtisuorassa roskakoriin. Kun ollaan juuri roskakorin suulla siirrytään tilaan 'Drop'. Tällöin tilakone käskee avaaman gripperin, sillä se ei mahdu avautumaan kokonaan roskakorin sisäpuolella. Tämän jälkeen tila 'Push' käskee laitetta siirtymään vielä 31

32 vähän eteenpäin, mikä saa aikaan sen, että roska työnnetään kokonaan roskakorin puolelle. Lopuksi tila 'takeback' käskee vielä peruuttamaan takaisin pois roskakorista. 10 Matlabin simulaattori J2B2-robotin ohjelmoimista varten tarvittiin simulaattori, jossa havaittu 0.8s tehollinen viive oli olemassa. Säätimiä ei olisi pystytty kehittämään viiveelliseen järjestelmään viiveetöntä simulaattoria vastaan. Simulaattoria, jonka Matlabin Simulink -kaaviokuva on kuvassa 11, varten mallinnettiin J2B2 robotin dynaaminen käyttäytyminen, sen viiveet, kiihtyvyydet, nopeudet, ja eri sensoreiden kohinatasot. Näiden tietojen pohjalta rakennettiin Matlabin Simulinkkiin malli, jota vastaan voitiin säätimiä ja muutakin järjestelmää testata suoraan. Kuva 11: Dynamiikka- ja laserdatasimulaattori J2B2-robotista Matlabin Simulinkille. Simulaattori muodostuu neljästä eri osasta, dynamiikan, lasermittausten, puskurien ja toimilaitteen simuloinnista. Toimilaiteen simulointi ei ole kuvas- 32

33 sa 11, mutta muut ovat. Simulaattorin eri osa-alueet on selitetty seuraavissa alakappaleissa Dynamiikkasimulaattori Dynamiikkasimulaattori on kuvassa 11 usean lohkon yhdistelmästä muodostuva kokonaisuus. Se ottaa sisäänsä vasemmalta nopeusasetusarvon robotille. Tähän asetusarvoon se lisää robotin toimilaitteen mallin mukaista kohinaa. Kohina on mallinnettu erikseen nopeus ja kulmanopeusarvoihin niin, että robotin kummankin renkaan pyörimisen nopeusarvon asetus on otettu huomioon. Tähän asetusarvoon lisätään biasoitunut gaussinen kohina. Lisäksi tämä lohko viivästää asetusarvoa mitatun 0.8s viiveen verran. Viimeiseksi lohko varmistaa, että annettu arvo on toteutettavissa ja lisää lisäksi moottorien vaihteiston välyksen pyörien nopeuden vaihtaessa suuntaa. Seuraavassa lohkossa tämä kohinainen nopeusarvo integroidaan paikaksi. Lohko pitää sisällään robotin edellisen paikan ja laskee annettujen nopeusarvojen perusteella seuraavan paikan. Lohko antaa ulos kohinattoman paikan, joka myös otetaan suoraan ulos simulaattorista todellisen paikan referenssiksi. Todellinen paikka on tällöin myös samalla viivästynyt oikean määrän, koska viive on otettu ennen integrointia huomioon Lasermittauksen simulaattori Lasermittaukset simuloidaan kuvassa 11 alareunassa sijaitsevalla lohkolla. Lohkossa lasketaan robotin oikean paikan ja mallinnetun kartan perusteella lasermittausten iskemät kartan seinillä. Mallinnus tehdään niin, että kartan pisteet muutetaan robotin keskipisteen ja asennon mukaiseen polaarikoordinaatistoon. Tällä tavoin esitettyjen seinäpisteiden joukosta valitaan kulmasta -90 alkaen asteen välein 181 lyhintä etäisyyttä seinään kussakin kulmassa. Tämän lisäksi simuloituun kulmaan lisätään ±1cm gaussinen kohina. Lisäksi jokaisesta lasermittauksen arvosta vähennetään 2cm, koska tarkkojen kalibrointimittausten perusteella kyseinen laserskanneriyksilö antoi jokaisen seinän mittauspisteen etäisyyden 2cm liian läheltä Törmäyksenhavaitsija ja puskurien simulointi Törmäyksenhavaitsija on toteutettu kuvassa 11 pystysuunnassa suurimman lohkon sisään. Robotin kulloistakin paikkaa verrataan mallinnettuun karttaan. Jos kartan yksikin piste tulee robotin sädettä lähemmäksi, niin siirretään robottia sen asennon, nopeuden ja kulmanopeuden perusteella pääteltyä kulkusuuntaa vastaan. Tämä siirto tehdään antamalla oikeanlainen no- 33

34 peusohjausarvo dynamiikkasimulaattorin integraattorille. Tässä on pyritty matkimaan mahdollisimman fysikaalista, mutta samalla tarpeeksi yksinkertaista mallia törmäyksestä seinän kanssa. Samalla, kun törmäys havaitaan, kytketään törmäyskohtaa vastaavan puskurin mittaus päälle. Tällä tavoin myös puskurien mittaukset on voitu toteuttaa yksinkertaisesti Toimielimen simulointi Toimielimen simulointia varten toteutettiin yksinkertainen rajoitettu integraattori, jonka arvoa kasvatettiin ja vähennettiin kulloisenkin tarpeen mukaan toimilaitteen avautumis- tai sulkeutumisnopeudella. Tällä tavoin pystyttiin havainnollistamaan toimilaitteen avautumiseen ja sulkeutumiseen kuluva aika, ja se osattiin paremmin ottaa huomioon muuta järjestelmää suunniteltaessa. Toimilaitteen simulointi myös mahdollisti täyden järjestelmän kokeilemisen simulaattorissa ja näin kaikkia osajärjestelmiä voitiin testata ilman oikeata J2B2-robottia. 11 Käyttöliittymä 11.1 Uusi ja vanha käyttöliittymä Kaikille ryhmille oli toimitettu toimiva käyttöliittymä, jossa perustoiminnallisuus oli läsnä. Robottia pystyi liikuttamaan näppäinkomennoilla ja tärkein sensoridata (laser, robotin paikka, kamera jne.) oli visualisoitu ruudulle. Alusta lähtien oli kuitenkin selvää, että SDL:n (Simple Directmedia Layer) päälle kehitettyä käyttöliittymää olisi työlästä jatkokehittää. Tämä johtuu siitä, että SDL on melko alhaisen tason multimedia-kirjasto ja juuri sen vuoksi sillä monimutkaisten käyttöliittymien rakentaminen on monimutkaista. Vaihtoehtoinen käyttöliittymä päätettiin rakentaa Qt:n päälle. Qt on laajasti käytössä oleva yleiskirjasto, johon kuuluu olennaisena osana alustariippumattomat käyttöliittymän rakennuspalikat. Qt:lla voi rakentaa käyttöliittymiä joko graasesti QT-kehittäjätyökaluja käyttäen, skriptaten käyttäen javascriptin tyylistä skriptikieltä (QML, Qt Meta Object Language) ja/tai perinteisellä C++-koodilla. Demonstraatiot suoritimme aikataulusyistä kuitenkin vanhalla käyttöliittymällä, johon oli tehty pikalisäyksenä demoissa tarvittavat komennot. Samaan aikaan kehitimme kuitenkin QT-käyttöliittymää eteenpäin. 34

35 11.2 Kommunikointi pääohjelman kanssa Päätimme tehdä graasen käyttöliittymän (GUI, Graphical User Interface) erillisenä ohjelmana. Tähän ratkaisuun päädyttiin sen vuoksi ettei Qt:n kirjastoja tarvitse kääntää MaCin ja MATLABin kanssa samaan ohjelmaan. Liikenne pääohjelman ja käyttöliittymän välillä kulkee TCP/IP-protokollan yli. Käyttöliittymä toimii asiakkaana ja pääohjelma palvelimena. Datarakenteet sarjallistettiin käyttäen Boostin tarjoamaan serialisointikirjastoa. Myös TCP/IP-verkkoliikenne toteutettiin käyttäen Boostia (ASIO). Verkkoliikennetoteutuksessa toteutuksen pohjana käytettiin Boost ASIO:n sivuilla olevia esimerkkitoteutuksia. Päätavoitteena oli, että monimutkaiset laskuoperaatiot tehdään pääohjelman päässä ja tulokset vain välitetään käyttöliittymälle, joka näyttää ne. GUI:lle lähetetään kahdenlaista tietorakennetta: DataToGui ja ImageData- ToGui. DataToGui sisältää kaiken muun paitsi suoraan kuvan liittyvän datan kuten laser-skannauksen, MATLABin estimoima paikka, tunnetut roskat jne.). Kuvadata kulkee ImageDataToGui -tietorakenteessa. Nämä kaksi tietorakennetta kulkevat omissa porteissaan, jotta systeemi ei menisi epäkuntoon esimerkiksi siinä tilanteessa jos kuvadatan siirrosta tapahtuu kummia. Käytännössä tällaisia ongelmia ei kuitenkaan esiintynyt, ja lähestymistapa oli kenties turhankin varovainen. Vastaavasti käyttöliittymä lähettää pääohjelmalle ohjauskomennot DataFromGui-tietorakenteessa. Kaikki nämä kolme tietorakennetta koostuvat yksinkertaisista tietorakenteista (bool, int, vector, jne.), jotka sarjallistetaan Boost Serialization-kirjaston avulla binääriksi tiedosiirtoa varten. Erityisvaivaa nähtiin kommunikaation virhesietoisuuteen. Esimerkiksi yhteyden katketessa molemmat osapuolet (pääohjelma ja GUI) muodostavat yhteyden uudelleen ja sen jälkeen kokeilevat uudelleen Toiminnallisuus GUI:ssa (ks. kuva 12) on kartta, jonka päälle on piirretty seuraavat asiat: Laser-skannaus (punaiset pikku pisteet, muutettu polaarikoordinaatistosta kartan koordinaatistoon), Esteet reittisuunnittelua ajatellen, Simulink-mallin laskemat turvalliset etäisyydet vihreällä Tunnetut roskat (väri valittu roskan tyypin mukaan), Reittisuunnittelijan suunnittelema reitti valkoisella viivalla, 35

36 Kuva 12: Yleiskuva käyttöliittymästä. Robotin törmäyspuskurien tila (värikoodattu), Robotin tämänhetkinen estimoitu paikka ja asento (x, y, a), Robotin ennustettu paikka ja asento (pieni nuoli) ohjausviiveen päähän Näistä roskien piirto ei jostain syystä toimi todellista robottia vasten. Lisäksi käyttöliittymässä näkyy kamerakuva, jonka päälle on lisätty konenäköön liittyvää dataa: Roskien sijainti (ja koko) kuvassa, merkattuna suorakulmiolla. Väri määräytyy roskatyypin mukaan, Roskien uskottavuus eri tyyppeinä Roskien tunnistenumerot (ID:t) 36

37 Lisäksi GUI:ssa on melko paljon tekstimuotoista dataa, esimerkiksi robotin nopeus ja Simulink-tilakoneen tila. Seuraavaksi poimittavat roskat näkyvät Next trash-ruuduissa. Seuraavan (nykyisen) roskan tyyppiä voi myös nopeasti muuttaa painamalla roskatyyppiä vastaavaa numeronäppäintä (ks. HELP). Kuva 13: Kuva käyttöliittymästä roskiksien lähellä. Huomaa, ettei roskiksessa olevia roskia tunnisteta. Käyttöliittymän kautta voidaan myös antaa robotille komentoja. Tärkeimpinä mainittaakoon seuraavat (ks. 12): Robotin ohjaustapa (Control Mode), Roskien unohdusnappula (Forget trash) Hätäseis (Stop) Robotin paikan uudelleenhaku kartalta eli odometrian resetointi (Reset) 37

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

MAA4 Abittikokeen vastaukset ja perusteluja 1. Määritä kuvassa olevien suorien s ja t yhtälöt. Suoran s yhtälö on = ja suoran t yhtälö on = + 2. Onko väittämä oikein vai väärin? 2.1 Suorat =5 +2 ja =5

Lisätiedot

TTY Mittausten koekenttä. Käyttö. Sijainti

TTY Mittausten koekenttä. Käyttö. Sijainti TTY Mittausten koekenttä Käyttö Tampereen teknillisen yliopiston mittausten koekenttä sijaitsee Tampereen teknillisen yliopiston välittömässä läheisyydessä. Koekenttä koostuu kuudesta pilaripisteestä (

Lisätiedot

Demo 1: Simplex-menetelmä

Demo 1: Simplex-menetelmä MS-C2105 Optimoinnin perusteet Malliratkaisut 3 Ehtamo Demo 1: Simplex-menetelmä Muodosta lineaarisen tehtävän standardimuoto ja ratkaise tehtävä taulukkomuotoisella Simplex-algoritmilla. max 5x 1 + 4x

Lisätiedot

Laboratoriotyö. 1. Laitteisto. 1.1 Kamera

Laboratoriotyö. 1. Laitteisto. 1.1 Kamera Laboratoriotyö 1. Laitteisto 1.1 Kamera Järjestelmän kamerassa (Hitachi, VK-C77E) on CCD -kenno ja mahdollisuus kuvan asynkroniseen päivitykseen. Kamerassa on sarjaliitäntä, jonka kautta voidaan ohjata

Lisätiedot

Tekijä Pitkä matematiikka

Tekijä Pitkä matematiikka K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.381 Laskennallinen Neurotiede Projektityö 30.1.007 Heikki Hyyti 60451P Tehtävä 1: Virityskäyrästön laskeminen Luokitellaan neuroni ensin sen mukaan, miten se vastaa sinimuotoisiin syötteisiin. Syöte

Lisätiedot

S-114.2720 Havaitseminen ja toiminta

S-114.2720 Havaitseminen ja toiminta S-114.2720 Havaitseminen ja toiminta Heikki Hyyti 60451P Harjoitustyö 2 visuaalinen prosessointi Treismanin FIT Kuva 1. Kuvassa on Treismanin kokeen ensimmäinen osio, jossa piti etsiä vihreätä T kirjainta.

Lisätiedot

Luento 6: 3-D koordinaatit

Luento 6: 3-D koordinaatit Maa-57.300 Fotogrammetrian perusteet Luento-ohjelma 1 2 3 4 5 6 7 8 9 10 11 12 13 Luento 6: 3-D koordinaatit AIHEITA (Alkuperäinen luento: Henrik Haggrén, 16.2.2003, Päivityksiä: Katri Koistinen 5.2.2004

Lisätiedot

x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b)

x 5 15 x 25 10x 40 11x x y 36 y sijoitus jompaankumpaan yhtälöön : b) MAA4 ratkaisut. 5 a) Itseisarvon vastauksen pitää olla aina positiivinen, joten määritelty kun 5 0 5 5 tai ( ) 5 5 5 5 0 5 5 5 5 0 5 5 0 0 9 5 9 40 5 5 5 5 0 40 5 Jälkimmäinen vastaus ei toimi määrittelyjoukon

Lisätiedot

A11-07 Measurements with machine vision Projektisuunnitelma

A11-07 Measurements with machine vision Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt A11-07 Measurements with machine vision Projektisuunnitelma Niko Nyrhilä 25.9.2011 Niko Nyrhilä 2 1 Projektityön tavoite Projektityön tavoitteena

Lisätiedot

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Tekijä Pitkä matematiikka 4 9.12.2016 212 Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Vastaus esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4) 213 Merkitään pistettä

Lisätiedot

FYSP101/K1 KINEMATIIKAN KUVAAJAT

FYSP101/K1 KINEMATIIKAN KUVAAJAT FYSP101/K1 KINEMATIIKAN KUVAAJAT Työn tavoitteita tutustua kattavasti DataStudio -ohjelmiston käyttöön syventää kinematiikan kuvaajien (paikka, nopeus, kiihtyvyys) hallintaa oppia yhdistämään kinematiikan

Lisätiedot

Autonomisen liikkuvan koneen teknologiat. Hannu Mäkelä Navitec Systems Oy

Autonomisen liikkuvan koneen teknologiat. Hannu Mäkelä Navitec Systems Oy Autonomisen liikkuvan koneen teknologiat Hannu Mäkelä Navitec Systems Oy Autonomisuuden edellytykset itsenäinen toiminta ympäristön havainnointi ja mittaus liikkuminen ja paikannus toiminta mittausten

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y. Tekijä Pitkä matematiikka 5 7..017 37 Pisteen (x, y) etäisyys pisteestä (0, ) on ( x 0) + ( y ). Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y. Merkitään etäisyydet yhtä suuriksi ja ratkaistaan

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011 PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan

Lisätiedot

y=-3x+2 y=2x-3 y=3x+2 x = = 6

y=-3x+2 y=2x-3 y=3x+2 x = = 6 MAA Koe, Arto Hekkanen ja Jussi Tyni 5.5.015 Loppukoe LASKE ILMAN LASKINTA. 1. Yhdistä kuvaaja ja sen yhtälö a) 3 b) 1 c) 5 d) Suoran yhtälö 1) y=3x ) 3x+y =0 3) x y 3=0 ) y= 3x 3 5) y= 3x 6) 3x y+=0 y=-3x+

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 2 4.12.2006 Heikki Hyyti 60451P Tehtävä 1 Tehtävässä 1 piti tehdä lineaarista suodatusta kuvalle. Lähtötietoina käytettiin kuvassa 1 näkyvää harmaasävyistä

Lisätiedot

Vanhoja koetehtäviä. Analyyttinen geometria 2016

Vanhoja koetehtäviä. Analyyttinen geometria 2016 Vanhoja koetehtäviä Analyyttinen geometria 016 1. Määritä luvun a arvo, kun piste (,3) on käyrällä a(3x + a) = (y - 1). Suora L kulkee pisteen (5,1) kautta ja on kohtisuorassa suoraa 6x + 7y - 19 = 0 vastaan.

Lisätiedot

MAB3 - Harjoitustehtävien ratkaisut:

MAB3 - Harjoitustehtävien ratkaisut: MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ 24.9.2019 HYVÄN VASTAUKSEN PIIRTEITÄ Alustavat hyvän vastauksen piirteet on suuntaa-antava kuvaus kokeen tehtäviin odotetuista vastauksista ja tarkoitettu ensisijaisesti

Lisätiedot

Stereopaikannusjärjestelmän tarkkuus (3 op)

Stereopaikannusjärjestelmän tarkkuus (3 op) Teknillinen korkeakoulu AS 0.3200 Automaatio ja systeemitekniikan projektityöt Stereopaikannusjärjestelmän tarkkuus (3 op) 19.9.2008 14.01.2009 Työn ohjaaja: DI Matti Öhman Mikko Seppälä 1 Työn esittely

Lisätiedot

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5. Tekijä Pitkä matematiikka 5 7..017 31 Kirjoitetaan yhtälö keskipistemuotoon ( x x ) + ( y y ) = r. 0 0 a) ( x 4) + ( y 1) = 49 Yhtälön vasemmalta puolelta nähdään, että x 0 = 4 ja y 0 = 1, joten ympyrän

Lisätiedot

PID-sa a timen viritta minen Matlabilla ja simulinkilla

PID-sa a timen viritta minen Matlabilla ja simulinkilla PID-sa a timen viritta minen Matlabilla ja simulinkilla Kriittisen värähtelyn menetelmä Tehtiin kuvan 1 mukainen tasavirtamoottorin piiri PID-säätimellä. Virittämistä varten PID-säätimen ja asetettiin

Lisätiedot

1 Laske ympyrän kehän pituus, kun

1 Laske ympyrän kehän pituus, kun Ympyrään liittyviä harjoituksia 1 Laske ympyrän kehän pituus, kun a) ympyrän halkaisijan pituus on 17 cm b) ympyrän säteen pituus on 1 33 cm 3 2 Kuinka pitkä on ympyrän säde, jos sen kehä on yhden metrin

Lisätiedot

Harjoitustyö 3. Heiluri-vaunusysteemin parametrien estimointi

Harjoitustyö 3. Heiluri-vaunusysteemin parametrien estimointi Aalto-yliopiston perustieteiden korkeakoulu Systeemianalyysin laboratorio Mat-2.4129 Systeemien identifiointi Harjoitustyö 3 Heiluri-vaunusysteemin parametrien estimointi Yleistä Systeemianalyysin laboratoriossa

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

Lisätiedot

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö 3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö Yhtälön (tai funktion) y = a + b + c, missä a 0, kuvaaja ei ole suora, mutta ei ole yhtälökään ensimmäistä astetta. Funktioiden

Lisätiedot

2 Pistejoukko koordinaatistossa

2 Pistejoukko koordinaatistossa Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia

Lisätiedot

MAB3 - Harjoitustehtävien ratkaisut:

MAB3 - Harjoitustehtävien ratkaisut: MAB3 - Harjoitustehtävien ratkaisut: 1 Funktio 1.1 Piirretään koordinaatistoakselit ja sijoitetaan pisteet: 1 1. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä.

Lisätiedot

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. Antti Rasila Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kevät 2016

Lisätiedot

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

Tieteellinen laskenta 2 Törmäykset

Tieteellinen laskenta 2 Törmäykset Tieteellinen laskenta 2 Törmäykset Aki Kutvonen Op.nmr 013185860 Sisällysluettelo Ohjelman tekninen dokumentti...3 Yleiskuvaus...3 Kääntöohje...3 Ohjelman yleinen rakenne...4 Esimerkkiajo ja käyttöohje...5

Lisätiedot

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Vastaus: Määrittelyehto on x 1 ja nollakohta x = 1.

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Vastaus: Määrittelyehto on x 1 ja nollakohta x = 1. Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 4..6 Kokoavia tehtäviä ILMAN TEKNISIÄ APUVÄLINEITÄ. a) Funktion f( ) = määrittelyehto on +, eli. + Ratkaistaan funktion nollakohdat. f(

Lisätiedot

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A) Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut

Lisätiedot

S-108-2110 OPTIIKKA 1/10 Laboratoriotyö: Polarisaatio POLARISAATIO. Laboratoriotyö

S-108-2110 OPTIIKKA 1/10 Laboratoriotyö: Polarisaatio POLARISAATIO. Laboratoriotyö S-108-2110 OPTIIKKA 1/10 POLARISAATIO Laboratoriotyö S-108-2110 OPTIIKKA 2/10 SISÄLLYSLUETTELO 1 Polarisaatio...3 2 Työn suoritus...6 2.1 Työvälineet...6 2.2 Mittaukset...6 2.2.1 Malus:in laki...6 2.2.2

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN

Lisätiedot

Integrointialgoritmit molekyylidynamiikassa

Integrointialgoritmit molekyylidynamiikassa Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin

Lisätiedot

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

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt S11-04 Kompaktikamerat stereokamerajärjestelmässä Projektisuunnitelma Ari-Matti Reinsalo Anssi Niemi 28.1.2011 Projektityön tavoite Projektityössä

Lisätiedot

2.3 Voiman jakaminen komponentteihin

2.3 Voiman jakaminen komponentteihin Seuraavissa kappaleissa tarvitaan aina silloin tällöin taitoa jakaa voima komponentteihin sekä myös taitoa suorittaa sille vastakkainen operaatio eli voimien resultantin eli kokonaisvoiman laskeminen.

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

A11-07 Measurements with machine vision (3 op) Loppuraportti

A11-07 Measurements with machine vision (3 op) Loppuraportti AS-0.3200 Automaatio- ja systeemitekniikan projektityöt A11-07 Measurements with machine vision (3 op) Loppuraportti Niko Nyrhilä Automaatio- ja Systeemitekniikka Valvoja: Mika Strömman Projektin kesto

Lisätiedot

Kimppu-suodatus-menetelmä

Kimppu-suodatus-menetelmä Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.

Lisätiedot

v 8 v 9 v 5 C v 3 v 4

v 8 v 9 v 5 C v 3 v 4 Verkot Verkko on (äärellinen) matemaattinen malli, joka koostuu pisteistä ja pisteitä toisiinsa yhdistävistä viivoista. Jokainen viiva yhdistää kaksi pistettä, jotka ovat viivan päätepisteitä. Esimerkiksi

Lisätiedot

Työ 21 Valon käyttäytyminen rajapinnoilla. Työvuoro 40 pari 1

Työ 21 Valon käyttäytyminen rajapinnoilla. Työvuoro 40 pari 1 Työ 21 Valon käyttäytyminen rajapinnoilla Työvuoro 40 pari 1 Tero Marttila Joel Pirttimaa TLT 78949E EST 78997S Selostuksen laati Tero Marttila Mittaukset suoritettu 12.11.2012 Selostus palautettu 19.11.2012

Lisätiedot

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa 9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.

Lisätiedot

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

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( ) Königsbergin sillat 1700-luvun Königsbergin (nykyisen Kaliningradin) läpi virtasi joki, jonka ylitti seitsemän siltaa. Sanotaan, että kaupungin asukkaat yrittivät löytää reittiä, joka lähtisi heidän kotoaan,

Lisätiedot

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme KJR-C1001 Statiikka ja dynamiikka Luento 29.3.2016 Susanna Hurme Yleisen tasoliikkeen kinematiikka: absoluuttinen ja suhteellinen liike, rajoitettu liike (Kirjan luvut 16.4-16.7) Osaamistavoitteet Ymmärtää,

Lisätiedot

Derivaatan sovellukset (ääriarvotehtävät ym.)

Derivaatan sovellukset (ääriarvotehtävät ym.) Derivaatan sovellukset (ääriarvotehtävät ym.) Tehtävät: 1. Tutki derivaatan avulla funktion f kulkua. a) f(x) = x 4x b) f(x) = x + 6x + 11 c) f(x) = x4 4 x3 + 4 d) f(x) = x 3 6x + 1x + 3. Määritä rationaalifunktion

Lisätiedot

yleisessä muodossa x y ax by c 0. 6p

yleisessä muodossa x y ax by c 0. 6p MAA..0 Muista kirjoittaa jokaiseen paperiin nimesi! Tee vastauspaperin yläreunaan pisteytysruudukko! Valitse kuusi tehtävää! Perustele vastauksesi välivaiheilla! Jussi Tyni Ratkaise: a) x x b) xy x 6y

Lisätiedot

DC-moottorin pyörimisnopeuden mittaaminen back-emf-menetelmällä

DC-moottorin pyörimisnopeuden mittaaminen back-emf-menetelmällä 1 DC-moottorin pyörimisnopeuden mittaaminen back-emf-menetelmällä JK 23.10.2007 Johdanto Harrasteroboteissa käytetään useimmiten voimanlähteenä DC-moottoria. Tämä moottorityyppi on monessa suhteessa kätevä

Lisätiedot

Ympyrän yhtälö

Ympyrän yhtälö Ympyrän yhtälö ANALYYTTINEN GEOMETRIA MAA4 On melko selvää, että origokeskisen ja r-säteisen ympyrän yhtälö voidaan esittää muodossa x 2 + y 2 = r 2. Vastaavalla tavalla muodostetaan ympyrän yhtälö, jonka

Lisätiedot

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 Väliarvolause Oletetaan, että funktio f on jatkuva jollain reaalilukuvälillä [a, b] ja derivoituva avoimella välillä (a, b). Funktion muutos tällä välillä on luonnollisesti

Lisätiedot

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009 EB-TUTKINTO 2009 MATEMATIIKKA 5 VIIKKOTUNTIA PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009 KOKEEN KESTO: 4 tuntia (240 minuuttia) SALLITUT APUVÄLINEET: Eurooppa-koulun antama taulukkovihkonen Funktiolaskin, joka ei saa

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

TEHTÄVIEN RATKAISUT. Luku a) Merkintä f (5) tarkoittaa lukua, jonka funktio tuottaa, kun siihen syötetään luku 5.

TEHTÄVIEN RATKAISUT. Luku a) Merkintä f (5) tarkoittaa lukua, jonka funktio tuottaa, kun siihen syötetään luku 5. TEHTÄVIEN RATKAISUT Luku 4.1 183. a) Merkintä f (5) tarkoittaa lukua, jonka funktio tuottaa, kun siihen syötetään luku 5. Lasketaan funktioon syötetyn luvun neliö: 5 = 5. Saatuun arvoon lisätään luku 1:

Lisätiedot

Integrointi ja sovellukset

Integrointi ja sovellukset Integrointi ja sovellukset Tehtävät:. Muodosta ja laske yläsumma funktiolle fx) x 5 välillä [, 4], kun väli on jaettu neljään yhtä suureen osaan.. Määritä integraalin x + ) dx likiarvo laskemalla alasumma,

Lisätiedot

Laboratorioraportti 3

Laboratorioraportti 3 KON-C3004 Kone-ja rakennustekniikan laboratoriotyöt Laboratorioraportti 3 Laboratorioharjoitus 1B: Ruuvijohde Ryhmä S: Pekka Vartiainen 427971 Jari Villanen 69830F Anssi Petäjä 433978 Mittaustilanne Harjoituksessa

Lisätiedot

Ohjeita fysiikan ylioppilaskirjoituksiin

Ohjeita fysiikan ylioppilaskirjoituksiin Ohjeita fysiikan ylioppilaskirjoituksiin Kari Eloranta 2016 Jyväskylän Lyseon lukio 11. tammikuuta 2016 Kokeen rakenne Fysiikan kokeessa on 13 tehtävää, joista vastataan kahdeksaan. Tehtävät 12 ja 13 ovat

Lisätiedot

Ota tämä paperi mukaan, merkkaa siihen omat vastauksesi ja tarkista oikeat vastaukset klo 11:30 jälkeen osoitteesta

Ota tämä paperi mukaan, merkkaa siihen omat vastauksesi ja tarkista oikeat vastaukset klo 11:30 jälkeen osoitteesta MAA5.2 Loppukoe 26.9.2012 Jussi Tyni Valitse 6 tehtävää Muista merkitä vastauspaperiin oma nimesi ja tee etusivulle pisteytysruudukko Kaikkiin tehtävien ratkaisuihin välivaiheet näkyviin! 1. Olkoon vektorit

Lisätiedot

Kertaus. Integraalifunktio ja integrointi. 2( x 1) 1 2x. 3( x 1) 1 (3x 1) KERTAUSTEHTÄVIÄ. K1. a)

Kertaus. Integraalifunktio ja integrointi. 2( x 1) 1 2x. 3( x 1) 1 (3x 1) KERTAUSTEHTÄVIÄ. K1. a) Juuri 9 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 5.5.6 Kertaus Integraalifunktio ja integrointi KERTAUSTEHTÄVIÄ K. a) ( )d C C b) c) d e e C cosd cosd sin C K. Funktiot F ja F ovat saman

Lisätiedot

Kenguru 2018 Cadet (8. ja 9. luokka)

Kenguru 2018 Cadet (8. ja 9. luokka) sivu 0 / 8 NIMI LUOKKA Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Oikeasta vastauksesta saa 3, 4 tai 5 pistettä.

Lisätiedot

Differentiaalilaskenta 1.

Differentiaalilaskenta 1. Differentiaalilaskenta. a) Mikä on tangentti? Mikä on sekantti? b) Määrittele funktion monotonisuuteen liittyvät käsitteet: kasvava, aidosti kasvava, vähenevä ja aidosti vähenevä. Anna esimerkit. c) Selitä,

Lisätiedot

y 2 h 2), (a) Näytä, että virtauksessa olevan fluidialkion tilavuus ei muutu.

y 2 h 2), (a) Näytä, että virtauksessa olevan fluidialkion tilavuus ei muutu. Tehtävä 1 Tarkastellaan paineen ajamaa Poisseuille-virtausta kahden yhdensuuntaisen levyn välissä Levyjen välinen etäisyys on 2h Nopeusjakauma raossa on tällöin u(y) = 1 dp ( y 2 h 2), missä y = 0 on raon

Lisätiedot

5.3 Ensimmäisen asteen polynomifunktio

5.3 Ensimmäisen asteen polynomifunktio Yllä olevat polynomit P ( x) = 2 x + 1 ja Q ( x) = 2x 1 ovat esimerkkejä 1. asteen polynomifunktioista: muuttujan korkein potenssi on yksi. Yleisessä 1. asteen polynomifunktioissa on lisäksi vakiotermi;

Lisätiedot

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2 HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi I, syksy 018 Harjoitus Ratkaisuehdotukset Tehtävä 1. Olkoon f : R R f(x 1, x ) = x 1 + x Olkoon C R. Määritä tasa-arvojoukko Sf(C) = {(x 1, x

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x

Lisätiedot

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77 Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty.5.07 Kertaus K. a) sin 0 = 0,77 b) cos ( 0 ) = cos 0 = 0,6 c) sin 50 = sin (80 50 ) = sin 0 = 0,77 d) tan 0 = tan (0 80 ) = tan 0 =,9 e)

Lisätiedot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot

1 2 x2 + 1 dx. (2p) x + 2dx. Kummankin integraalin laskeminen oikein (vastaukset 12 ja 20 ) antaa erikseen (2p) (integraalifunktiot Helsingin yliopisto, Itä-Suomen yliopisto, Jyväskylän yliopisto, Oulun yliopisto, Tampereen yliopisto ja Turun yliopisto Matematiikan valintakoe (Ratkaisut ja pisteytys) 500 Kustakin tehtävästä saa maksimissaan

Lisätiedot

MATEMATIIKKA 5 VIIKKOTUNTIA

MATEMATIIKKA 5 VIIKKOTUNTIA EB-TUTKINTO 2008 MATEMATIIKKA 5 VIIKKOTUNTIA PÄIVÄMÄÄRÄ: 5. kesäkuuta 2008 (aamupäivä) KOKEEN KESTO: 4 tuntia (240 minuuttia) SALLITUT APUVÄLINEET: Europpa-koulun antama taulukkovihkonen Funktiolaskin,

Lisätiedot

1 Ensimmäisen asteen polynomifunktio

1 Ensimmäisen asteen polynomifunktio Ensimmäisen asteen polynomifunktio ENNAKKOTEHTÄVÄT. a) f(x) = x 4 b) Nollakohdassa funktio f saa arvon nolla eli kuvaaja kohtaa x-akselin. Kuvaajan perusteella funktion nollakohta on x,. c) Funktion f

Lisätiedot

10. Esitys ja kuvaus

10. Esitys ja kuvaus 10. Esitys ja kuvaus Kun kuva on ensin segmentoitu alueisiin edellisen luvun menetelmin, segmentoidut pikselit kootaan esittämään ja kuvaamaan kohteita muodossa, joka sopii hyvin jatkokäsittelyä varten.

Lisätiedot

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla

Talousmatematiikan perusteet: Luento 12. Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Talousmatematiikan perusteet: Luento 12 Lineaarinen optimointitehtävä Graafinen ratkaisu Ratkaisu Excel Solverilla Esimerkki Esim. Yritys tekee kahta elintarviketeollisuuden käyttämää puolivalmistetta,

Lisätiedot

Mb8 Koe Kuopion Lyseon lukio (KK) sivu 1/2

Mb8 Koe Kuopion Lyseon lukio (KK) sivu 1/2 Mb8 Koe 0.11.015 Kuopion Lyseon lukio (KK) sivu 1/ Kokeessa on kaksi osaa. Osa A ratkaistaan tehtäväpaperille ja osa B ratkaistaan konseptipaperille. Osa A: saat käyttää taulukkokirjaa mutta et laskinta.

Lisätiedot

A11-02 Infrapunasuodinautomatiikka kameralle

A11-02 Infrapunasuodinautomatiikka kameralle A11-02 Infrapunasuodinautomatiikka kameralle Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt Lassi Seppälä Johan Dahl Sisällysluettelo Sisällysluettelo 1. Projektityön tavoite

Lisätiedot

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan

Lisätiedot

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme KJR-C1001 Statiikka ja dynamiikka Luento 22.3.2016 Susanna Hurme Päivän aihe: Rotaatioliikkeen kinematiikka: kulmanopeus ja -kiihtyvyys (Kirjan luvut 12.7, 16.3) Osaamistavoitteet Osata analysoida jäykän

Lisätiedot

5.3 Suoran ja toisen asteen käyrän yhteiset pisteet

5.3 Suoran ja toisen asteen käyrän yhteiset pisteet .3 Suoran ja toisen asteen käyrän yhteiset pisteet Tämän asian taustana on ratkaista sellainen yhtälöpari, missä yhtälöistä toinen on ensiasteinen ja toinen toista astetta. Tällainen pari ratkeaa aina

Lisätiedot

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

AS Automaatio ja systeemitekniikan projektityöt A13 10 Radio ohjattavan pienoismallin ohjausjärjestelmän ja käyttöliittymän kehittäminen Väliraportti AS 0.3200 Automaatio ja systeemitekniikan projektityöt A13 10 Radio ohjattavan pienoismallin ohjausjärjestelmän ja käyttöliittymän kehittäminen Toni Liski, Konsta Hölttä, Lasse Kortetjärvi

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN

Lisätiedot

Luento 3: 3D katselu. Sisältö

Luento 3: 3D katselu. Sisältö Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran

Lisätiedot

Hissimatkustajien automaattinen tunnistaminen. Johan Backlund

Hissimatkustajien automaattinen tunnistaminen. Johan Backlund Hissimatkustajien automaattinen tunnistaminen Johan Backlund Johdanto Hissien historia pitkä Ensimmäiset maininnat voidaan jäljittää Rooman valtakuntaan Matkustaja hissien synty 1800-luvun puolessavälissä

Lisätiedot

Satelliittipaikannus

Satelliittipaikannus Kolme maailmalaajuista järjestelmää 1. GPS (USAn puolustusministeriö) Täydessä laajuudessaan toiminnassa v. 1994. http://www.navcen.uscg.gov/gps/default.htm 2. GLONASS (Venäjän hallitus) Ilmeisesti 11

Lisätiedot

805306A Johdatus monimuuttujamenetelmiin, 5 op

805306A Johdatus monimuuttujamenetelmiin, 5 op monimuuttujamenetelmiin, 5 op syksy 2018 Matemaattisten tieteiden laitos Lineaarinen erotteluanalyysi (LDA, Linear discriminant analysis) Erotteluanalyysin avulla pyritään muodostamaan selittävistä muuttujista

Lisätiedot

FYSIIKAN LABORATORIOTYÖT 2 HILA JA PRISMA

FYSIIKAN LABORATORIOTYÖT 2 HILA JA PRISMA FYSIIKAN LABORATORIOTYÖT HILA JA PRISMA MIKKO LAINE 9. toukokuuta 05. Johdanto Tässä työssä muodostamme lasiprisman dispersiokäyrän ja määritämme työn tekijän silmän herkkyysrajan punaiselle valolle. Lisäksi

Lisätiedot

Eye Pal Solo. Käyttöohje

Eye Pal Solo. Käyttöohje Eye Pal Solo Käyttöohje 1 Eye Pal Solon käyttöönotto Eye Pal Solon pakkauksessa tulee kolme osaa: 1. Peruslaite, joka toimii varsinaisena lukijana ja jonka etureunassa on laitteen ohjainpainikkeet. 2.

Lisätiedot