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, actuadores 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.0, [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 .
Autor (es) original (es) | Willow Garage Laboratorio de inteligencia artificial de Stanford Robótica abierta |
---|---|
Versión inicial | 2007 |
Lanzamiento estable | Geochelone galáctico (ROS 2) [1] / 23 de mayo de 2021 |
Versión de vista previa | Rolling Ridley (ROS 2) [2] |
Repositorio | |
Escrito en | C ++ , Python o Lisp |
Sistema operativo | Linux , MacOS (experimental), Windows 10 (experimental) |
Tipo | Suite de robótica , SO , biblioteca |
Licencia | Licencia Apache 2.0 |
Sitio web | www |
El software del ecosistema ROS [7] se puede dividir en tres grupos:
- herramientas independientes del lenguaje y la plataforma utilizadas para crear y distribuir software basado en ROS;
- Implementaciones de biblioteca cliente ROS como roscpp, [8] rospy, [9] y roslisp; [10]
- paquetes que contienen código relacionado con la aplicación que utiliza una o más bibliotecas de cliente ROS. [11]
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 gratuito 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 nativa de cliente ROS de Java, rosjava, [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 una caja de herramientas MATLAB con soporte oficial que se puede usar en Linux , macOS y Microsoft Windows. [15] Un JavaScript biblioteca cliente, roslibjs [16] También se ha desarrollado, que permite la integración de software en un sistema de ROS a través de cualquier navegador web compatible con los estándares.
Historia
Los primeros días en Stanford (2007 y antes)
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 trabajan en Kenneth Salisbury 's [19] laboratorio de robótica en Stanford, se conduce 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 estaba desarrollando un estado de es posible que la planificación de la trayectoria del arte no sepa cómo realizar la visión por computadora requerida. En un intento por remediar esta situación, los dos estudiantes se propusieron crear 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 apesta, en todas esas dimensiones diferentes". [17]
En sus primeros pasos hacia este sistema unificador, los dos construyeron el PR1 como un prototipo de hardware y comenzaron a trabajar en software a partir de él, tomando prestadas las mejores prácticas de otros marcos de software robóticos de código abierto tempranos, particularmente switchyard, un sistema que Morgan Quigley, otro Estudiante de doctorado de Stanford, había estado trabajando en apoyo del STAIR (Robot de Inteligencia Artificial de STanford) [21] [22] [23] [24] por el Laboratorio de Inteligencia Artificial de Stanford . Joanna Hoffman y Alain Rossmann proporcionaron una financiación inicial de 50.000 dólares EE.UU. , que apoyaron el desarrollo del PR1. Mientras buscaban financiación para un mayor desarrollo, [25] Eric Berger y Keenan Wyrobek conocieron a Scott Hassan , el fundador de Willow Garage , una incubadora de tecnología que estaba trabajando en un SUV autónomo y un barco autónomo solar. Hassan compartió la visión de Berger y Wyrobek de un "Linux para robótica" y los invitó a trabajar en Willow Garage. Willow Garage se inició en enero de 2007, y la primera confirmación del código ROS se realizó en SourceForge el siete de noviembre de 2007. [26]
Willow Garage (2007-2013)
Willow Garage comenzó a desarrollar el robot PR2 como un seguimiento del PR1 y ROS como el software para ejecutarlo. Grupos de más de veinte instituciones hicieron contribuciones a ROS, tanto el software central como el creciente número de paquetes que trabajaron con ROS para formar un ecosistema de software mayor. [27] [28] El hecho de que personas ajenas a Willow contribuyesen a ROS (particularmente desde el proyecto STAIR de Stanford) significó que ROS era una plataforma de múltiples robots desde el principio. Si bien Willow Garage originalmente tenía otros proyectos en progreso, fueron descartados a favor del Programa de Robótica Personal: enfocado en producir el PR2 como una plataforma de investigación para la academia y ROS como la pila de robótica de código abierto que subyacería tanto a la investigación académica como a las nuevas empresas tecnológicas. , al igual que la pila LAMP lo hizo para las nuevas empresas basadas en la web.
En diciembre de 2008, Willow Garage cumplió el primero de sus tres hitos internos: navegación continua para el PR2 durante un período de dos días y una distancia de pi kilómetros. [29] Poco después, se publicó una versión temprana de ROS (0.4 Mango Tango) [30] , seguida de la primera documentación de RVIZ y el primer artículo sobre ROS. [28] A principios del verano, se alcanzó el segundo hito interno: hacer que el PR2 navegue por la oficina, abra las puertas y se conecte. [31] Esto fue seguido en agosto por el inicio del sitio web ROS.org. [32] Los primeros tutoriales sobre ROS se publicaron en diciembre, [33] preparándose para el lanzamiento de ROS 1.0, en enero de 2010. [34] Este fue el Hito 3: producir toneladas de documentación y tutoriales para las enormes capacidades que tenían los ingenieros de Willow Garage. desarrollado durante los 3 años anteriores.
Después de esto, Willow Garage logró uno de sus objetivos más antiguos: regalar 10 robots PR2 a instituciones académicas dignas. Este había sido durante mucho tiempo un objetivo de los fundadores, ya que sentían que el PR2 podría impulsar la investigación en robótica en todo el mundo. Terminaron otorgando once PR2 a diferentes instituciones, incluidas la Universidad de Friburgo (Alemania) , Bosch , Georgia Tech , KU Leuven (Bélgica) , MIT , Stanford , TU Munich (Alemania) , UC Berkeley , U Penn , USC y la Universidad de Tokio (Japón) . [35] Esto, combinado con el exitoso programa de pasantías de Willow Garage [36] (ejecutado de 2008 a 2010 por Melonee Wise ), ayudó a correr la voz sobre ROS en todo el mundo de la robótica. El primer lanzamiento oficial de distribución de ROS: ROS Box Turtle, fue lanzado el 2 de marzo de 2010, marcando la primera vez que ROS se distribuyó oficialmente con un conjunto de paquetes versionados para uso público. Estos desarrollos llevaron al primer dron con ROS, [37] el primer auto autónomo con ROS, [38] y la adaptación de ROS para Lego Mindstorms . [39] Con el programa PR2 Beta en marcha, el robot PR2 se lanzó oficialmente para su compra comercial el 9 de septiembre de 2010. [40]
2011 fue un año excepcional para ROS con el lanzamiento de ROS Answers, un foro de preguntas y respuestas para usuarios de ROS, el 15 de febrero; [41] la introducción del exitoso kit de robot Turtlebot el 18 de abril; [42] y el número total de repositorios ROS que superaron los 100 el 5 de mayo. [43] Willow Garage comenzó 2012 con la creación de Open Source Robotics Foundation (OSRF) [44] en abril. La OSRF recibió inmediatamente un contrato de software por parte de DARPA. [45] Más tarde ese año, se llevó a cabo la primera ROSCon en St. Paul, MN, [46 ] se publicó el primer libro sobre ROS, ROS By Example , [47] , y Baxter, el primer robot comercial en ejecutar ROS, fue anunciado por Rethink Robotics . [48] Poco después de cumplir su quinto aniversario en noviembre, ROS comenzó a funcionar en todos los continentes el 3 de diciembre de 2012. [49]
En febrero de 2013, OSRF se convirtió en el principal mantenedor de software de ROS, [50] presagiando el anuncio en agosto de que Willow Garage sería absorbido por sus fundadores, Adecuado Technologies . [51] En este punto, ROS había lanzado siete versiones principales (hasta ROS Groovy [52] ) y tenía usuarios en todo el mundo. Este capítulo del desarrollo de ROS se finalizaría cuando Clearpath Robotics asumiera las responsabilidades de soporte del PR2 a principios de 2014. [53]
OSRF y Open Robotics (2013-presente)
En los años transcurridos desde que OSRF se hizo cargo del desarrollo primario de ROS, se ha lanzado una nueva versión cada año, [52] mientras que el interés en ROS sigue creciendo. Las ROSCons se han producido todos los años desde 2012, ubicadas conjuntamente con ICRA o IROS , dos conferencias emblemáticas de robótica. Se han organizado reuniones de desarrolladores de ROS en una variedad de países, [54] [55] [56] se han publicado varios libros de ROS, [57] y se han iniciado muchos programas educativos. [58] [59] El 1 de septiembre de 2014, la NASA anunció el primer robot para ejecutar ROS en el espacio: Robotnaut 2 , en la Estación Espacial Internacional . [60] En 2017, OSRF cambió su nombre a Open Robotics . Los gigantes tecnológicos Amazon y Microsoft comenzaron a interesarse en ROS durante este tiempo, y Microsoft transfirió el núcleo ROS a Windows en septiembre de 2018, [61] seguido de Amazon Web Services que lanzó RoboMaker en noviembre de 2018. [62]
Quizás el desarrollo más importante de los años OSRF / Open Robotics hasta ahora (sin descontar la explosión de plataformas de robots que comenzaron a admitir ROS o las enormes mejoras en cada versión de ROS) fue la propuesta de ROS2, un cambio significativo de API a ROS que está diseñado para admitir programación en tiempo real , una variedad más amplia de entornos informáticos y utilizar tecnología más moderna. [63] ROS2 se anunció en ROSCon 2014, [64] las primeras confirmaciones con el repositorio ros2 se realizaron en febrero de 2015, seguidas de versiones alfa en agosto de 2015. [65] La primera versión de distribución de ROS2, Ardent Apalone, se publicó el 8 de diciembre de 2017, [65] marcando el comienzo de una nueva era de desarrollo de ROS de próxima generación.
Diseño
Filosofía
ROS se diseñó teniendo en cuenta el código abierto, con la intención de que los usuarios pudieran elegir la configuración de herramientas y bibliotecas que interactuaban con el núcleo de ROS para que los usuarios pudieran cambiar sus pilas de software para adaptarse a su robot y área de aplicación. Como tal, hay muy poco que sea realmente fundamental para ROS, más allá de la estructura general dentro de la cual los programas deben existir y comunicarse. En cierto sentido, ROS es la tubería subyacente detrás de los nodos y el paso de mensajes. Sin embargo, en realidad, ROS no es solo esa plomería, sino un conjunto rico y maduro de herramientas, un amplio conjunto de capacidades agnósticas de robot proporcionadas por paquetes y un mayor ecosistema de adiciones a ROS.
Modelo de gráfico de cálculo
Los procesos ROS se representan como nodos en una estructura gráfica, conectados por bordes llamados temas. [66] Los nodos ROS pueden pasar mensajes entre sí a través de temas, realizar llamadas de servicio a otros nodos, proporcionar un servicio para otros nodos o establecer o recuperar datos compartidos de una base de datos común llamada servidor de parámetros. Un proceso llamado ROS Master [66] hace que todo esto sea posible al registrar nodos para sí mismo, configurar la comunicación nodo a nodo para temas y controlar las actualizaciones del servidor de parámetros. Los mensajes y las llamadas de servicio no pasan por el maestro, sino que el maestro establece la comunicación de igual a igual entre todos los procesos del nodo después de que se registran con el maestro. Esta arquitectura descentralizada se adapta bien a los robots, que a menudo consisten en un subconjunto de hardware de computadora en red, y pueden comunicarse con computadoras externas para realizar operaciones o comandos pesados.
Nodos
Un nodo representa un solo proceso que ejecuta el gráfico ROS. Cada nodo tiene un nombre, que registra con el maestro ROS antes de que pueda realizar cualquier otra acción. Pueden existir múltiples nodos con diferentes nombres en diferentes espacios de nombres , o un nodo puede definirse como anónimo, en cuyo caso generará aleatoriamente un identificador adicional para agregar a su nombre de pila. Los nodos están en el centro de la programación ROS, ya que la mayoría del código de cliente ROS tiene la forma de un nodo ROS que toma acciones basadas en la información recibida de otros nodos, envía información a otros nodos o envía y recibe solicitudes de acciones hacia y desde otros nodos. nodos.
Temas
Los temas son buses con nombre a través de los cuales los nodos envían y reciben mensajes. [67] Los nombres de los temas también deben ser únicos dentro de su espacio de nombres. Para enviar mensajes a un tema, un nodo debe publicar en dicho tema, mientras que para recibir mensajes debe suscribirse. El modelo de publicación / suscripción es anónimo: ningún nodo sabe qué nodos están enviando o recibiendo sobre un tema, solo que está enviando / recibiendo sobre ese tema. Los tipos de mensajes que se transmiten sobre un tema varían ampliamente y pueden ser definidos por el usuario. El contenido de estos mensajes puede ser datos del sensor, comandos de control del motor, información de estado, comandos del actuador o cualquier otra cosa.
Servicios
Un nodo también puede anunciar servicios. [68] Un servicio representa una acción que puede realizar un nodo y que tendrá un único resultado. Como tal, los servicios se utilizan a menudo para acciones que tienen un principio y un final definidos, como capturar una imagen de un solo cuadro, en lugar de procesar comandos de velocidad en un motor de rueda o datos del odómetro desde un codificador de rueda. Los nodos anuncian servicios y llaman a servicios entre sí.
Servidor de parámetros
El servidor de parámetros [68] es una base de datos compartida entre nodos que permite el acceso común a información estática o semiestática. Los datos que no cambian con frecuencia y, como tales, a los que se accederá con poca frecuencia, como la distancia entre dos puntos fijos en el entorno o el peso del robot, son buenos candidatos para el almacenamiento en el servidor de parámetros.
Herramientas
La funcionalidad principal de ROS se ve aumentada por una variedad de herramientas que permiten a los desarrolladores visualizar y registrar datos, navegar fácilmente por las estructuras del paquete ROS y crear scripts que automatizan procesos de configuración y configuración complejos. La adición de estas herramientas aumenta en gran medida las capacidades de los sistemas que utilizan ROS al simplificar y proporcionar soluciones a una serie de problemas comunes de desarrollo de robótica. Estas herramientas se proporcionan en paquetes como cualquier otro algoritmo, pero en lugar de proporcionar implementaciones de controladores de hardware o algoritmos para diversas tareas robóticas, estos paquetes proporcionan herramientas agnósticas de tareas y robots que vienen con el núcleo de la mayoría de las instalaciones ROS modernas.
rviz
rviz [69] es un visualizador tridimensional que se utiliza para visualizar robots, los entornos en los que trabajan y los datos de los sensores. Es una herramienta altamente configurable, con muchos tipos diferentes de visualizaciones y complementos.
rosbag
rosbag [70] es una herramienta de línea de comandos que se utiliza para grabar y reproducir datos de mensajes ROS. rosbag usa un formato de archivo llamado bolsas, [71] que registra mensajes ROS escuchando temas y grabando mensajes a medida que llegan. Reproducción de mensajes desde una bolsa es en gran medida lo mismo que tener los nodos originales que produjeron los datos en el cálculo ROS gráfico, lo que convierte a las bolsas en una herramienta útil para registrar datos que se utilizarán en el desarrollo posterior. Si bien rosbag es una herramienta de línea de comandos únicamente, rqt_bag [72] proporciona una interfaz GUI para rosbag.
pendiente
catkin [73] es el sistema de construcción ROS, habiendo reemplazado a rosbuild [74] a partir de ROS Groovy. catkin se basa en CMake y es igualmente multiplataforma, de código abierto e independiente del idioma.
rosbash
El paquete rosbash [75] proporciona un conjunto de herramientas que aumentan la funcionalidad del shell bash . Estas herramientas incluyen rosls, roscd y roscp, que replican las funcionalidades de ls , cd y cp respectivamente. Las versiones ROS de estas herramientas permiten a los usuarios usar nombres de paquetes ros en lugar de la ruta de archivo donde se encuentra el paquete. El paquete también agrega finalización de tabulación a la mayoría de las utilidades de ROS e incluye rosed, que edita un archivo dado con el editor de texto predeterminado elegido, así como rosrun, que ejecuta ejecutables en paquetes ROS. rosbash admite las mismas funcionalidades para zsh y tcsh , en menor medida.
roslaunch
roslaunch [76] es una herramienta que se utiliza para lanzar múltiples nodos ROS tanto de forma local como remota, así como para configurar parámetros en el servidor de parámetros ROS. Los archivos de configuración de roslaunch, que se escriben utilizando XML, pueden automatizar fácilmente un proceso complejo de inicio y configuración en un solo comando. Los scripts roslaunch pueden incluir otros scripts roslaunch, lanzar nodos en máquinas específicas e incluso reiniciar procesos que mueren durante la ejecución.
Paquetes de nota
ROS contiene muchas implementaciones de código abierto de funcionalidad y algoritmos robóticos comunes. Estas implementaciones de código abierto están organizadas en "paquetes". Muchos paquetes se incluyen como parte de las distribuciones de ROS, mientras que otros pueden ser desarrollados por individuos y distribuidos a través de sitios de intercambio de código como github. Algunos paquetes de nota incluyen:
Sistemas y herramientas
- actionlib [77] proporciona una interfaz estandarizada para interactuar con tareas prioritarias.
- nodelet [78] proporciona una forma de ejecutar múltiples algoritmos en un solo proceso.
- rosbridge [79] proporciona una API JSON a funcionalidades ROS para programas que no son ROS.
Cartografía y localización
- La caja de herramientas slam [80] proporciona SLAM 2D completo y un sistema de localización.
- gmapping [81] proporciona un contenedor para el algoritmo Gmapping de OpenSlam para localización y mapeo simultáneos .
- cartógrafo [82] proporciona algoritmos SLAM 2D y 3D en tiempo real desarrollados en Google .
- amcl [83] proporciona una implementación de la localización adaptativa de Monte-Carlo.
- navegación [84] proporciona la capacidad de navegar un robot móvil en un entorno plano.
Percepción
- vision_opencv [85] es un metapaquete que proporciona paquetes para integrar ROS con OpenCV .
Representación del marco de coordenadas
- tf [86] proporcionó un sistema para representar, rastrear y transformar marcos de coordenadas hasta ROS Hydro, cuando quedó obsoleto en favor de tf2.
- tf2 [87] es la segunda generación de la biblioteca tf y proporciona las mismas capacidades para las versiones ROS posteriores a Hydro.
Simulación
- gazebo_ros_pkgs [88] es un metapaquete que proporciona paquetes para integrar ROS con el simulador de Gazebo .
- stage [89] proporciona una interfaz para el simulador de escenario 2D .
Versiones y lanzamientos
Las versiones de ROS pueden ser incompatibles con otras versiones y, a menudo, se hace referencia a ellas por el nombre del código en lugar del número de versión. ROS lanza actualmente una versión cada año en mayo, luego del lanzamiento de las versiones de Ubuntu LTS. [90] ROS2 lanza actualmente una nueva versión cada seis meses (en diciembre y julio). Estas versiones se admiten durante un solo año.
Distribución | Fecha de lanzamiento | Póster | Fecha EOL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Noetic Ninjemys (última versión de ROS 1) | 23 de mayo de 2020 | Mayo de 2025 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Morenia melódica | 23 de mayo de 2018 | 2023-05-30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Caguama lunar | 23 de mayo de 2017 | 2019-05-30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kame cinético | 23 de mayo de 2016 | 2021-05-30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tortuga de jade | 23 de mayo de 2015 | 2017-05-30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iglú índigo | 22 de julio de 2014 | 2019-04-30 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hydro Medusa | 4 de septiembre de 2013 | 2014-05-31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Galápagos maravillosas | 31 de diciembre de 2012 | 2014-07-31 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fuerte Tortuga | 23 de abril de 2012 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Emys eléctricos | 30 de agosto de 2011 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diamondback | 2 de marzo de 2011 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tortuga C | 2 de agosto de 2010 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Tortuga de caja | 2 de marzo de 2010 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versión antigua Versión anterior, aún mantenida Ultima versión Lanzamiento futuro |
Distribución | Fecha de lanzamiento | Póster | Fecha EOL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Rolling Ridley [92] [93] (lanzamiento continuo con las últimas funciones) | progresando desde junio de 2020 | (desconocido) | n / A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(Tortuga J) | Mayo de 2024 | tbd | 5 años | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(Yo tortuga) | Mayo de 2023 | tbd | 1,5 años | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Humilde carey | Mayo de 2022 | tbd | 5 años | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Geochelone galáctico | 23 de mayo de 2021 [94] | Noviembre de 2022 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Foxy Fitzroy | 5 de junio de 2020 [95] | Mayo de 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Elusor elocuente | 22 de nov. De 2019 | Nov. De 2020 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dashing Diademata | 31 de mayo de 2019 | Mayo de 2021 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Crystal Clemmys | 14 de diciembre de 2018 | Diciembre de 2019 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bolson hinchable | 2 de julio de 2018 | Julio de 2019 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apalone ardiente | 8 de diciembre de 2017 | Diciembre de 2018 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beta3 | 13 de septiembre de 2017 | N / A | Diciembre de 2017 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beta2 | 5 de julio de 2017 | N / A | Septiembre de 2017 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beta1 | 19 de diciembre de 2016 | N / A | Julio de 2017 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
alpha1-alpha8 | 31 de agosto de 2015 | N / A | Diciembre de 2016 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versión antigua Versión anterior, aún mantenida Ultima versión Lanzamiento futuro |
ROS-Industrial
ROS-Industrial [96] es un proyecto de código abierto (licencia BSD (heredada) / Apache 2.0 (preferida)) que extiende las capacidades avanzadas de ROS a la automatización de la fabricación y la robótica. En el entorno industrial, existen dos enfoques diferentes para programar un robot: ya sea a través de un controlador propietario externo, generalmente implementado mediante ROS. O a través del respectivo lenguaje de programación nativo del robot. Por lo tanto, ROS puede verse como el enfoque basado en software para programar robots industriales en lugar del enfoque clásico basado en controladores de robots. [97]
El repositorio ROS-Industrial incluye interfaces para manipuladores industriales, pinzas, sensores y redes de dispositivos comunes. También proporciona bibliotecas de software para calibración automática de sensores 2D / 3D, planificación de movimiento / ruta de proceso, aplicaciones como Scan-N-Plan, herramientas para desarrolladores como Qt Creator ROS Plugin y un plan de estudios de formación específico para las necesidades de los fabricantes. ROS-I cuenta con el apoyo de un consorcio internacional de miembros de la industria y la investigación. El proyecto comenzó como un esfuerzo de colaboración entre Yaskawa Motoman Robotics, Southwest Research Institute y Willow Garage para respaldar el uso de ROS para la automatización de la fabricación, y el repositorio de GitHub fue fundado en enero de 2012 por Shaun Edwards (SwRI). Actualmente, el Consorcio se divide en tres grupos; el ROS-Industrial Consortium Americas (dirigido por SwRI y ubicado en San Antonio, Texas), el ROS-Industrial Consortium Europe (dirigido por Fraunhofer IPA y ubicado en Stuttgart, Alemania) y el ROS-Industrial Consortium Asia Pacific (dirigido por Advanced Remanufactura and Technology Centre (ARTC) y la Universidad Tecnológica de Nanyang (NTU) y ubicada en Singapur).
El consorcio apoya a la comunidad industrial ROS-I global mediante la realización de capacitación ROS-I, proporcionando soporte técnico y estableciendo la hoja de ruta futura para ROS-I, así como llevando a cabo proyectos industriales conjuntos precompetitivos para desarrollar nuevas capacidades ROS-I. [98]
Robots y hardware compatibles con ROS
Robots
- ABB, Adept, Fanuc, Motoman y Universal Robots son compatibles con ROS-Industrial [99]
- Baxter [100] de Rethink Robotics , Inc.
- CK-9 : Kit de desarrollo robótico de Centauri Robotics, compatible con ROS
- HERB [101] desarrollado en la Universidad Carnegie Mellon en el programa de robótica personal de Intel
- Robot Husky A200 desarrollado (e integrado en ROS) por Clearpath Robotics [102]
- Robot personal PR1 desarrollado en el laboratorio de Ken Salisbury en Stanford [103]
- Robot personal PR2 desarrollado en Willow Garage [104]
- Plataforma de investigación robótica quirúrgica Raven II [105] [106]
- Shadow Robot Hand [107] - Una mano humanoide completamente diestra.
- Robots STAIR I y II [108] desarrollados en el laboratorio de Andrew Ng en Stanford
- SummitXL: [109] Robot móvil desarrollado por Robotnik , una empresa de ingeniería especializada en robots móviles, brazos robóticos y soluciones industriales con arquitectura ROS.
- Nao [110] humanoide: El Laboratorio de Robots Humanoides de la Universidad de Friburgo [111] desarrolló una integración ROS para el humanoide Nao basada en un puerto inicial de la Universidad de Brown [112] [113]
- UBR1 [114] [115] desarrollado por Unbounded Robotics, un derivado de Willow Garage.
- ROSbot: plataforma de robot autónomo de Husarion [116]
- Webots : simulador de robot que integra una completa interfaz de programación ROS. [117]
- GoPiGo3 : robot educativo basado en Raspberry Pi, compatible con ROS
SBC y hardware
- BeagleBoard. El laboratorio de robótica de la Katholieke Universiteit Leuven , Bélgica [118] ha portado ROS al Beagleboard .
- Los procesadores Sitara ARM son compatibles con el paquete ROS como parte del SDK oficial de Linux. [119]
- Raspberry Pi: imagen de ubuntu Mate con ROS [120] de Ubiquity Robotics; guía de instalación para Raspbian. [121]
Ver también
- Hardware abierto
- Middleware de robótica
- Software de código abierto
- Lista de paquetes de software gratuitos y de código abierto
Referencias
- ^ "Geochelone galáctico ROS 2" . docs.ros.org . Consultado el 10 de julio de 2020 .
- ^ "ROS 2 Rolling Ridley" . docs.ros.org.
- ^ ROS-Introducción http://wiki.ros.org/ROS/Introduction
- ^ Kay, Jackie. "Propuesta de Implementación de Sistemas en Tiempo Real en ROS 2" . Consultado el 16 de agosto de 2016 .
- ^ Kay, Jackie. "Directrices de diseño en tiempo real para ROS 2" . design.ROS2.org . ROS2 . Consultado el 22 de noviembre de 2018 .
- ^ "ROS 2 para aplicaciones en tiempo real" . discurso.ROS.org . ROS . Consultado el 22 de noviembre de 2018 .
- ^ "Búsqueda de paquetes para melódicos" . ROS.org . ROS . Consultado el 21 de febrero de 2016 .
- ^ "Resumen del paquete" . ROS.org . ROS . Consultado el 21 de febrero de 2016 .
- ^ "Resumen del paquete" . ROS.org . ROS . Consultado el 21 de febrero de 2016 .
- ^ "Resumen del paquete" . ROS.org . ROS . Consultado el 21 de febrero de 2016 .
- ^ "bibliotecas cliente" . ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "ROS / Instalación - ROS Wiki" . Wiki.ros.org. 29 de septiembre de 2013 . Consultado el 12 de julio de 2014 .
- ^ "rosjava - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "android - ROS Wiki" . Wiki.ros.org. 12 de abril de 2014 . Consultado el 12 de julio de 2014 .
- ^ "Soporte de sistema operativo de robot (ROS) de MATLAB - Soporte de hardware" . Mathworks.com . Consultado el 12 de julio de 2014 .
- ^ "roslibjs - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ a b Guizzo, Evan Ackerman y Erico (7 de noviembre de 2017). "Wizards of ROS: Willow Garage y la creación del sistema operativo del robot" . IEEE Spectrum: Noticias de tecnología, ingeniería y ciencia . Consultado el 29 de abril de 2019 .
- ^ Wyrobek, Keenan (31 de octubre de 2017). "La historia del origen de ROS, el Linux de la robótica" . IEEE Spectrum: Noticias de tecnología, ingeniería y ciencia . Consultado el 29 de abril de 2019 .
- ^ "J. Kenneth Salisbury, Ph.D. | Laboratorio de robótica de Salisbury" . Consultado el 29 de abril de 2019 .
- ^ "Programa de robótica personal de Stanford" . personalrobotics.stanford.edu . Consultado el 29 de abril de 2019 .
- ^ "Fabricantes de robots de Stanford" .
- ^ Ng, Andrew; Gould, Stephen; Quigley, Morgan; Saxena, Ashutosh; Berger, Eric (2008). "ESCALERA: El proyecto de robot de inteligencia artificial de STanford" . Taller de Snowbird.
- ^ "ESCALERA" . escalera.Stanford.edu . Consultado el 12 de diciembre de 2017 .
- ^ Quigley, Morgan; Berger, Eric; Ng, Andrew Y. (2007), STAIR: Arquitectura de hardware y software (PDF) , Taller de robótica AAAI 2007
- ^ Keenan Wyrobek (3 de julio de 2017). "Mazo de recaudación de fondos del programa de robótica personal de 2006" . Cite journal requiere
|journal=
( ayuda ) - ^ "Repositorio: código" . Sourceforge.net . Consultado el 12 de diciembre de 2017 .
- ^ "Repositorios" . ROS.org . Consultado el 7 de junio de 2011 .
- ^ a b Quigley, Morgan; Gerkey, Brian; Conley, Ken; Fausto, Josh; Foote, Tully; Leibs, Jeremy; Berger, Eric; Wheeler, Rob; Ng, Andrew . "ROS: un sistema operativo de robot de código abierto" (PDF) . Consultado el 3 de abril de 2010 .
- ^ WillowGaragevideo (19 de diciembre de 2008), Milestone 1 , consultado el 29 de abril de 2019
- ^ "Lanzamiento ROS 0.4 - Noticias de robótica ROS" . www.ros.org . Consultado el 29 de abril de 2019 .
- ^ WillowGaragevideo (2 de julio de 2009), Milestone 2 Explained , consultado el 29 de abril de 2019
- ^ "Bienvenido a ros.org - noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Tutoriales ROS y Tortugas - Noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "ROS 1.0 - Novedades de robótica ROS" . www.ros.org . Consultado el 29 de abril de 2019 .
- ^ "Los resultados están en: destinatarios del programa beta PR2! | Willow Garage" . www.willowgarage.com . Consultado el 29 de abril de 2019 .
- ^ "Pasantes y académicos visitantes | Willow Garage" . www.willowgarage.com . Consultado el 29 de abril de 2019 .
- ^ "Robots usando ROS: Penn Quadrotors - noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Robots usando ROS: coche autónomo de Marvin (Austin Robot Technology / UT Austin) - noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Robots usando ROS: Lego NXT - noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Robots PR2 disponibles para su compra" .
- ^ "Anunciando ROS Answers - Noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "ROS en movimiento: TurtleBots disponibles para preordenar - Willow Garage" . www.WillowGarage.com . Consultado el 12 de diciembre de 2017 .
- ^ "100 repositorios - noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Willow Garage gira hacia fuera OSRF" .
- ^ "DARPA adjudica contrato de software de simulación a la Open Source Robotics Foundation" .
- ^ "¡Gracias por una gran ROSCon 2012! - Novedades de robótica ROS" . www.ros.org . Consultado el 24 de noviembre de 2018 .
- ^ "Nuevo libro: ROS por ejemplo - Noticias de robótica ROS" . www.ros.org . Consultado el 24 de noviembre de 2018 .
- ^ "Rethink ROS - Novedades de robótica ROS" . www.ros.org . Consultado el 24 de noviembre de 2018 .
- ^ "ROS: Cinco años - Novedades de robótica ROS" . www.ros.org . Consultado el 24 de noviembre de 2018 .
- ^ "Osrf - Ros @ Osrf" . Osrfoundation.org. 11 de febrero de 2013 . Consultado el 12 de julio de 2014 .
- ^ "Los empleados se incorporan a las tecnologías adecuadas" . Willow Garage . Consultado el 12 de julio de 2014 .
- ^ a b c "Distribuciones - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "Clearpath da la bienvenida a PR2 a la familia" .
- ^ Encuentro de ROS en Corea
- ^ "Primer Encuentro ROS danés" .
- ^ "Primer Encuentro ROS de Ucrania" .
- ^ "Programación de robots con ROS: una introducción práctica al sistema operativo del robot" . OReilly.com . Consultado el 12 de diciembre de 2017 .
- ^ "Informe de la primera escuela de verano ROS en China - noticias de robótica ROS" . www.ros.org . Consultado el 24 de noviembre de 2018 .
- ^ "ROS Robot Ignite Academy" .
- ^ "ROS corriendo en ISS - Noticias de robótica ROS" . www.ROS.org . Consultado el 12 de diciembre de 2017 .
- ^ "Resumen" . ros-win.visualstudio.com . Consultado el 29 de abril de 2019 .
- ^ "Anuncio de AWS RoboMaker" . Amazon Web Services, Inc . Consultado el 29 de abril de 2019 .
- ^ "¿Por qué ROS 2.0?" . design.ros2.org . Consultado el 29 de abril de 2019 .
- ^ "Descripción general de ROS2" . index.ros.org . Consultado el 29 de abril de 2019 .
- ^ a b c "Distribuciones ROS 2" . index.ros.org . Consultado el 29 de abril de 2019 .
- ^ a b "ROS / Tutoriales / UnderstandingNodes - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "ROS / Tutoriales / UnderstandingTopics - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ a b "ROS / Tutoriales / UnderstandingServicesParams - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "rviz - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "rosbag - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "Bolsos - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "rqt_bag - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "amento - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "rosbuild - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "rosbash - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "roslaunch - ROS Wiki" . wiki.ros.org . Consultado el 23 de abril de 2019 .
- ^ "actionlib - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "Nodelet - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "rosbridge_suite - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "slam_toolbox - ROS Wiki" . wiki.ros.org . Consultado el 11 de febrero de 2020 .
- ^ "gmapping - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "cartógrafo - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "amcl - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "navegación - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "vision_opencv - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "tf - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "tf2 - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "gazebo_ros_pkgs - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "escenario - ROS Wiki" . wiki.ros.org . Consultado el 29 de abril de 2019 .
- ^ "Cambios en el horario de lanzamiento de ROS" .
- ^ "REP 2000 - Lanzamientos de ROS 2 y plataformas de destino (ROS.org)" . www.ros.org . Consultado el 20 de febrero de 2021 .
- ^ https://docs.ros.org/en/foxy/Releases/Release-Rolling-Ridley.html
- ^ https://discourse.ros.org/t/ros-2-rolling-distribution-name-brainstorming/14249/43
- ^ "ROS Galactic Geochelone lanzado" . Consultado el 10 de julio de 2021 .
- ^ "ROS Foxy Fitzroy liberado" . Consultado el 24 de junio de 2020 .
- ^ "ROS-Industrial Acerca de" . rosindustrial.org . Consultado el 12 de diciembre de 2017 .
- ^ "Control de robots industriales mediante lenguaje de programación nativo o un controlador externo" . ArtiMinds .
- ^ "Breve historia" . ROS-Industrial . Consultado el 11 de julio de 2018 .
- ^ "Inicio" . ROS-Industrial . Consultado el 12 de diciembre de 2017 .
- ^ Baxter http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/
- ^ "Laboratorio de Robótica Personal CMU" . personalrobotics.Intel-Research.net . Consultado el 12 de diciembre de 2017 .
- ^ "Husky UGV - Robot de investigación de campo al aire libre por Clearpath" . ClearPathRobotics.com . Consultado el 12 de diciembre de 2017 .
- ^ "Programa de robótica personal de Stanford" . personalrobotics.Stanford.edu . Consultado el 12 de diciembre de 2017 .
- ^ PR2
- ^ B. Hannaford, J. Rosen, Diana CW Friedman, H. King, P. Roan, L. Cheng, D. Glozman, J. Ma, SN Kosari, L. White, 'Raven-II: una plataforma abierta para cirugía Investigación robótica, 'Transacciones IEEE sobre ingeniería biomédica, vol. 60, págs. 954-959, abril de 2013.
- ^ "Laboratorio de BioRobotics | Laboratorio de Biorrobótica - Universidad de Washington" . Brl.ee.washington.edu . Consultado el 12 de julio de 2014 .
- ^ SDH
- ^ ESCALERA I y II http://stair.stanford.edu/index.php
- ^ "Cumbre XL - Robotnik" . Robotnik.es . Consultado el 12 de julio de 2014 .
- ^ "nao - ROS Wiki" . Ros.org. 28 de octubre de 2013 . Consultado el 12 de julio de 2014 .
- ^ Laboratorio de robots humanoides http://hrl.informatik.uni-freiburg.de/
- ^ brown-robotics http://brown-robotics.org/
- ^ GT Jay, Publicar en la lista de correo de ros-users anunciando el soporte de ROS para la Nao
- ^ "Especificación" . Robótica ilimitada . Consultado el 12 de julio de 2014 .
- ^ Ackerman, Evan (21 de octubre de 2013). "El robot UBR-1 de Unbounded Robotics revoluciona la manipulación móvil asequible - IEEE Spectrum" . Spectrum.ieee.org . Consultado el 12 de julio de 2014 .
- ^ Manual de Husarion ROSbot
- ^ "Usando ROS con Webots" . Consultado el 18 de mayo de 2018 .
- ^ KU leuven http://people.mech.kuleuven.be/%7Eu0062536/embsensor.html
- ^ "5.3.6. ROS y Radar - Documentación de Linux del procesador SDK" . software-dl.ti.com . Consultado el 1 de mayo de 2020 .
- ^ "Descargas de Ubiquity Robotics" . Consultado el 29 de enero de 2018 .
- ^ "ROSberryPi / Instalación de ROS Kinetic en Raspberry Pi" . Consultado el 29 de enero de 2018 .
- Notas
- ESCALERA: El proyecto del robot de inteligencia artificial de STanford, Andrew Y. Ng , Stephen Gould, Morgan Quigley, Ashutosh Saxena , Eric Berger. Snowbird, 2008.
Proyectos relacionados
- Middleware RT : estándar / implementaciones de middleware de robot. El componente RT es discutido / definido por el Grupo de Gestión de Objetos .
enlaces externos
- Página web oficial