Robot Operating System
Tipus | entorn de treball |
---|---|
Versió inicial | 2007 |
Versió estable | |
Llicència | llicència BSD |
Característiques tècniques | |
Sistema operatiu | Linux |
Escrit en | C++ i Python |
Equip | |
Creador/s | Keenan Wyrobek |
Desenvolupador(s) | Willow Garage i Stanford Artificial Intelligence Laboratory |
Més informació | |
Lloc web | ros.org (anglès) |
Blog | Blog oficial |
Stack Exchange | Etiqueta |
| |
El Robot Operating System, sovint abreujat com a ROS, és una estructura de desenvolupament de programari per a robots. És una col·lecció d'eines, llibreries i convencions informàtiques que tenen com a objectiu simplificar la creació i programació de robots.[1]
El software de ROS s'organitza com un conjunt de programes escrits en C++ o Python que fan tasques concretes i que comparteixen dades entre ells. Aquest tipus d'estructura permet que els programes es puguin reutilitzar i fer servir en molts tipus de robots. Això facilita i promou que es comparteixi codi i es col·labori en el desenvolupament de robots.[2] A més a més, també ofereix serveis com abstracció de hardware, controladors de dispositius a baix nivell, implementació de les funcionalitats més comunes, pas de missatges entre processos i gestió de paquets.[3]
D'ençà de la seva presentació oficial, l'any 2009, ROS s'ha popularitzat i disposa d'una important base d'usuaris, col·laboradors i empreses que l'usen.[4] La segona generació del Robot Operating System, ROS 2, es va publicar el 2020 introduint una nova arquitectura i comunicació basada en DDS.[5] Des del llançament de ROS 2 s'ha accelerat el desplegament de robots que el fan servir a més entorns i a escales més grans.[6]
Arquitectura
[modifica]Els sistemes basats en ROS estan dividits en tres capes: d'aplicació, d'intermediari i de sistema operatiu. La primera capa consisteix en diferents aplicacions, anomenades nodes, que duen a terme tasques específiques i poden compartir informació entre ells a través de missatges. Això permet aïllar possibles errors, facilita el desenvolupament i permet reutilitzar codi. Aquesta és la capa que els enginyers i programadors desenvolupen i modifiquen per cada robot.[7]
La segona capa és la d'intermediari, que s'encarrega de la comunicació entre els nodes. A ROS 2 el sistema de comunicació està basat en Data Distribution Service, un servei de distribució de dades a temps real, fiable i d'alt rendiment. A ROS 1, per altra banda, es fa servir un sistema Transmission Control Protocol o User Datagram Protocol que interactua amb un node master, encarregat de gestionar els missatges, a la capa d'aplicació.[7]
Finalment, la tercera capa és la del sistema operatiu que conté tota la resta de programari. A ROS 2 es poden fer servir els sistemes operatius més comuns: Linux, Microsoft Windows, MacOS i RTOS. Per altra banda, per desenvolupar robots amb ROS 1 només es pot fer servir Linux.[7]
Història
[modifica]Es poden destacar les següents dates:[8]
- 2007 : desenvolupat inicialment pel laboratori d'intel·ligècia artificial de la universitat Stanford.
- 2008-2013 : desenvolupat per la institució Willow Garage.[9]
- 2013 : Willow Garage és absorbida per Suitable Technologies[10]
Versions
[modifica]Distribucions del programari ROS:[11]
Distribució | Data de publicació | Data fi de vida | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Noetic Ninjemys (última distribució de ROS 1) |
23 maig 2020 | Maig 2025 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Melodic Morenia | 23 maig 2018 | 30 maig 2023 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lunar Loggerhead | 23 maig 2017 | 30 maig 2019 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kinetic Kame | 23 maig 2016 | 30 maig 2021 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jade Turtle | 23 maig 2015 | 30 maig 2017 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indigo Igloo | 22 juliol 2014 | 30 abril 2019 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hydro Medusa | 4 setembre 2013 | 31 maig 2014 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Groovy Galapagos | 31 desembre 2012 | 31 agost 2014 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fuerte Turtle | 23 abril 2012 | -- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Electric Emys | 30 agost 2011 | -- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diamondback | 2 març 2011 | -- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C Turtle | 2 agost 2010 | -- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Box Turtle | 2 març 2010 | -- | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versió antiga Versió antiga, amb suport Darrera versió Proper llançament |
Robots amb ROS
[modifica]En destaquem els següents: [12]
Nom | Fabricant | Imatge | Notes |
---|---|---|---|
0x series robots | Nex robotics | ||
RMPv3 | Segway | ||
Innok Heros | Innok Robotics | ||
ABB robotics | ABB | ||
Pioneer LX | OMRON | ||
pepper | SoftBank | ||
Allegro Hand | Wonik Robotics | ||
Amigo | Tech U Einhoven |
Referències
[modifica]- ↑ Quigley, Gerkey i D. Smart, 2015, p. 3.
- ↑ Quigley, Gerkey i D. Smart, 2015, p. 7.
- ↑ Quigley, Gerkey i D. Smart, 2015, p. 5.
- ↑ Gerkey, Brian. «ROS, the Robot Operating System, Is Growing Faster Than Ever, Celebrates 8 Years». IEEE Spectrum. Erico Guizzo, 09-12-2015. [Consulta: 1r maig 2021].
- ↑ Macenski, 2022, p. 1.
- ↑ Macenski, 2022, p. 12.
- ↑ 7,0 7,1 7,2 Maruyama, Yuya; Kato, Shinpei; Azumi, Takuya «Exploring the performance of ROS2». 2016 International Conference on Embedded Software (EMSOFT), 2016, p. 10 [Consulta: 6 març 2024].
- ↑ «ROS.org | History». www.ros.org. Arxivat de l'original el 2016-12-23. [Consulta: 22 desembre 2016].
- ↑ «Willow Garage». www.willowgarage.com. [Consulta: 23 desembre 2016].
- ↑ «Suitable Technologies Beam Smart Presence System». suitabletech.com. [Consulta: 23 desembre 2016].
- ↑ «Distributions - ROS Wiki». wiki.ros.org. [Consulta: 22 desembre 2016].
- ↑ «Robots - ROS Wiki». wiki.ros.org. [Consulta: 22 desembre 2016].
- ↑ Quigley, Gerkey i D. Smart, 2015, p. 91.
- ↑ Ackerman, Evan «TurtleBot 2 Prototype Unveiled at ROSCon». IEEE Spectrum, 21-05-2012 [Consulta: 4 octubre 2020].
Bibliografia
[modifica]- Macenski, Steven; Foote, Tully; Gerkey, Brian; Lalancette, Chris; Woodall, William «Robot Operating System 2: Design, architecture, and uses in the wild». Science Robotics, 2022, p. 13. DOI: 10.1126/scirobotics.abm6074 [Consulta: 15 desembre 2023].
- Quigley, Morgan; Gerkey, Brian; D. Smart, William. Programming Robots with ROS. Sebastopol, CA: O'Reilly Media, Inc., 2015, p. 425. ISBN 978-1-449-32389-9 [Consulta: 23 abril 2021].
Enllaços externs
[modifica]- Pàgina web oficial de ROS: www.ros.org (anglès)
- Tutorials d'ús de ROS (anglès)
- Repositori de ROS a Github (anglès)