Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NavSpace — App del Visor (Meta Quest)

Aplicación de navegación interior en realidad mixta para Meta Quest 3, parte del sistema NavSpace: guía al usuario hasta un destino dentro de un edificio real dibujando una línea de navegación sobre el espacio físico.

Proyecto de título de Eduardo Apata y Fabián Orellana, guiado por el profesor Raúl Herrera Acuña, para el edificio DICI de la Universidad de Tarapacá, Arica.

Qué es este repositorio

NavSpace se compone de dos repositorios:

  • Este repositorio (Unity): la app que corre en el visor. Calibra el espacio con anclas espaciales, descarga el espacio desde la API, construye el grafo de navegación, calcula rutas con A* y dibuja la guía hasta el destino.
  • Panel de administración (repo Laravel aparte): el backend y CMS donde se registran los edificios, nodos y destinos, y que expone la API REST que esta app consume.

Cómo funciona

  1. Configuración de la API — al iniciar, el usuario elige el modo (realidad mixta o virtual) e ingresa la URL de la API (recordando las anteriores).
  2. Selección del espacio — la app pide GET /api/buildings y muestra un selector con los espacios disponibles.
  3. Carga del espacio — con GET /api/buildings/{id} descarga el modelo .glb, los nodos y los destinos, y arma el grafo A* (Point Graph).
  4. Calibración (solo realidad mixta) — alinea el modelo del edificio con el espacio real usando el nodo inicial como punto de anclaje.
  5. Navegación — el usuario elige un destino y la app traza la ruta con una línea que lo guía piso a piso.
  6. Información del destino — al llegar, muestra el detalle desde GET /api/destinations/{id}: horario académico (imagen) o de atención (texto + responsable).

Tecnologías

  • Unity + Meta XR SDK (anclas espaciales, passthrough).
  • A Pathfinding Project* (grafo de navegación en tiempo de ejecución).
  • glTFast (carga del modelo .glb descargado desde la API).
  • ProBuilder (modelado del edificio de referencia).

Ejecutable (.apk)

El ejecutable compilado (.apk) para instalar la app en el Meta Quest 3 está disponible en la carpeta de la actividad de titulación en el Drive del grupo, junto al resto de los entregables. Se instala en el visor por sideloading (por ejemplo con SideQuest o adb install navspace.apk), ya que no está publicado en la tienda de Meta.

Requisitos

  • Unity 6000.4.3f1, versión utilizada actualmente por el proyecto.
  • Git LFS, necesario para descargar correctamente los modelos, imágenes y otros recursos de gran tamaño.
  • Meta Quest 3, para utilizar la navegación en realidad mixta, passthrough y calibración mediante anclas espaciales.
  • Una instancia disponible de NavSpace Panel, con la API REST y los datos de edificios, nodos y destinos registrados.
  • Conexión de red entre el dispositivo donde se ejecuta la aplicación y el servidor donde está disponible la API.

Estructura

Assets/Scripts/
  Core/         Integración con la API, carga del .glb y pathfinding
    ApiService, ApiModels, GlbLoader, SpaceService, PathfindingConfigurator
  Navigation/   Rutas y nodos (NavigationController, NavDestination, NavNode)
  UI/           Paneles: selección de espacio, información, horario, ajustes
  Debug/        Herramientas de diagnóstico y medición de rendimiento
Assets/Scenes/SampleScene.unity   Escena principal
Assets/Prefabs/                   Prefabs de tarjetas y filas de horario

Preparación inicial

  1. Clonar el repositorio:

    git clone <URL_DEL_REPOSITORIO>
    cd NavSpace
  2. Instalar Git LFS y descargar los recursos administrados con esta herramienta:

    git lfs install
    git lfs pull
  3. Abrir la carpeta del repositorio desde Unity Hub utilizando Unity 6000.4.3f1.

  4. Esperar a que Unity importe los recursos y restaure los paquetes definidos en Packages/manifest.json.

  5. Abrir la escena principal:

    Assets/Scenes/SampleScene.unity
    
  6. Iniciar el panel de administración y comprobar que su API sea accesible desde el dispositivo donde se ejecutará NavSpace.

Conexión con la API

Al iniciar la aplicación, el usuario selecciona el modo de navegación e ingresa la dirección del servidor de NavSpace Panel. La dirección puede escribirse con o sin protocolo:

navspace-panel.test
https://navspace-panel.test
192.168.1.5:8000
http://192.168.1.5:8000

Pruebas manuales

Antes de registrar una versión estable se recomienda comprobar:

Conexión y carga

  • conexión con una dirección válida de NavSpace Panel;
  • rechazo de direcciones vacías, inválidas o de servidores incompatibles;
  • visualización de los edificios disponibles;
  • descarga correcta del modelo, nodos y destinos;
  • presentación de estados vacíos cuando no existen categorías o destinos.

Navegación virtual

  • generación de la ruta hacia el destino seleccionado;
  • actualización de la guía durante el desplazamiento;
  • detección de llegada al destino;
  • presentación de la información y horario correspondiente;
  • conservación del color, grosor y velocidad configurados.

Navegación en realidad mixta

  • calibración mediante el nodo inicial;
  • alineación del modelo con el entorno físico;
  • estabilidad de las indicaciones durante el recorrido;
  • llegada correcta al destino seleccionado.

Errores de recursos y conexión

  • imagen de edificio no disponible;
  • modelo que no puede descargarse;
  • pérdida temporal de conexión durante una solicitud;
  • edificio sin información suficiente para iniciar la navegación.

Notas técnicas

  • Para pruebas fuera de la red local se puede exponer el panel mediante un túnel y utilizar la URL pública generada.
  • El proyecto permite tráfico HTTP durante el desarrollo para conectarse a servidores disponibles dentro de la red local.
  • Three.js utiliza un sistema de coordenadas derecho y Unity uno izquierdo, por lo que la aplicación corrige el signo del eje X del modelo, los nodos y los destinos.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages