Navigointi uudessa ympäristössä voi olla haasteellista, koska ikinä ei ole sata varma, minne mennä. Nykypäivänä navigointi tuntemattomilla seuduilla kuitenkin onnistuu suhteellisen helposti mukana liikkuvien navigaattoreiden ansiosta, oli kyseessä älypuhelinsovellus tai auton navigaattori. Sisätilat kuitenkin luovat ympäristön, missä tavalliset navigaattorit eivät pysty auttamaan, koska rakennukset estävät tehokkaasti GPS -signaalit. Tästä johtuen navigaattori eivät yleensä kykene samaan tarpeeksi tarkkaa sijaintia selville, jotta navigoinnista olisi varsinaisesti hyötyä.
Testasin hiljattain suomalaisen Immersalin kehittämää Immersal AR SDK (lisätyn todellisuuden ohjelmistokehityspaketti). Tarkoituksena oli selvittää voisiko SDKn sisältämää navigointipuolta käyttää hyödyksi luomaan yksinkertaisen sisätilapaikannuksen. Testaamisen aloittaminen oli helppoa, koska ei-kaupalliseen käyttöön oleva lisenssi oli (tämän blogin kirjoitushetkellä) saatavilla ilmaiseksi. Testaamiseen tarvittiin kehittäjätunukset, kehittäjäavain ja Immersal Unity package, joka on Unity -pelimoottorille luotu paketti, joka sisälsi kaiken tarvittavan testaamista varten.
Alueen kuvaaminen
Testaamisen ensimmäisessä vaiheessa piti kartoittaa alue jonne navigointi tulisi. Kartoittaminen suoritettiin käyttämällä Unity paketissa tullutta Mapping App -esimerkkiä. Esimerkkistä luotiin oma sovelluksensa, joka asennettiin mobiililaitteeseen, jonka jälkeen pääsin kartoittamaan aluetta. Aluetta kartoitettaessa alueesta otettiin useita kuvia. Kuvien ottamisen jälkeen, kuvat ladattiin Immersalin pilvipalveluun, jossa kuvien pohjalta luotiin 3D-kartoitus kuvatusta ympäristöstä.
Pistepilven käsittely
Kuvien käsittelyn jälkeen pystyin lataamaan kuvien pohjalta luodun pistepilvi (point cloud) -datan. Pistepilven avulla voidaan luoda 3D versio lattiasta 3D-mallinnusohjelmassa, johon käytin avoimeen lähdekoodiin pohjautuvaa Blenderiä. Lattian luomisen jälkeen lattia viedään Unity-pelimoottoriin. Navigointisovellus tulee hyödyntämään tätä lattiaa, kun halutaan navigoida pisteeltä a pisteelle b.
Navigaattorin luonti ja testaus
Viimeisessä vaiheessa, navigointi sovelluksen luomisessa hyödynnettiin Immersal Unity paketista löytyvää Navigation Sample -esimerkkiä, koska se sisälsi kaiken tarvittavan, paitsi lattian ja pistepilvidatan. Pistepilvidata ja lattia lisättiin näille varatuille paikoille. Viimeiseksi lisättiin karttamerkit. Karttamerkkeinä käytettiin esimerkin mukana tulleita valmiita malleja. Lopuksi esimerkistä luotiin oma sovelluksensa, joka asennettiin mobiililaitteelle.
Käynnistyttyään sovellus etsii alueita tai aluetta, joka vastaisi sille annettua pistepilvidataa. Tunnistettuaan alueen. sovellus lataa karttamerkit, jonka jälkeen navigointi on mahdollista. Alla kuva testin tuloksesta.
Viimeiset aatteet
Sisätilanavigointi AR:n avulla mielenkiintoinen idea, mutta vaikka se poistaakin tavallisten navigaattorien ongelmat, on sillä puolestaan omat ongelmansa. Nämä ongelmat keskittyvät enimmäkseen kartoitukseen. Alue pitäisi olla tyhjätty liikuteltavista esineistä kuten tuoleista ja alueesta täytyy ottaa riittävä määrä kuvia tai muuten pistepilvi ei ole tarpeeksi tarkka. Lisäksi kaikki heijastavat pinnat kuten lasit ja peilit olisi hyvä peittää kuvauksen ajaksi, koska heijastumat voivat aiheuttaa vääristymiä pistepilvessä. Jään mielenkiinnolla odottamaan millaisia sisätilanavigaattoreita tulevaisuus tuo tullessaan.
Toni Lavonen,sovelluskehittäjä, HAMK Smart -tutkimusyksikkö
VATTU – Valmistavan teollisuuden virtuaaliset tuotteet
Hankkeen tavoitteena on tutkimuksen, selvitysten ja kokeiluiden avulla tuottaa ja jalkauttaa uutta tietoa yritysten hyödynnettäväksi koskien yritysten mahdollisuuksia hyödyntää pelimoottoriteknologiaa tuotannossaan ja toiminnassaan. Hankkeen kesto on 1.6.2019 – 31.12.2020. Toiminta-ala on Kanta-Häme, Valkeakoski ja Hyvinkää. Hankkeen esittelyblogiin pääset tästä