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
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]
Comparativa entre l'arquitectura de ROS 1 i ROS 2.
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]
↑ 7,07,17,2Maruyama, Yuya; Kato, Shinpei; Azumi, Takuya «Exploring the performance of ROS2». 2016 International Conference on Embedded Software (EMSOFT), 2016, p. 10 [Consulta: 6 març 2024].
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].