ROS: el framework de la robótica.

por Ricardo Vega el 09/05/2017

¡Hola!

Sois muchos los que habéis mostrado interés en saber algo más sobre lo que fue mi Trabajo Fin de Máster así que voy a dedicar alguna entrada más al respecto. Concretamente hoy, vamos a hablar de la tecnología que empleaba para comunicarme con el robot. Dicha tecnología es todo un estándar en la industria y el mundo académico: ROS.

ROS (Robot operating System) es un framework flexible que persigue facilitar el desarrollo de software específico para robots. A través de una colección de herramientas librarías y convenciones, simplifica notablemente la tarea de crear comportamientos robóticos complejos y robustos, soportando una amplia variedad de plataformas robóticas.

ROS.

El proyecto, licenciado bajo una licencia libre Creative Commons intenta simplificar la complicada tarea de crear software específico para robots. Este es el motivo de su creación y desarrollo.

Si alguna vez has programado un robot, te habrás dado cuenta lo acoplado que está el código al robot que estás desarrollando, siendo muy complicado migrar fragmentos ya desarrollados en un robot X a otro distinto Y. El motivo no es otro que el uso de SDK (librerías de desarrollo) específicas para el robot, sin ninguna capa de abstracción por encima que sirva de pegamento.

Precisamente, ROS busca aportar esta estandarización de forma que tareas cuya operativa variaba considerablemente entre diferentes plataformas tienen ahora un marco común y una interfaz única. Gracias a esta aproximación, el proyecto está conseguiendo democratizar el acceso a la robótica ya que gracias a las abstracciones que provee, dota al programador de un entorno más sencillo para programar la lógica deseada, lo que sin duda reduce las barreras de entrada.

El proyecto no oculta su intención de servir como "background" para el desarrollo de software robótico colaborativo. De esta forma, animan a realizar cualquier aportación al mismo de forma que expertos de diferentes ámbitos pueden dotar de pequeñas utilidades que en su conjunto cubran un rango ámbito de aplicación. De hecho, este modelo colaborativo ha dejado su huella en la comunidad y no es raro encontrarnos con el logotipo de ROS en numerosos proyectos de universidades y empresas privadas que bien emplean ROS y/o aportan nuevos módulos a la comunidad a través de sus investigaciones.

En el caso específico de aplicación que emplee en el TFM, realmente no desarrollamos nada nuevo con ROS (o para él) sino que su uso se redujo simplemente a dejar configurado nuestro sistema domótico para que pueda comunicarse con ROS. Concretamente, ROS es el nexo en común entre nuestro sistema domótico y el robot antropomorfo que ya se encuentra funcionando en el lugar de la instalación aportando diferentes servicios tanto a los residentes como a los empleados.

La elección de ROS vino impuesta por los propios objetivos del proyecto al estar éste ya implementado en el robot antropomorfo con el que deseábamos interactuar, sin embargo, si hubiéramos tenido más libertad de elección, el resultado seguramente hubiera sido el mismo ya que ROS, como hemos dicho, es prácticamente el estándar en el entorno (académico y productivo) del proyecto.

Robótica.

Recuerda que mi TFM está basado en OpenHAB y por tanto, mi desempeño en este trabajo respecto a ROS se limita a la interconexión de OpenHAB a ROS, pudiendo configurar diferentes reglas lógicas en OpenHAB que disparen acciones en uno u otro elemento de la comunicación. Por supuesto, este no tiene que ser tu caso y puedes querer integrarlo con otro sistema. La verdad es que no creo que tengas excesivos problemas, puesto que la popularidad de ROS es tal que es fácil encontrar plugins, puentes, drivers u otros conectores que permitan su integración en los principales productos del mercado, ya sean plataformas abiertas o comerciales.

En mi proyecto, los objetivos de la integración eran permitir usos avanzados del sistema al ser combinado con el robot y la interacción física que este permite. Por ejemplo, esta interconexión permitió relacionar alarmas técnicas del sistema con actuaciones concretas de un robot. Así, si detectáramos a través del sistema domótico que un residente desorientado salía de su habitación y se dirigía hacia la puerta de salida del Centro podíamos, aparte de activar la correspondiente alarma en el centro de control, enviar al robot para acompañar al residente de nuevo a su habitación, o al menos bloquear la salida hasta que el personal humano llegue.

Esta clase de interacciones físicas aportan un grado de integración mucho mayor del sistema en la vida de los residentes. Ya no sólo es una especie de "Minority Report" que esté funcionando por debajo de forma invisible sino que tiene un elemento físico claro que permite "ponerle cara" al sistema.

Creo que cada vez esta clase de casos serán más comunes y su integración con bots inteligentes de conversación (los famosos chatbots) provocará que en unos años la interacción directa con esta clase de robots sea relativamente común. ROS permite que la programación de robots sea mucho más sencilla y la reutilización de componentes se convierta en una realidad también en la robótica. Por tanto, creo que cada vez vamos a oir más escuchar de él.

¿Has tenido la oportunidad de trabajar alguna vez con ROS?

¡Saludos!

Apoya al blog


Si te ha gustado este artículo, valora apoyarme económicamente a través de Patreon, una plataforma de Micro-mecenazgo con la que puedes hacerme un donativo que ayude a la continuidad del blog. Una pequeña ayuda significa mucho. 😃

Deja tu comentario!

Permanezcamos en contacto!


¿Quieres enterarte de todas las novedades del sector? ¿Te gustaría trabajar conmigo? ¡Puedes contactar conmigo de forma muy sencilla!