¿Qué es ROS?

El sistema operativo para robots es un marco de trabajo de código abierto utilizado para escribir software para robots. Se compone de una colección de herramientas y librerías compatibles con un amplia variedad de plataformas robóticas. Aunque ROS no es un sistema operativo como tal, proporciona servicios como la abstracción del hardware, control de dispositivos de bajo nivel, implementación de funcionalidades de uso común, comunicación entre procesos y administración de paquetes, además cuenta con funcionalidades de alto nivel como llamadas síncronas y asíncronas, bases de datos centralizadas y un sistema de configuración para el robot.

ROS está basado en una arquitectura de grafos donde el procesamiento toma lugar en nodos que pueden recibir, enviar y multiplexar mensajes de sensores, controles, estados, planificaciones y actuadores, entre otros.

La filosofía de ROS se puede resumir en los siguientes cinco principios:

  1. Punto-a-Punto: Una arquitectura punto-a-punto permite los nodos que componen el robot puedan dialogar directamente con cualquier otro de forma síncrona o asincrónica, según sea necesario.
  2. Multilenguaje: ROS se puede programar en varios lenguajes de programación, lo importante es que las clases desarrolladas permitan la generación de mensajes basados en el Lenguaje de Definición de Interfaz (IDL).
  3. Basado en herramientas: En lugar de un entorno de tiempo de ejecución monolítico, ROS adoptó un diseño de microkernel, que utiliza una gran cantidad de pequeñas herramientas para construir y ejecutar sus diversos nodos.
  4. Ligero: Los algoritmos se empaquetan en ejecutables independientes reutilizables y de tamaño reducido.
  5. Gratuito y de código abierto: Es soportado por una gran comunidad y se ha convertido un estándar en la industria de la robótica.

Otro aspecto importante de ROS es su sistema de archivos, que está organizado de forma jerárquica en disco, donde destacan los siguientes conceptos:

  • Paquete: Es un directorio que contiene nodos, bibliotecas externas, datos, archivos de configuración y un archivo de configuración llamado manifest.xml.
  • La pila: Es un directorio que contiene paquetes  un archivo de configuración llamado stack.xml.

Como se mencionó anteriormente, ROS permite ejecutar una gran cantidad de nodos en paralelo que requieren intercambiar datos de forma síncrona y asíncrona. El responsable de alcanzar ese objetivo es el grafo de cómputo de ROS, que involucra los conceptos que se menciona a continuación:

  • Maestro: Es un servicio de declaración y registro de nodos, que hace posible que los nodos se encuentren e intercambien datos.
  • Nodo: Es una instancia de un ejecutable. Un nodo puede ser un sensor, motor, algoritmo, etc.
  • Temas: Un tema es un sistema de transmisión de datos asíncrono basado en un sistema de suscripción / publicación, donde uno o más nodos pueden publicar datos en un tema, y uno o más nodos pueden leer datos sobre ese tema.
  • Servicios: Es un método de comunicación síncrona entre dos nodos.
  • Mensaje: Es una estructura de datos compuesta por tipos de datos primitivos (cadenas de caracteres, booleanos, enteros, punto flotante, etc.).

Referencias:

http://www.ros.org/about-ros/
https://www.generationrobots.com/blog/en/ros-robot-operating-system-2/
http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem
http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes
http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics
http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams
http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

Deja un comentario

Instagram did not return a 200.