Documente Academic
Documente Profesional
Documente Cultură
Revista Colombiana de
Tecnologas de Avanzada
NUEZ TORRES Manuel J1, LEN CARLOS Fredy H1, CARDENAS Pedro F2.
Abstract: In this paper a brief introduction to operating systems for robots, the concept of
ROS, philosophy which it pursued, the facilities and the current perspective in different
fields. Besides a short introduction to the method of operation and necessary elements
that compose it. Continue, Implementing a basic example simulating a sensor on this
platform, and also, a practical application of many tools that ROS provides in the
integration of serial manipulator 5 DOF to the robots supporting for this system.
Resumen: En el presente trabajo se hace una breve introduccin a los sistemas operativos
para robots, el concepto de ROS, la filosofa que persigue, las facilidades que ofrece y la
perspectiva actual en diferentes mbitos. Adems, se hace una pequea introduccin a la
forma de funcionamiento y necesariamente a los elementos que la componen. Se expone
un ejemplo bsico implementando la simulacin de un sensor en esta plataforma, y
tambin, una aplicacin prctica de muchas de las herramientas que proporciona ROS en
la integracin de un manipulador serial 5 DGL a la serie de robots que ya soporta este
sistema.
1
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
etctera-(Jones et al 2004). Los MRS son una funcionalidades y hacerlos robustos y maleables
forma particular de los sistemas multi-agente mediante una serie de bibliotecas, drivers y
(MAS) centrados en reactividad, colectividad y herramientas que como parte de un MRS, le
cooperacin para cumplir con tareas de forma apuestan a la modularidad para ayudar a los
que los sistemas sean ms robustos, modulares y desarrolladores. En el sistema se pueden
confiables. desarrollar paquetes completos por expertos en
Existen mltiples plataformas de este tipo con diferentes materias que pueden ser conjugados en
dedicacin a cierta clase de tarea o robot, por la construccin de un proyecto de gran
citar algunas: esta ALLIANCE que es un envergadura.
framework para agentes heterogneos MRS En ROS cada mdulo posee autonoma, de
(Parker 1998); SAMON para trabajos con AUV forma similar a lo que sera la comunicacin de
(autonomus underwater vehicles); sistemas varios computadores en una red LAN, o en
colaborativos para ftbol de robots; USARSim internet en una topologa punto a punto, cada
para el estudio de tareas colaborativas en USAR mdulo interacta con los otros; esto quiere
(urban search and rescue); EL framework decir, que todo se hace mediante mensajes
MARTe centrado en el desarrollo de aplicaciones enviados de acuerdo a un protocolo, en este caso
colaborativas en tiempo real (Farinelli et al el XML-RCP, que es un sistema basado en la
2004); MASON presentada como una biblioteca publicacin y registro (Arumugam et al 2010).
para simulacin de multiagentes en java1; El uso de este protocolo con amplio soporte
SMART (Garca et al 2013), para trabajo con facilita que ROS sea una plataforma
hardware y desarrollo basado en multi-agentes; multilenguaje donde se puede programar
ROS (Robotic operating system), en el cual se primeramente en C++, Python y actualmente en
hace nfasis en las siguientes pginas y muchos Octave, LISP y hasta java. Pero ROS no se
ms. queda all, sino que hace uso del protocolo
ROS se convirti en uno de los sistemas pionero TCP/IP para generar un esquema cliente
en MRS. Podra decirse que con el objetivo de servidor, cuyo principal servidor es el ncleo de
hacer de la aplicacin de la robtica un conjunto ROS, cada nodo tiene una direccin y existe la
de herramientas colaborativas intenta hacerse posibilidad de ofrecer y solicitar servicios
universal, todo a partir de su flexibilidad. El (Quigley et al 2009).
sistema incluye variadas plataformas, lenguajes, Por ltimo pero no menos importante, cabe
compiladores, y paquetes de aplicaciones destacar que el proyecto ROS esta presentado
desarrolladas por mltiples investigadores, bajo licencia BSD, que permite su uso para
empresas y fanticos de la robtica para que desarrollos tanto comerciales como no
otros las puedan usar y lo mejor, modificar y comerciales (Cousins 2012), reduciendo la
crear nuevas y mejoradas opciones. ROS se inversin y fomentando el uso tanto por
convierte entonces en un sistema realimentado desarrolladores independientes como por
continuamente, que de acuerdo a los datos crece empresas, dndole un enfoque cientfico pero
de manera exponencial en prestaciones y aplicado.
popularidad en 5 aos ha pasado a tener ms de Por la estructura, ROS permite una
3000 paquetes de aplicaciones y a ser usado en implementacin distribuida de elementos tan
casi 60 plataformas robticas industriales y de sencillos o complejos como el desarrollador
investigacin2-. desee crear; acopla componentes externos -
OpenCV, Eigen, Gazebo, Player, etc- (Gerkey et
2. ROS ROBOT OPERATING SYSTEM. al 2003) en una red completamente funcional, y
reduce as, en principio, los problemas de
Aunque su nombre es la sigla para sistema interaccin de herramientas a los desarrolladores,
operativo, en realidad ROS es un meta-sistema permitindoles concentrarse en la verdadera
operativo, ya que aunque ofrece las funciones de innovacin.
un sistema operativo debe ser instalado sobre la El ncleo de ROS facilita el manejo de
base de otro sistema operativo -basado en UNIX- excepciones facilitando la depuracin del cdigo;
. Las funcionalidades que ofrece van desde la simplifica el manejo del trfico de mensajes;
abstraccin de hardware de bajo nivel para permite flexibilidad para asignar relevancia a los
control de dispositivos, hasta el paso de mensajes; crea sincronizacin entre elementos
mensajes entre procesos (Quigley et al 2009). mediante sistemas de escucha y espera con
El objetivo de este sistema operativo es actualizaciones constantes (Nguyen et al 2013).
simplificar la tarea de crear cualquier robot En pocas palabras se puede describir como la
imaginable, entregar facilidades para darles interaccin de mltiples hilos de comportamiento
dinmico.
1
Ms informacin en la pgina de la plataforma
http://cs.gmu.edu/~eclab/projects/mason/
3. COMPONENTES DE ROS
2
Datos en http://.ros.org/
2
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
3.5. Paquete
3.3 Mensaje
4. FUNCIONAMIENTO DE ROS
Fig. 2. Esquema de Mensajes
Luego de creado un paquete y de que se han
definido varios nodos dentro del mismo -nodos
3
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
..\ROB1
| CMakeLists.txt
| package.xml
+---msg
| Muestra.msg
| Sensor_Mode.msg
+---src
| sensor.py
4
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
6. IMPLEMENTACIN DE UN ROBOT
SERIAL
5
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
Nodos especficos para cada motor, que Fig. 9. Esquema de la red para el manipulador
convierten las instrucciones llegadas del resto
de la red en instrucciones de movimiento para En la wiki de ROS6 existe informacin sobre
cada servomotor, en el estndar de los algunos paquetes que ya se han desarrollado que
motores, que son enviadas por el bloque de han facilitado estas tareas, entre ellos est el
nodos Dynamixel. paquete tf que proporciona algunas herramientas
para realizar clculos de cinemtica en cuanto a
marcos de referencia se refiere; otra herramienta
La cinemtica del robot se encuentra
es el paquete dinamixel_motor que incluye
implementada por completo, por lo que se algunas funciones de manipulacin de los
incluyen nodos de funciones que generan motores que posee la planta; entre otros.
clculos de cinemtica directa, cinemtica
inversa y Jacobianos. 5. AGRADECIMIENTOS
A la Universidad Nacional De Colombia, A Travs
Por otro lado para poder obtener todas las De Las Vicerrectora de Investigacin.
PROGRAMA DE FORTALECIMIENTO.
variables de inters de acuerdo al nivel de
PROGRAMA NACIONAL DE SEMILLEROS DE
control deseado, se tiene un bloque destinado INVESTIGACIN, CREACIN E INNOVACIN
a los estimadores, donde se incluyen nodos DE LA UNIVERSIDAD NACIONAL DE
como por ejemplo los filtros Kallman. COLOMBIA 20132015. Proyecto 18344 ROBOT A
ESCALA TIPO INDUSTRIAL
Otra parte gestiona la manera en la que el
6. CONCLUSIONES
robot se mueve (Motion control). En esta
seccin se han contemplado bloques con ROS se visualiza como una herramienta que
nodos para la planeacin de trayectorias, los permite el avance profundo en los proyectos, que
interpoladores, e incluso splines. fomenta la interaccin entre grupos de
investigacin y que de acuerdo a la situacin
Para encargarse la interaccin de todas estas actual est acoplando la investigacin acadmica
partes, se usan nodos dentro de un bloque de e industrial.
control. El bloque comunica directamente a
los nodos motores los resultados de todos los An existen debilidades en ROS que se pueden
procesos internos, interactuando con nodos minimizar con el tiempo. Cabe mencionar, la
falta de un estndar para todo el software que se
que hacen parte del bloque controlador, cuya
va implementando; integrar aplicaciones y
funcin es administrar los nodos
aprender a usar todas estas herramientas necesita
relacionados con la forma de movimiento. de un periodo de tiempo amplio, soporte para
todos los sistemas operativos, entre otras.
Por ltimo, existen unos nodos que
corresponden a la visualizacin en una Como lo demuestran los casos prcticos, ROS
interfaz grfica de la simulacin de la planta permite realizar desde las aplicaciones ms
en tiempo real, todos incluidos en el bloque bsicas, que pueden ir desde la simple
interfaz. simulacin de un proceso, hasta aplicaciones
completas que incluyan todas las herramientas
que se espera tener cerca, cuando se usa un robot,
y lo que es an mejor mltiples plataformas.
6
http://wiki.ros.org/
6
Universidad de Pamplona
ISSN: 1692-7257
Revista Colombiana de
Tecnologas de Avanzada
Una implementacin como la expuesta con el Technology, Tesis para el grado de Master
robot serial facilita que luego se puedan iniciar del departamento de Informtica,
nuevas investigaciones sobre la misma Universidad de Hamburgo, Hamburgo,
aplicacin, con un mayor nivel de profundidad y Alemania
en temas tan variados como la colaboracin, Quigley M., G. B., C. K., F. J., F. T., L. J., B. E.,
control, optimizacin y un largo etctera. W. R., N. A. (2009), ROS: an open-source
Robot Operating System, Computer Science
Department, Stanford University, Stanford,
REFERENCIAS CA.
Tosco S., C. F., B. M., (2012), implementacin
Arumugam R., E. V., B. L., X. W., K. K., K. S., de un esquema de teleoperacin utilizando
(2010), M. K., K. G., DAvinCi: A Cloud el sistema operativo ros en el contexto de un
Computing Framework for Service Robots, laboratorio remoto, Mecnica
IEEE International Conference on Robotics Computacional Vol XXXI, Salta,
and Automation. Argentina.
Cousins S., (2012). Is ROS Good for Robotics;
IEEE Robotics & Automation Magazine.
Farinelli A., I. L., N. D., (2004), Multi-Robot
Systems: A classification focused on
coordination, IEEE Transactions on System
Man and Cybernetics, part B.
Garca C., C. P., S. R., P. L., (2013), A
cooperative multi-agent robotics system:
Design and modelling, artculo en Experts
Systems with applications, Science Direct.
Gerkey B., V. R., A. H., (2003), The
Player/Stage Project: Tools for Multi-Robot
and Distributed Sensor Systems,
Proceedings of the International Conference
on Advanced Robotics (ICAR)., Coimbra,
Portugal.
Hevia-Koch P., (2012), implementacin de
middleware ROS para robot de servicio,
Universidad de Chile, Facultad de ciencias
fsicas y matemticas, departamento de
ingeniera elctrica, Santiago de Chile,
Chile.
Hold-Geoffroy. Y., G. M., G. C., L. M., G. P.,
(2013), ros4mat: A Matlab Programming
Interface for Remote Operations of ROS-
based Robotic Devices in an Educational
Context, international Conference on
computer an d Robot Vision.
Jones C., S. D., M. M., G. B., (2004), Principled
Approaches to the Design of Multi-Robot
Systems, Proc. Workshop on Networked
Robotics, IEEE/RSJ Intl. Conf. on
Intelligent Robots and Systems (IROS-04),
Sendai, Japn.
Nguyen H., C. M., H. K., K. C., (2013), ROS
Commander (ROSCo): Behavior Creation
for Home Robots, ICRA.
Parker, L., (1998), ALLIANCE: An Architecture
for Fault Tolerant Multi-Robot
Cooperation, IEEE transactions on robotics
and automation, vol. 14, no. 2.
Rockel S., (2011), A Multi-Robot Platform for
Mobile Robots with Multi-Agent
7
Universidad de Pamplona