Sistemas de Información: Realidad Aumentada en Android (Juan Luis Martín-Mora Parra)

Actualmente se está desarrollando un proyecto de realidad aumentada para la asignatura Sistemas de Información. Inicialmente se pensó que construir una pequeña aplicación con características de RA para Android sería mucho más fácil de lo que está resultando.

En primer lugar, la falta de documentación y ejemplos como base del desarrollo del software dificultó mucho el inicio de la tarea. Por ello solicitamos documentación a la empresa Mobbeel ya que su actividad laboral gira en torno al sistema operativo Android, y ayuda al grupo de investigación Gexcall en Mérida, concretamente a Quique y Héctor.

Finalmente se ha optado por montar una RA algo diferente a los ejemplos proporcionados. Consiste en la utilización del hardware del móvil (cámara y gps) más el diseño de imágenes en 3D con OpenGl.

Una vez montado todo, la aplicación mostrará las imágenes diseñadas cuando el dispositivo móvil se encuentre exactamente en la latitud y longitud seleccionadas y enfoque al punto exacto.

Hasta este momento se ha conseguido implementar lo siguiente:

1.- Lanzar la imagen de OpenGL sobre la imagen en tiempo real que captura la cámara.

2.- Para el manejo de Gps se utiliza la clase LocationManager. Esta clase proporciona acceso a los servicios de sistema de localización. Estos servicios permiten que las aplicaciones puedan obtener actualizaciones periódicas de la situación geográfica del dispositivo. El método que inicializará la localización geográfica es el siguiente:

/**
* Initializes GPS
*/

public void initLocationManagement(MyLocationListener ocationListener){

this.locationManager =
(LocationManager) getSystemService(Context.LOCATION_SERVICE);
this.locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 1000, 1, locationListener);

boolean enabledOnly = true;
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
this.locationManager.getBestProvider(criteria, enabledOnly);
}

3.- Cargar la imagen renderizada del cubo y añadirla a la vista:

/**
* Initializes Renderer.
*/
public void initRenderer(CompassRenderer compassRenderer) {
this.mGLSurfaceView = new GLSurfaceView(this);
this.mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
this.mGLSurfaceView.setRenderer(compassRenderer);
this.mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
setContentView(this.mGLSurfaceView);
}

4.- Lanzar la vista de la cámara y añadir la imagen de OpenGL. Para ello asociamos la vista OpenGL a la actividad principal, creamos la vista de la cámara y la añadimos. La vista de la cámara queda así detrás de la vista OpenGL, visible porque esta última tiene un fondo transparente.
mCameraView = new CameraView(this);
addContentView(mCameraView, new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));

El resultado obtenido se aprecia en la siguiente imagen obtenida del propio dispositivo.

Los principales problemas con los que nos encontramos actualmente son los siguientes:

• Mostrar la imagen 3D de openGL según la posición geográfica almacenada. A pesar de comparar la localización del dispositivo con la latitud y longitud seleccionadas para el testeo, no logramos pintar nada.

• Establecer la imagen en un punto según la situación de la brújula del dispositivo. Lo que se quiere conseguir es consultar en cualquier momento el sensor que detecta el rumbo de la brújula y la inclinación del teléfono. Con estos valores se dibujaría la imagen en una determinada posición y la veríamos a través del móvil sólo si enfocamos en esa dirección.

pablogarguez

@pablogarguez es actualmente #Investigador y Profesor Titular de Ingeniería Informática de la Escuela Politécnica en la Universidad de Extremadura en Cáceres. Ha sido Director General de Agenda Digital de la Consejería de Economía, Ciencia y Agenda Digital de la Junta de Extremadura, desde septiembre de 2019 a agosto de 2023. Fue Director de la Escuela Politécnica de Cáceres (School of Technology) de la Universidad de Extremadura durante 3 años (2017-2019), con titulaciones de grado, máster y doctorado en los campos de Ingeniería Civil, Edificación, Informática y Telecomunicaciones. Su trayectoria docente comienza en 1997 básicamente en asignaturas de Programación y de Bases de Datos. Su actividad investigadora se ha centrado en el Reconocimiento de Patrones y la Ciberseguridad. Fruto de esta labor de investigación, resaltar que es coautor de más de veinte artículos publicados en revistas internacionales indexadas en JCR, con un índice H de 12 en cuanto a las citas conseguidas por estos artículos. Actualmente tiene 3 sexenios de investigación a nivel nacional, y el último de ellos es un sexenio vivo (activo). También posee un sexenio de transferencia en la única convocatoria abierta hasta ahora por el Ministerio (2019).

3 comentarios en “Sistemas de Información: Realidad Aumentada en Android (Juan Luis Martín-Mora Parra)”

  1. Si consigues hacer algo que funcione medianamente sería impresionante.

    Ahora mismo hay aplicaciones muy buenas que se sirven de la brújula y las coordenadas GPS, por lo que tecnológicamente es posible. Ahora bien, me parece una exageración hacer una aplicación de ese estilo en un mes (o dos).

    Es un campo bastante nuevo para mi así que creo que no puedo aconsejarte nada demasiado técnico 🙁

  2. Parece sencillo, pero me imagino que, como todo, habrá costado mucho¡¡ Enhorabuena por el trabajo, Juan Luis.

    Buscando esta mañana un rato, sobre RA en Android, he encontrado algo que para futuros trabajos… o para lo que sea creo que resulta muy interesante.

    Se trata de un proyecto open source y licencia GPL denominado AndAR (android AR) y consiste en un FrameWork para constrir aplicaciones RA sobre dispositivos Android:
    http://code.google.com/p/andar/

    Y aquí un «How To»: HowToBuildApplicationsBasedOnAndAR :
    http://code.google.com/p/andar/wiki/HowToBuildApplicationsBasedOnAndAR

    =================================================================
    Top 5 de mejores app de RA para Android:
    http://compixels.com/441/top-5-augmented-reality-apps-for-android
    =================================================================

    un saludo,
    Ángel

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *