5. Resultados 13
5.5. Quinto Prototipo: Funcionalidad de órdenes secuenciales
5.5.4. Evaluación final
Tras la implementación de este prototipo, hemos finalizado este capítulo, y por consiguiente, con el desarrollo nuestra aplicación web.
CAPÍTULO 6
CONCLUSIONES
En este capítulo se realizará un juicio crítico y discusión sobre los resultados obtenidos, repasando los objetivos planteados en el capítulo2y determinar cuáles han sido logrados. Además, se indicarán propuestas de trabajo futuro que no han sido llevadas a cabo en este proyecto ya que se quedaban fuera del alcance del mismo.
6.1. OBJETIVOS REALIZADOS
El objetivo de este proyecto es la creación de una aplicación que permita controlar de forma remota el Turtlebot2, otorgándole órdenes que permitan marcar su movimiento y seguir rutas y comporta- mientos predefinidos, obteniendo información a través de sus sensores.
Los objetivos específicos son los siguientes:
O1. Instalación, configuración y puesta a punto de la máquina soporte, del robot y su sistema operativo ROS Kinetic:
Se ha realizado la configuración del servidor que aloja la aplicación web, instalando en él los paquetes correspondientes al sistema operativo ROS. Una vez instalados, se ha realizado la configuración de todos los elementos necesarios para garantizar la comunicación entre el Turtlebot2 y el servidor. Para finalizar, se ha realizado una prueba de conexión entre ambas máquinas, continuando con una prueba de movimiento del Turtlebot2 mediante órdenes desde el servidor.
O2. Diseño e implementación de la interfaz de control remota del Turtlebot2:
Se ha realizado la instalación base de Ruby y Ruby on Rails para desarrollar la aplicación web de control remoto, y se ha implementado la aplicación elfrontendde la aplicación, que permite al usuario acceder a las funcionalidades.
O3. Diseño e implementación del backend de control:
Se ha implementado elbackend de la aplicación, que traduce las instrucciones y órdenes del usuario en órdenes y comandos que se envían al Turtlebot2, mostrando el resultado y la información recibida al usuario por pantalla.
O4. Diseño de la herramienta de gestión de mapeado:
Se ha creado una funcionalidad dentro de la aplicación que permite generar mapas y descargar toda su información en un fichero Zip.
Habiendo cumplido todos los objetivos planteados, realizaremos la justificación de las competen- cias específicas abordadas en este proyecto, agrupadas en laTabla6.1:
56 6.2. ESTIMACIÓN DE COSTES
Tabla 6.1:Justificación de competencias ID Competencia Resumen
C1 Capacidad para analizar, evaluar, seleccionar y configurar platafor- mas hardware para el desarrollo y ejecución de aplicaciones y ser- vicios informáticos
C2 Capacidad de diseñar e imple-
mentar software de sistema y de comunicaciones.
C3 Capacidad para analizar, evaluar, seleccionar y configurar platafor- mas hardware
Para la justificación de las compentencia C1 y C2, se ha realizado el desarrollo de los objetivos O1 y O2, es decir, se ha realizado la instalación, configuración y puesta a punto del sistema operativo ROS, del lenguaje Ruby y del framework Ruby on Rails en el servidor, para comunicar la aplicación con el Turtlebot2.
Para la justificación de la compentencia C3, se ha realizado el diseño y la implementación de la aplicación web de control remoto y sus funcionalidades y aplicaciones internas: Esto significa que esta competencia se defiende con los objetivos O2, O3 y O4.
6.2. ESTIMACIÓN DE COSTES
En este apartado se mostrará un pequeño presupuesto indicando las horas invertidas para investiga- ción, diseño e implementación de cada prototipo. El coste de las horas se ha calculado teniendo en cuenta que una hora de trabajo equivale a 50€.
Tabla 6.2:Estimación de horas y costes
ID Prototipo Nº Horas Coste(€)
Prototipo 1 124 6200
Prototipo 2 160 8000
Prototipo 3 140 7000
Prototipo 4 40 2000
Prototipo 5 160 8000
Total 624 31200
Además, en la siguiente tabla se encuentra recogido una estimación de los costeshardwarede los elementos usados en el proyecto:
Tabla 6.3:Estimación de costes hardware
Elemento Coste(€)
Robot Turtlebot2 649 Cámara Orbbec Astra 149
Intel NUC 90
MSI Leopard GP62M 1065,59
Total 1953,59
CAPÍTULO 6. CONCLUSIONES 57
6.3. PROPUESTAS DE TRABAJO FUTURO
En este apartado se recogerán las nuevas ideas que han ido surgiendo a lo largo del desarrollo de este proyecto, pero que han sido descartadas y no implementadas por quedarse fuera del alcance del mismo. A continuación se enumeran las distintas funcionalidades que se podrían implementar:
Implementar un control de acceso a la aplicación mediante identificación de usuario, mediante usuario o alias y contraseña, para saber quién está usando el Turtlebot, manteniendo un registro de acceso a la aplicación.
Implementar un registro de órdenes ejecutadas por cada usuario.
Mejorar la visualización de la cámara.
Añadir una mejora de la visualización del mapeado, incluyendo la posición actual del Turtlebot2 en el mismo.
Implementar un sistema de comunicación entre usuarios de la aplicación mediante mensajes, peticiones u observaciones.
Incluir algún algoritmo de cifrado para proteger las contraseñas, tanto de usuarios como de robots.
Implementar detección de colisión del Turtlebot2 en la aplicación.
BIBLIOGRAFÍA
[1] Oscar Blancarte.Patrón de diseño Modelo Vista Controlador (MVC). 2014. url:https://www.
oscarblancarteblog . com / 2014 / 07 / 21 / patron - de - diseno - modelo - vista - controlador - mvc/
(visitado 12-06-2019).
[2] Barry Burd.Ruby on Rails for Dummies. 2007. isbn: 978-0-470-08120-4.
[3] Henry Carrillo Cesar Cardena Luca Carlone y Yasir Latif.Past, Present, and Future of Simulta- neous Localization And Mapping: Towards the Robust-Perception Age. 2005.
[4] Scott Chacon y Ben Straub.Pro Git. 2019. isbn: 978-1-4842-0076-6.
[5] Michael James Fitzgerald.Learning Ruby. 2007. isbn: 978-0-59-652986-4.
[6] Yvonne Jenny Preece y Helen Sharp Rogers.Interaction Design: Beyond Human-Computer Interaction. 2002. isbn: 978-1-119-02075-2.
[7] Jason Matthew OKane.A Gentle Introduction to ROS. 2018. isbn: 978-14-92143-23-9.
[8] Santiago Ponce Moreno.Ruby on Rails. Desarrollo práctico de aplicaciones web. 2.aed. 2013.
isbn: 9788494127274.
[9] Go Rails.Install Ruby On Rails on Ubuntu 16.04 Xenial Xerus. url:https://gorails.com/setup/
ubuntu/16.04#ruby(visitado 13-03-2019).
[10] Sebastian Thrun, Wolfram Burgard y Dieter Fox.Probabilistic Robotics. Cambridge, 2005. isbn:
0262201623.
[11] Alfredo Weitzenfeld Ridel.Ingeniería de Software Orientada a Objetos con UML, Java e Internet. 2005. isbn: 9789706861900.
[12] ROS Wiki.Creating a workspace for catkin. url:http://wiki.ros.org/catkin/Tutorials/create_a_
workspace(visitado 16-03-2019).
[13] ROS Wiki.Moving in a Straight Line. url:http://wiki.ros.org/turtlesim/Tutorials/Moving%
20in%20a%20Straight%20Line(visitado 18-03-2019).
[14] ROS Wiki.Rotating Left/Right. url:http://wiki.ros.org/turtlesim/Tutorials/Rotating%20Left%
20and%20Right(visitado 25-03-2019).
[15] ROS Wiki.Ubuntu install of ROS Kinetic. url:http://wiki.ros.org/kinetic/Installation/Ubuntu (visitado 06-03-2019).
[16] ROS Wiki.Web Video Server. url:http://wiki.ros.org/web_video_server(visitado 21-05-2019).