ROS: el sistema operativo para robótica

ROS, Robótica

La robótica es un campo en expansión. Cada vez la IA y los robots sustituyen el trabajo de más personas. Son el presente y el futuro, por lo que es importante formarse en este tipo de campos para saber cómo funcionan éstos y qué herramientas y sistemas tienes a tu disposición para tus proyectos de robótica. Y, en este artículo, podrás ver qué es ROS y todo lo que debes saber sobre él.

¿Qué es ROS?

ingeniería robótica

ROS son las siglas de Robot Operating System, o sistema operativo robot. Se trata de un middleware para robótica, es decir, una colección de frameworks destinados a facilitar el desarrollo de software para robots. Actualmente, es muy empleado en robots conocidos, siendo una de las mejores herramientas existentes en la actualidad, totalmente gratuita, escrito en C y Python, y bajo licencia de código abierto BSD.

ROS fue desarrollado originalmente en 2007, dentro del Laboratorio de Inteligencia Artificial de Stanford, y bajo el nombre clave Switchyard. En un inicio sería para el proyecto del robot STAIR2. Después de esto, se decidió abrir.

Una pregunta que se suelen hacer muchos es, si no es un sistema operativo, por qué se llama así. Pues bien, aunque se trata de una suite de bibliotecas para el desarrollo, lo cierto es que aporta algunos de las funciones esenciales de un SO, como puede ser una capa de abstracción del hardware para que los desarrolladores solo se preocupen del software, control de los diferentes componentes del robot a bajo nivel, capacidad de gestión y comunicación de procesos, mantenimiento de paquetes, etc.

La biblioteca está orientada a sistemas UNIX, como Linux (en múltiples distros, aunque el mejor soporte está para Ubuntu) y macOS, aunque también funciona en otros sistemas operativos como Microsoft Windows.

Es importante también diferenciar entre las partes de ROS:

  • ros: es la parte que actúa como sistema operativo, la base. Esta es la parte de software bajo licencia BSD. Aquí se incluyen el nodo principal de coordinación, flujos de datos (imágenes, estéreo, láser, cotnrol, actuadores, contacto, …), multiplexado de información, creación y destrucción de nodos, login, etc.
  • ros-pkg: es la suite de paquetes creados por los usuarios y que implementan funcionalidades como planificación, percepción, simulación, mapeo, localización, etc. Estos otros componentes están licenciados en licencias muy variadas.

Las herramientas incluidas en ROS son:

  • rviz: para simulación y visualización 3D.
  • rosbag: para grabar y reproducir mensajes de comunicación.
  • catkin: herramienta de compilación, basada en CMake.
  • rosbash: paquete con herramientas para ampliar las funciones del shell bash.
  • roslaunch: para ejecutar nodos ROS de forma local o remota.

Documentación del proyecto aquí

Aplicaciones de ROS

robots, estudiantes ROS

ROS es un proyecto en constante desarrollo, y cada vez se puede emplear para más aplicaciones dentro del campo de la IA y la robótica, y cada vez realiza su trabajo mejor:

  • Sistemas de percepción artificial.
  • Identificación de objetos y visión artificial.
  • Reconocimiento facial, de gestos, etc.
  • Seguimiento de objetos.
  • Odometría visual.
  • Comprensión de movimientos.
  • Visión estéreo.
  • Movilidad de los robots.
  • Control.
  • Planificación.
  • Agarre de objetos.
  • Coordinación.
  • Testeo.
  • Etc.

Ejemplos de robots que emplean ROS

Son muchos, y sería complicado listarlos a todos, ya que ROS se ha transformado en casi un «estándar» para muchos de ellos. Pero algunos de los más conocidos son:

  • PR1: robot personal desarrollado por el laboratorio Ken Salisbury en Stanford.
  • PR2: robot personal que está siendo desarrollado por Willow Garage.
  • Baxter:  robot de Rethink Robotics, Inc.
  • Robot de Shadow: una mano robótica de la compañía Shadow Robot, en colaboración con la Universidad Pierre y Marie Curie de París y la Universidad Carlos III de Madrid.  Desarrollada dentro de un marco europeo.
  • HERB: creado en CMU dentro del programa de robótica personal de la corporación Intel.
  • Aldebaran Nao: un robot humanoide creado por Humanoid Robots Labs y la Universidad de Freiburg.
  • Husky UGV: un vehículo de tierra y código abierto.

¿Por qué debería aprender con ROS?

ingeniería robótica, brazo robot industrial

Los robots son sistemas complejos y la robótica es complicada de comprender. Sin embargo, disponer de herramientas como ROS facilita mucho el desarrollo desde cero, acelerando la creación de tus propios proyectos en mucho menos tiempo y sin tantos conocimientos como si no dispusieses de él.

Es decir, las ventajas de ROS es facilitar el camino a los desarrolladores, con multitud de complementos gratuitos y de código abierto, de manera que dispondrás de todo lo necesario. Además, vas a aprender algo más que robótica, también electrónica, mecánica y programación:

  • Emplear lenguajes como C++ y Python para desarrollar apps.
  • Administración de redes y sistemas para instalar y mantener ROS.
  • Conceptos básicos de robótica como el mapeo, IA, localización, cinemática inversa, etc., pudiendo poner en contacto los sensores, actuadores, controladores, etc.

No importa la complejidad del robot, con ROS es todo mucho más sencillo. Tampoco limita a un tipo de robot, puede servir desde robots mascotas, hasta robots humanoides, pasando por brazos robóticos para industria…

Más información de ROS – Web oficial


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.