Inleiding
Augmented reality wordt eindelijk echt realiteit. Het is al jarenlang een belofte in de mobiele markt, maar heel veel verder dan experimenten kwam het niet. Google Glass was een bekend voorbeeld, de bril die notificaties en andere berichten over een blik op de echte wereld kon leggen. De Hololens van Microsoft is een ander voorbeeld.
Op smartphones is augmented reality niet nieuw. Al sinds het begin van Android zijn er apps die informatie over het camerabeeld kunnen leggen. Wikitude is een voorbeeld, maar ook het Nederlandse Layar. Het populairste voorbeeld is Pokémon Go, al is de link tussen augmented reality en het spelletje dat de hype was van vorige zomer wel aan de zwakke kant: het ar-element is makkelijk uit te schakelen en niet echt nodig in de game.
Een ware doorbraak van augmented reality vereist de ondersteuning van heel veel bestaande smartphones. Apple kondigde dat in juni aan met ARKit: een manier om augmented reality op alle iPhones sinds de 6s te laten werken. Als iOS 11 volgende maand uitkomt, hebben ontwikkelaars daardoor gelijk een doelgroep van in potentie honderden miljoenen gebruikers. Ontwikkelaars zijn druk bezig met toepassingen, zoals tweaker Menesis die een Tesla op zijn oprit zette.
Google pakte het eerst op een andere manier aan. Tango vereiste speciale hardware, zoals een fisheye-lens en time-of-flight-sensor. Mede door die eisen verschenen er maar twee telefoons met Tango aan boord: de Lenovo Phab 2 Pro en de Asus Zenfone AR.
Nu is er de 'ARKit' van Google: ARCore. Het is een doorontwikkeling van Tango en moet binnen een half jaar draaien op honderd miljoen toestellen. Daarmee probeert Google nadrukkelijk wat Apple ook gaat doen: augmented reality naar bestaande smartphones brengen. Tweakers kon ARCore uitproberen en tegenover Tango zetten, om de vergelijking te kunnen maken.
/i/2001635771.jpeg?f=imagenormal)
De werking: een lichte versie van Tango
Er zijn drie verschillende sdk's voor ARCore: een Android-sdk op basis van Java, een Unity-sdk en een Unreal-sdk. In alle sdk's zit een sample-app die je kunt compileren via Android Studio. De app waar wij mee hebben gewerkt is de Java-versie.
Voor ARCore kunnen ontwikkelaars apps maken, maar dat hoeft niet. Augmented reality zal ook mogelijk worden in browsers. Dat gebeurt nu nog met een aparte versie van Chromium, de opensource-variant van Googles Chrome-browser. Die ondersteunt ar-content op websites en zo kunnen ontwikkelaars al experimenteren met dergelijke webpagina's.
De ondersteuning van 'WebAR' is niet beperkt tot ARCore. Er zal ook ondersteuning komen voor Apple ARKit, zodat de pagina's ook werken op iOS. Daarmee is de potentiële doelgroep de grootste. Ontwikkelaars kunnen vanuit de browser alle sensors op smartphones aanspreken, maar het is nog te vroeg om te zeggen of de webversie even goed werkt als de standalone-apps.
ARCore is duidelijk een doorontwikkeling van Tango. De app die je moet installeren om ARCore te gebruiken op een Android-smartphone heet Tango Core - het is dus daadwerkelijk gebaseerd op dezelfde techniek. Dat betekent niet dat apps tussen Tango en ARCore uitwisselbaar zijn. We hebben geprobeerd om Tango Core en de sample-app van ARCore op een Asus Zenfone AR met Tango-ondersteuning te zetten. Daarbij kwam de ironische melding 'deze smartphone ondersteunt geen augmented reality' in beeld.
ARCore werkt vooralsnog op drie toestellen: de Google Pixel, Pixel XL en Samsung Galaxy S8. De S8+ werkt er niet mee. Het uitbreiden van die ondersteuning moet per toestel verlopen want ARCore moet specifieke data krijgen uit sensors en de camera. Daarvoor is specifieke info nodig die Google uitleest met gespecialiseerde hardware. Daarom moet de zoekgigant elke variant van elk toestel apart toevoegen en dat kost tijd. Met ARCore loopt Google dus zelf aan tegen de fragmentatie in de Android-wereld.
De praktijk: alleen voor oppervlakken
Om ARCore uit te proberen, hebben we het framework en de sample-app op een Google Pixel XL gezet. Om te zien wat het verschil is met gespecialiseerde hardware, hebben we daar de Zenfone AR tegenover gezet. De sample-app op de Pixel XL scant de omgeving, waarna je daar Android-poppetjes in kan zetten. De Zenfone AR kon die app niet draaien, dus was voor ons Tango Matrix Scanner 'the one' waarmee we het moesten doen.
De Pixel XL kan de omgeving snel scannen. Hij zoekt duidelijk naar oppervlakken, zoals vloeren en tafels. Dat lukt hem vrij aardig, zeker als de oppervlakken vrij zijn van storende elementen en het beeld genoeg contrast bevat. Hij kan bovendien hoogtes inschatten en in ons kantoor zag hij het verschil tussen de vloer en een bureau.
Daar houdt het echter wel op met het goede nieuws. De beperking van alleen werken met een camera en sensoren blijkt al snel. Objecten negeert hij en op veel plekken herkent hij oppervlakken toch niet goed. Hij lijkt heel grof vlakken aan te duiden in het beeld en de grenzen kloppen ook vaak niet.
Het contrast met Tango op de Zenfone AR is groot. De Matrix Scanner gaf duidelijk randen aan van objecten en muren en kon zelfs de matrixbeelden geloofwaardig over de ruggen van collega's laten lopen. Het scannen van de omgeving verliep ongeveer even snel op beide telefoons.
Een klein verschil zit ook in de manier waarop de telefoons in de war te brengen zijn. De Pixel XL bleek na een paar meter lopen en even goed schudden met de telefoon een eerder ingescand oppervlak op een iets andere plek neer te zetten. Een Android-poppetje die eerst nog keurig op een mooie plek naast een pc stond, bleek ergens onder het bureau beland te zijn. De Zenfone AR is minder lastig van zijn stuk te brengen.
Een pluspunt is de belasting voor de processor. De Zenfone AR en Pixel XL hebben dezelfde soc aan boord, maar de processorbelasting bij de Pixel XL bleek tijdens het gebruik van augmented reality een stukje lager te liggen. ARCore belastte de processor nooit veel, waardoor de snelheid maximaal op 1,6GHz lag - en dat zelfs maar voor eenderde van de tijd. De Zenfone AR kwam tot 2,2GHz en verbleef driekwart van de tijd op 1,6GHz bij het scannen van dezelfde omgeving. Dat is natuurlijk ook logisch, omdat de Pixel XL minder hardware aan te sturen heeft voor het scannen.
/i/2001635773.jpeg?f=imagenormal)
Tot slot
Met de komst van ARCore van Google en ARKit van Apple is augmented reality klaar voor het grote publiek. Het werkt op 's werelds populairste smartphones en dat is een belangrijke voorwaarde voor succes. Dat die populaire smartphones niet zijn gebouwd voor het bekijken van de wereld in augmented reality, blijkt wel een hindernis. Het scannen van de omgeving gaat met de Pixel XL een stuk minder dan met de gespecialiseerde Zenfone AR.
Desondanks is augmented reality wel bruikbaar op deze manier. Het volledig inscannen van een ruimte om die te gebruiken in een game zal niet lukken, maar ontwikkelaars kunnen wel degelijk leuke toepassingen en spelletjes bouwen die werken met oppervlakken in de omgeving van gebruikers. Een potje virtueel schaken op tafel zou bijvoorbeeld prima moeten kunnen.
Augmented reality zal pas echt de belofte gaan waarmaken als er populaire gespecialiseerde hardware komt die voor je ogen te plaatsen is. De wereld bekijken op een smartphonescherm is beperkend en in veel gevallen onhandig. Een apparaat als de Hololens van Microsoft laat nu al zien dat het anders kan. Elke techniek heeft een voet tussen de deur nodig om een industrie te ontwikkelen. Door ar te laten werken op de populairste smartphones, is er een groot publiek en kunnen ontwikkelaars zich richten op toepassingen.
Het kan natuurlijk zijn dat er met augmented reality hetzelfde gebeurt als met bijvoorbeeld 3d-tv's: ondanks dat veel tv's het ondersteunden, gingen weinig mensen het gebruiken en waarderen. Het zou ook een andere kant op kunnen gaan en dan is dit het begin van wat een grote en belangrijke sector binnen de techindustrie zou kunnen worden.