Robot Operating System
| Tipus | entorn de treball |
|---|---|
| Versió inicial | 2007 |
| Versió estable | |
| Llicència | llicència BSD |
| Característiques tècniques | |
| Sistema operatiu | Linux, Windows 10 i macOS |
| Escrit en | C++ i Python |
| Equip | |
| 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)