Sistema operativo del robot


Robot Operating System ( ROS o ros ) es una suite de middleware robótica de código abierto. Aunque ROS no es un sistema operativo, sino una colección de marcos de software para el desarrollo de software de robots , proporciona servicios diseñados para un clúster de computadoras heterogéneo , como abstracción de hardware , control de dispositivos de bajo nivel , implementación de funciones de uso común, transmisión de mensajes entre procesos , y gestión de paquetes. Los conjuntos en ejecución de procesos basados ​​en ROS se representan en un gráficoarquitectura donde el procesamiento tiene lugar en nodos que pueden recibir, publicar y multiplexar datos de sensores, control, estado, planificación, accionador y otros mensajes. A pesar de la importancia de la reactividad y la baja latencia en el control del robot, ROS en sí no es un sistema operativo en tiempo real (RTOS). Sin embargo, es posible integrar ROS con código en tiempo real. [3] La falta de soporte para sistemas en tiempo real se ha abordado en la creación de ROS 2, [4] [5] [6] una revisión importante de la API de ROS que aprovechará las bibliotecas y tecnologías modernas para ROS principales funcionalidad y agregar soporte para código en tiempo real y hardware integrado .

Tanto las herramientas independientes del lenguaje como las principales bibliotecas cliente ( C ++ , Python y Lisp ) se publican bajo los términos de la licencia BSD y, como tales, son software de código abierto y gratuitos para uso comercial y de investigación. La mayoría de los otros paquetes tienen licencia de una variedad de licencias de código abierto . Estos otros paquetes implementan funcionalidades y aplicaciones de uso común, como controladores de hardware, modelos de robots, tipos de datos, planificación, percepción , localización y mapeo simultáneos , herramientas de simulación y otros algoritmos.

Las principales bibliotecas de cliente ROS están orientadas hacia un sistema similar a Unix , principalmente debido a su dependencia de grandes colecciones de dependencias de software de código abierto. Para estas bibliotecas de cliente, Ubuntu Linux aparece como "Compatible", mientras que otras variantes como Fedora Linux , macOS y Microsoft Windows se denominan "experimentales" y son compatibles con la comunidad. [12] Sin embargo, la biblioteca de cliente ROS de Java nativa, [13] , no comparte estas limitaciones y ha permitido escribir software basado en ROS para el sistema operativo Android . [14] rosjava también ha permitido que ROS se integre en un soporte oficialCaja de herramientas MATLAB que se puede utilizar en Linux , macOS y Microsoft Windows. [15] También se ha desarrollado una biblioteca cliente JavaScript , roslibjs [16] , que permite la integración de software en un sistema ROS a través de cualquier navegador web compatible con los estándares.

En algún momento antes de 2007, las primeras piezas de lo que eventualmente se convertiría en ROS estaban comenzando a juntarse en la Universidad de Stanford . [17] [18] Eric Berger y Keenan Wyrobek , estudiantes de doctorado que trabajaban en el laboratorio de robótica de Kenneth Salisbury [19] en Stanford, dirigían el Programa de Robótica Personal. [20]Mientras trabajaban con robots para realizar tareas de manipulación en entornos humanos, los dos estudiantes notaron que muchos de sus colegas se veían reprimidos por la naturaleza diversa de la robótica: un excelente desarrollador de software podría no tener el conocimiento de hardware requerido, alguien que desarrollaba un camino de vanguardia. Es posible que la planificación no sepa cómo hacer la visión por computadora requerida. En un intento por remediar esta situación, los dos estudiantes se propusieron hacer un sistema de base que proporcionaría un punto de partida para que otros en el mundo académico pudieran construir. En palabras de Eric Berger, "algo que no apestaba, en todas esas dimensiones diferentes". [17]


Una imagen del sistema operativo de robot (ROS) que se ejecuta en la Antártida.
Una imagen que representa la ecuación ROS: Plomería + Herramientas + Capacidades + Ecosistema = ROS!