Algoritmo para manipulación de objetos en un robot PR2
Professor Advisor
dc.contributor.advisor
Guerrero Pérez, Pablo
Author
dc.contributor.author
Yon Yon, Ian Alon Francisco
Staff editor
dc.contributor.editor
Facultad de Ciencias Físicas y Matemáticas
Staff editor
dc.contributor.editor
Departamento de Ciencias de la Computación
Staff editor
dc.contributor.editor
Departamento de Ingeniería Eléctrica
Associate professor
dc.contributor.other
Ruiz del Solar, Javier
Associate professor
dc.contributor.other
Simmonds Wagemann, Jocelyn
Admission date
dc.date.accessioned
2016-04-26T20:27:16Z
Available date
dc.date.available
2016-04-26T20:27:16Z
Publication date
dc.date.issued
2016
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/137995
General note
dc.description
Ingeniero Civil en Computación
General note
dc.description
Ingeniero Civil Eléctrico
Abstract
dc.description.abstract
Uno de los desafíos importantes para la Robótica, es la capacidad del robot de manipular objetos de su entorno, ya sea para transportarlos u operarlos de alguna manera. Si bien esta capacidad está prácticamente resuelta en ambientes controlados, es un problema abierto en el caso de robots autónomos y ambientes no controlados, dado que la forma de los objetos, sus características físicas y las cualidades del efector del robot no están acotadas. Como segundo requisito, se busca además que las soluciones sean robustas y funcionen en tiempo real para aumentar las aplicaciones reales de la robótica.
Una de las partes centrales de un algoritmo que permita manipular objetos es la detección de puntos de agarre. Esto corresponde a calcular los puntos del objeto por donde un robot debe tomarlo para que este no se caiga. Existen varios algoritmos que intentan dar solución a esta problemática pero solo funcionan para ciertas familias de objetos y en muchos casos toma demasiado tiempo realizar el cálculo.
En esta memoria se implementó un algoritmo de manipulación de objetos basado en un método del estado del arte. El algoritmo permite manipular objetos en tiempos razonables y no esta restringido a una familia específica de objetos, aunque los objetos manipulables requieren de cierta simetría axial.
El algoritmo se implementó en C++ en un robot PR2, un robot especialmente diseñado para investigación, usando Robot Operating System (ROS) como framework de desarrollo, lo que permitirá que este algoritmo sea usado fácilmente por otros equipos de investigación y robots en diferentes partes del mundo.
El algoritmo implementado consta de una etapa de filtrado y segmentación de una nube de puntos, la determinación de los puntos de agarre, muestreo de poses de agarre, descarte de éstas por diferentes criterios, la asignación de puntaje a los agarres y finalmente la ejecución del mejor agarre seleccionado.
Los experimentos muestran que el algoritmo permite tomar objetos en simulación y en un robot PR2 real.