Desenvolupament d’una aplicació per a iOS (iPhone): Brúixola / GPS de muntanya amb Realitat Augmentada AUTOR: Adrià Martı́ Armengol DIRECTOR: Carlos Molina Adreça electrònica: [email protected] Resum: Descripció del projecte. Resumen: Descripción del proyecto. Abstract: Project summary. Titulació: Enginyeria Tècnica en Informàtica de Gestió Data Presentació: Febrer / 2013 Resum Al llarg dels últims anys l’ús de dispositius mòbils de tipus intel·ligent s’ha multiplicat explosivament. Al mateix temps, els dispositius han evolucionat tècnicament, i cada vegada incorporen millors càmares, GPS, acceleròmetres i magnetòmetres entre altres sensors. La unió d’aquests dos fets obre un ventall molt gran per a la creació d’aplicacions per a dispositius mòbils, i alhora també un mercat molt gran on distribuı̈r-les. Una de les opcions més atractives d’aquest ventall són les aplicacions de Realitat Augmentada. Per altra banda, cada vegada hi ha més gent que practica activitats a la natura, excursionisme, alpinisme, BTT o, per què no, anar a buscar bolets. En entorns naturals com ara boscos i muntanyes és fàcil perdre-s’hi, i factors com la boira o la neu empitjoren aquest fet. És per això que l’objectiu d’aquest projecte és oferir una aplicació utilitària d’orientació, que faci les funcions de brúixola i de GPS de muntanya mitjançant Realitat Augmentada per a dispositius iPhone amb iOS 5.0 i posteriors. L’aplicació permet a l’usuari traçar rutes sobre el mapa mitjançant la col·locació de puns de control que després es mostren en 3D sobre la imatge de càmera indicant la direcció del següent punt on es vol dirigir l’usuari. Com que l’aplicació està pensada per a l’orientació en entorns naturals, no traça ni optimitza cap ruta de carrers ni carreteres, el seu objectiu és oferir la orientació i una noció de distància a l’usuari. En el projecte es maximitza l’ús dels sensors i de les capacitats tècniques del dispositiu iPhone per aconseguir l’efecte de Realitat Augmentada. Aixı́ doncs, s’ha implementat l’ús del magnetòmetre, l’acceleròmetre, el GPS i la càmera. S’ha mirat d’oferir una interfı́cie més atractiva a l’usuari fent servir gràfics 3D utilitzant OpenGL ES a través del framework d’Apple GLKit. Per tal de traslladar l’orientació magnètica i els moviments del dispositiu a la Realitat Augmentada, s’han hagut de desenvolupar els algoritmes que transformen les dades dels sensors en matrius de transformació per a OpenGL. No s’ha fet servir cap motor 3D existent, tot intentant maximitzar l’aprenentatge sobre el camp de l’OpenGL. La utilització de mapes s’ha fet mitjançant el framework d’Apple MapKit que, depenent de la versió d’iOS del dispositiu, utilitza Google Mobile Maps o mapes d’Apple. Resumen A lo largo de los últimos años el uso de dispositivos móviles de tipo inteligente se ha multiplicado explosivamente. Al mismo tiempo, los dispositivos han evolucionado técnicamente, y cada vez incorporan mejores cámaras, GPS, acelerómetros y magnetómetros entre otros sensores. La unión de estos dos hechos abre un abanico muy grande para la creación de aplicaciones para dispositivos móviles, y a la vez también un mercado muy grande dónde distribuirlas. Una de las opciones más atractivas de este abanico son las aplicaciones de Realidad Aumentada. Por otro lado, cada vez hay más gente que practica actividades en la naturaleza, excursionismo, alpinismo, BTT o ir a coger setas son algunos ejemplos. En entornos naturales como bosques y montañas es fácil perderse, y factores como la niebla o la nieve empeoran este hecho. Es por esto que el objetivo de este proyecto es ofrecer una aplicación utilitaria de orientación, que haga las funciones de brújula y GPS de montaña mediante Realidad Aumentada para dispositivos iPhone con iOS 5.0 y posteriores. La aplicación permite al usuario trazar rutas sobre el mapa mediante la colocación de puntos de control que después se muestran en 3D sobre la imagen de la cámara indicando la dirección del siguiente punto donde se quiere dirigir el usuario. Debido a que la aplicación está pensada para la orientación en entornos naturales, no traza ni optimiza ninguna ruta de calles ni carreteras, su objetivo es ofrecer la orientación y una noción de distancia al usuario. En el proyecto se maximiza el uso de sensores y de las capacidades técnicas del dispositivo iPhone para conseguir el efecto de Realidad Aumentada. Ası́ pues, se ha implementado el uso del magnetómetro, el acelerómetro, el GPS y la cámara. Se ha intentado ofrecer una interfaz más atractiva al usuario haciendo uso de gráficos 3D mediante OpenGL ES a través del framework de Apple GLKit. Para trasladar la orientación magnética y los movimientos del dispositivo a la Realidad Aumentada, se han tenido que desarrollar los algoritmos que transforman los datos de los sensores en matrices de transformación para OpenGL. No se ha utilizado ningún motor 3D existente, intentando ası́ maximizar el aprendizaje en el campo de OpenGL. La utilización de mapas se ha hecho mediante el framework de Apple MapKit que, dependiendo de la versión de iOS del dispositivo, utiliza Google Mobile Maps o mapas de Apple. Abstract During the latter years, the usage of mobile devices known as smartphones has increased explosively. At the same time, the devices have evolved technically, and they include better and better cameras, GPSs, accelerometers and magnetometers among other sensors. The union of this two facts opens a wide range of possibilities for the creation of mobile devices applications, and at the same time a huge market to distribute them. One of the most attractive options in this range of possibilities are the Augmented Reality applications. In addition, more and more people are practising activities in the nature, hiking, alpinism, MTB or even picking mushrooms are some examples. In natural environments like woods and mountains it’s easy to get lost, and this fact can get worse with weather conditions like fog or snow. It’s because of this that the objective of this project is to offer a utility orientation application, serving as a compass and mountain GPS by using Augmented Reality techniques, on iPhone devices with iOS 5.0 and latter. The application allows the user to trace routes on the map by placing check points, that latter are shown in 3D overlayed on the camera image, showing the direcction of the points where user wants to go. Due the fact of the application being designed for natural environment orientation, it doesn’t trace nor optimize routes in streets or roads, its objective is to offer the orientation and a sense of distance to the user. This project tries to maximize the use of the sensors and technical capabilities of the iPhone device to get the Augmented Reality effect. Therefore, the usage of magnetometer, accelerometer, GPS and camera have been implemented. In order to offer a more attractive interface for the user, there have been implemented 3D graphics using OpenGL ES, through the Apple framework GLKit. To achieve the Augmented Reality effect from the magnetic orientation and the device acceleration, there have been developed the algorithms that transform sensor data into transformation matrices for OpenGL. There hasn’t been used any existing 3D motor, trying to maximize the learning in the OpenGL field. The inclusion of maps has been implemented using the Apple framework MapKit which, depending on the device iOS version, uses Google Mobile Maps or maps from Apple.