Robótica y Hardware

Qué es ROS (Robot Operating System)

¿Te quieres iniciar a ROS? Te contamos qué es ROS y empieza a crear software para Robots

Publicado el 21 de Septiembre de 2017
Compartir

Robot Operating System (ROS) es un middleware robótico, es decir, una colección de frameworks para el desarrollo de software de robots. ROS se desarrolló originariamente en 2007 bajo el nombre de switchyard por el Laboratorio de Inteligencia Artificial de Stanford para dar soporte al proyecto del Robot con Inteligencia Artificial de Stanford (STAIR2). Desde 2008, el desarrollo continuó principalmente en Willow Garage, un instituto de investigación robótico con más de veinte instituciones colaborando en un modelo de desarrollo federado.

A pesar de no ser un sistema operativo, ROS provee los servicios estándar de uno de estos tales como la abstracción del hardware, el control de dispositivos de bajo nivel, la implementación de funcionalidad de uso común, el paso de mensajes entre procesos y el mantenimiento de paquetes. Está basado en una arquitectura de grafos donde el procesamiento toma lugar en los nodos que pueden recibir, mandar y multiplexar mensajes de sensores, control, estados, planificaciones y actuadores, entre otros. La librería está orientada para un sistema UNIX (Ubuntu -Linux-) aunque también se está adaptando a otros sistemas operativos como Fedora, Mac OS X, Arch, Gentoo, OpenSUSE, Slackware, Debian o Microsoft Windows, considerados a día de hoy como ‘experimentales’.

ROS tiene dos partes básicas: la parte del sistema operativo, ros, y ros-pkg. Esta última consiste en una suite de paquetes aportados por la contribución de usuarios (organizados en conjuntos llamados pilas o en inglés stacks) que implementan las funcionalidades tales como localización y mapeo simultáneo, planificación, percepción, simulación, etc.

ROS es software libre bajo términos de licencia BSD. Esta licencia permite libertad para uso comercial e investigador. Las contribuciones de los paquetes en ros-pkg están bajo una gran variedad de licencias diferentes.

Aprende a desarrollar apps para iOS y Android
Comienza 15 días gratis en OpenWebinars y accede cursos, talleres y laboratorios prácticos de Swift y Kotlin para crear tus propias aplicaciones.
Comenzar gratis ahora

Aunque está en proceso de desarrollo de aplicaciones, las áreas que ya incluye ROS son:

  • Un nodo principal de coordinación.
  • Publicación o subscripción de flujos de datos: imágenes, estéreo, láser, control, actuador, contacto, etc.
  • Multiplexación de la información.
  • Creación y destrucción de nodos.
  • Los nodos están perfectamente distribuidos, permitiendo procesamiento distribuido en múltiples núcleos, multiprocesamiento, GPUs y clústeres.
  • Login.
  • Parámetros de servidor.
  • Testeo de sistemas.

[BANNER_SUSCRIPCION]

En las futuras versiones se espera que las siguientes áreas vayan apareciendo entre las aplicaciones de los procesos de ROS:

  • Percepción
  • Identificación de Objetos
  • Segmentación y reconocimiento
  • Reconocimiento facial
  • Reconocimiento de gestos
  • Seguimiento de objetos
  • Egomoción
  • Comprensión de movimiento
  • Estructura de movimientos (SFM)
  • Visión estéreo: percepción de profundidad mediante el uso de dos cámaras
  • Movimientos
  • Robots móviles
  • Control
  • Planificación
  • Agarre de objetos

Entre algunos de los robots que ya utilizan ROS se pueden encontrar:

  • PR1: robot personal desarrollado por el laboratorio Ken Salisbury en Stanford.
  • PR2: robot personal que está siendo desarrollado por Willow Garage.
  • Baxter de Rethink Robotics, Inc.
  • Robot de Shadow: mano robótica diestra motorizada desarrollada por la empresa Shadow y la cual se está desarrollando mediante el consorcio de un proyecto europeo dentro del marco europeo. Entre los participantes de este proyecto se pueden encontrar la empresa Shadow Robot, la Université Pierre et Marie Curie-Paris (Francia) o la Universidad Carlos III de Madrid (España).
  • HERB: desarrollado en CMU dentro del programa de robótica personal de Intel.
Acelera tus desarrollos de software
Formaciones prácticas, avanzadas y actualizadas para que tu equipo domine las herramientas más relevantes para crear aplicaciones móviles en iOS y Android con Swift, Java y Kotlin.
Solicitar más información

Compartir este post

También te puede interesar...

Tecnología

¿Qué es la inteligencia artificial en la informática?

30 Enero 2018 Leonela Mariel Lanz Veitia
Introducción a la programación en ROS

Curso de introducción a la programación en ROS

8 horas y 40 minutos · Curso

Introdúcete en el mundo de la robótica usando ROS: Robot Operating System. Aprenderás a programar tus propios robots con ROS.

  • Herramientas
Artículos
Ver todos