TAZ-TFG-2018-2876


Optimización de memoria y tiempo de ejecución de ORB-SLAM2

Luesia Lahoz, Pablo
Tardós Solano, Juan Domingo (dir.)

Universidad de Zaragoza, EINA, 2018
Informática e Ingeniería de Sistemas department, Ingeniería de Sistemas y Automática area

Graduado en Ingeniería Informática

Abstract: ORB-SLAM2 es una librería software desarrollada por el grupo de robótica y tiempo real de la Universidad de Zaragoza que permite calcular en tiempo real la trayectoria seguida por un agente (un robot, un vehículo autónomo, un dron, etc.), mientras construye un mapa del entorno, a partir de las imágenes obtenidas por una cámara embarcada en el agente. El objetivo de este trabajo es optimizar la librería en uso de memoria y tiempo de ejecución, y extenderla con funciones de almacenamiento de mapas. Se ha realizado un análisis de la ocupación en memoria y se ha comprobado que aumenta a medida que la cámara explora el entorno y el mapa va creciendo. Sin embargo, también se ha observado que, aunque el algoritmo elimine elementos del mapa por considerarlos redundantes, la ocupación en memoria no disminuye. Se ha implementado el uso de punteros inteligentes para los elementos del mapa, sin que la situación mejore. La conclusión es que hay una elevada fragmentación de la memoria, y aunque los datos desechados se eliminen correctamente, el sistema no es capaz de reutilizar la memoria liberada. Sería necesario un rediseño completo de las estructuras de datos del mapa, que queda fuera del alcance de este trabajo. Para el reconocimiento de lugares ORB-SLAM2 utiliza un método de bolsa de palabras, en el que los puntos de interés de cada imagen se pasan por un árbol de vocabulario para convertirlos en palabras visuales. Para optimizar esta parte, se ha implementado el árbol mediante una estructura de datos implícita, asegurando su contigüidad en memoria. Con ello se ha disminuido drásticamente el tiempo de carga del vocabulario desde disco, su ocupación en memoria, y el tiempo de recorrido del árbol, gracias, en parte, al mejor aprovechamiento de la caché del procesador. La librería se ha extendido con funciones de almacenar mapas en disco y cargarlos en otra ejecución, utilizando para ello la librería Boost. Con este cambio se permite compartir mapas entre distintas ejecuciones o incluso entre distintos sistemas. Esta extensión abre nuevas vías de trabajo futuro sobre esta librería, como mapeo de entornos multi-sesión o con varios agentes en paralelo. Como baterías de prueba para comprobar el correcto funcionamiento del sistema, así como para calcular las prestaciones obtenidas, se han utilizado las secuencias de imágenes KITTI y EUROC, proporcionadas por la comunidad robótica.

Tipo de Trabajo Académico: Trabajo Fin de Grado

Creative Commons License



El registro pertenece a las siguientes colecciones:
Academic Works > Trabajos Académicos por Centro > escuela-de-ingeniería-y-arquitectura
Academic Works > End-of-grade works



Back to search

Rate this document:

Rate this document:
1
2
3
 
(Not yet reviewed)