Sistema de recomendación de expertos para ROS Answers

Memoria para optar al título de Ingeniero Civil en Computación === ROS (Robot Operating System), es un framework para escribir software para robots. Con una colección de herramientas, librerías y convenciones que tienen como objetivo simplificar la tarea de crear comportamiento complejo y robusto pa...

Full description

Bibliographic Details
Main Author: López Pino, Braulio Enrique
Other Authors: Simmonds Wagemann, Jocelyn
Language:es
Published: Universidad de Chile 2019
Subjects:
Online Access:http://repositorio.uchile.cl/handle/2250/170908
Description
Summary:Memoria para optar al título de Ingeniero Civil en Computación === ROS (Robot Operating System), es un framework para escribir software para robots. Con una colección de herramientas, librerías y convenciones que tienen como objetivo simplificar la tarea de crear comportamiento complejo y robusto para robots. ROS promueve la colaboración entre grupos en el desarrollo de software. Por esto, provee herramientas y librerías open source creadas por su comunidad que son alojadas en su mayoría en Github. Desarrollar software para robots involucra profesionales de distintas disciplinas que se enfocan en temas específicos. La ventaja de usar ROS, es que facilita herramientas que usuarios pueden usar sin la necesidad de especializarse en ellas para saber cómo funcionan. Es decir, por simplicidad, es una caja negra que recibe entradas y produce salidas. El problema ocurre cuando una herramienta no funciona como los usuarios creen, dado que fue desarrollada por especialistas en otros temas, entonces no tienen conocimiento suficiente para solucionar su problema. Es entonces cuando los usuarios recurren a ROS Answers, una plataforma de preguntas y respuestas. Dado que las preguntas publicadas en ROS Answers tratan temas específicos a las herramientas en sí, es importante encontrar a una persona que pueda guiar a quienes no tienen conocimiento sobre esos temas. Actualmente en ROS Answers, al igual que en StackOverflow \cite{site:StackOverflow}, las preguntas son organizadas según tags o tópicos, y cada usuario puede dar un voto positivo o negativo a una pregunta o respuesta, dependiendo de si cree que un aporte es útil o no. Estos votos en las preguntas y respuestas de un usuario, más su historial de participación dentro de esa comunidad, es la única información disponible para identificar si un usuario domina un tema, y por ende confiar en su respuesta. ROS y ROS Answers forman un ecosistema de software. Un ecosistema, es una colección de sistemas de software, que se desarrollan y evolucionan en un mismo ambiente, en este caso el ambiente es la comunidad de robótica open source. Sin embargo, falta considerar una parte importante de este ecosistema, Github. Este posee información relevante sobre la experiencia y conocimiento de usuarios que han colaborado a la comunidad, no sólo respondiendo preguntas, sino también participando activamente en el desarrollo de las herramientas que componen cada una de las distribuciones de ROS. En esta memoria se presenta una herramienta desarrollada para obtener información de usuarios de Github y ROS Answers (plataforma de preguntas y respuestas), se implementa un algoritmo de recomendación de usuarios para responder una pregunta en ROS Answers, y por último se crea un verificador para evaluar localmente el algoritmo, utilizando preguntas ya respondidas en ROS Answers. También se logra verificar la correctitud del algoritmo implementado realizando una encuesta web a usuarios de ROS Anwers, donde se consulta sobre su conocimiento para responder preguntas sobre temas que el algoritmo sugiere que ellos manejan. Este trabajo está abierto a futuras extensiones, como por ejemplo, incluir más algoritmos.