Robot Operating System (ROS) ist ein Framework für persönliche Roboter und Industrieroboter. Die Entwicklung begann 2007 am Stanford Artificial Intelligence Laboratory im Rahmen des Stanford-AI-Robot-Projektes (STAIR) und wurde ab 2009 hauptsächlich am Robotikinstitut Willow Garage weiterentwickelt. Seit April 2012 wird ROS von der neu gegründeten, gemeinnützigen Organisation Open Source Robotics Foundation (OSRF) unterstützt und seit Beendigung der operativen Tätigkeit von Willow Garage 2013 von dieser koordiniert, gepflegt und weiterentwickelt. Seit 2013 beschäftigt sich das ROS Industrial Consortium mit der Förderung und Unterstützung von ROS für Anwendungen in der Industrierobotik. In Europa koordiniert das Fraunhofer IPA die Aktivitäten des ROS Industrial Consortium Europe.rosindustrial.org

Software Die Bibliotheken von ROS setzen auf Betriebssysteme wie Linux, macOS oder Windows auf.

Die Hauptbestandteile und -aufgaben von ROS sind Hardwareabstraktion Gerätetreiber Oft wiederverwendete Funktionalität Nachrichtenaustausch zwischen Programmen bzw. Programmteilen Paketverwaltung Programmbibliotheken zum Verwalten und Betreiben der Software auf mehreren Computern

Das System ist aufgeteilt in das eigentliche Betriebssystem ros und ros-pkg, eine Auswahl an Zusatzpaketen, die das Basissystem um (meist einzelne) Fähigkeiten erweitern. Dabei wird eine Serviceorientierte Architektur eingesetzt, um die Kommunikation zwischen den einzelnen Komponenten zu ermöglichen.

ROS wird unter der BSD-Lizenz veröffentlicht und ist somit der Open-Source-Szene zuzuordnen.

Bis April 2012 wurden für ROS 3699 Pakete veröffentlicht, um einzelne Funktionalitäten abzubilden.

ROS 1.x ist nicht echtzeitfähig, kann jedoch mit echtzeitfähigen Komponenten zusammenarbeiten. Ein Ziel von ROS ab der Version 2.0 ist u. a., echtzeitfähig zu sein.design.ros2.org

Seit Beginn der Entwicklung von ROS 2.0 wird zwischen ROS 1 und ROS 2 unterschieden. Die beiden Hauptversionen sind nicht miteinander kompatibel, jedoch interoperabel und können parallel ausgeführt werden. Die Motivation hinter der Entwicklung von ROS 2 ist, zu bewahren, was gut an ROS 1 ist und die Bereiche zu verbessern, die Nachteile mit sich bringen. Dazu zählen z. B. die Echtzeitfähigkeit, die Zertifizierbarkeit für (Sicherheits-)kritische Anwendungen in Endprodukten und die Ausführbarkeit auf kleinen Prozessoren, wie etwa Mikrocontrollern. Als wesentlicher Unterschied von ROS 2 im Vergleich zu ROS 1 ist der Ersatz der zuvor eigens entwickelten Middleware durch den Standard Data Distribution Service zu nennen.design.ros2.org

Entwicklungsgeschichte

ROS 1 Version Veröffentlichung Weblink Anmerkungen 2007 n/a Projektstart bzw. Erstveröffentlichung (Dosenschildkröte) 2. März 2010 wiki.ros.org/boxturtle (Meeresschildkröte/Sea turtle) 2. August 2010 wiki.ros.org/cturtle (Diamantschildkröte) 2. März 2011 wiki.ros.org/diamondback (elektrische Emys) 30. August 2011 wiki.ros.org/electric („starke Schildkröte“) 23. April 2012 wiki.ros.org/fuerte (pfundige Galapagos-Riesenschildkröte) 31. Dezember 2012 wiki.ros.org/groovy Die zur Organisation von Paketen verwendeten Stacks werden von Metapaketen abgelöst. Das ROS-eigene Build-System Catkin, welches intern das Meta-Build-System CMake verwendet, löst das frühere Rosbuild ab. 4. September 2013 wiki.ros.org/hydro 22. Juli 2014 wiki.ros.org/indigo 23. Mai 2015 wiki.ros.org/jade Kame japanisch für Schildkröte 23. Mai 2016 wiki.ros.org/kinetic (lunare Moschus- oder Karettschildkröte) Mai 2017 wiki.ros.org/lunar (melodische Pfauenaugen-Sumpfschildkröte) Mai 2018 wiki.ros.org/melodic (Noetische Ninjemys oweni) 23. Mai 2020 wiki.ros.org/noetic Letzte veröffentlichte Version die den Übergang zu ROS2 vereinfachen soll, da dort nur noch Python3 unterstützt wird, welches inkompatibel zu Python2 ist.Diese Version hatte Long Term Support (LTS) bis Mai 2025.wiki.ros.org

ROS 2 Version Veröffentlichung Weblink Anmerkungen (begeisterte Amerikanische Weichschildkröte) 8. Dezember 2017 index.ros.org (zappelige Gelbrand-Gopherschildkröte) 2. Juli 2018 index.ros.org (kristallklare Tropfenschildkröte) 14. Dezember 2018 index.ros.org (elegante Diadem-Erdschildkröte) 31. Mai 2019 index.ros.org (ausdrucksstarke Mary-River-Schildkröte) 22. Nov 2019 (listige Fitzroy-Schildkröte) 5. Juni 2020 (galaktische Geochelone) 23. Mai 2021 (bescheidene Echte Karettschildkröte) 23. Mai 2022 Diese Version hat Long Term Support (LTS) bis Mai 2027. (eiserne Irwins Schildkröte) 23. Mai 2023 https://docs.ros.org/en/iron/Releases/Release-Iron-Irwini.html (fesche Jalisco-Klappschildkröte) 23. Mai 2024 https://docs.ros.org/en/iron/Releases/Release-Jazzy-Jalisco.html (Kilt-tragender Kaijū) 23. Mai 2025 https://docs.ros.org/en/kilted/Releases.html Verwendet Eclipse Zenoh als Middleware. (Lyrische Lederschildkröte) 22. Mai 2026 https://discourse.openrobotics.org/t/ros-2-lyrical-luth-released/55021 Diese Version hat Long Term Support (LTS) bis Mai 2031.ROS 2 Lyrical Luth Released (Rollende Bastardschildkröte) Rolling Ridley

Alternativen zu ROS

Im Bereich der Robotik gibt es neben ROS verschiedene weitere Frameworks und Middleware-Lösungen, die je nach Anwendungsfall eingesetzt werden. Die folgende Tabelle gibt einen Überblick über einige verbreitete Alternativen:

Name Schwerpunkte / Besonderheiten Programmiersprache Lizenz Quelle ROS Standard-Framework, große Community, modulare Architektur C++, Python BSD ros.org OROCOS Echtzeitsteuerung, Industrie C++ LGPL orocos.org OpenRAVE Bewegungsplanung, Simulation C++, Python Apache 2.0 openrave.org YARP Modulares Kommunikationsframework C++ LGPL yarp.it MOOS Maritime Robotik, Kommunikation C++ GPL oceanai.mit.edu/moosivp LCM Leichtgewichtiges Kommunikationssystem C, C++, Java LGPL lcm-proj.github.io Zenoh Effiziente Middleware für Datenverteilung Rust EPL-2.0 zenoh.io PyRobot Einfache Python-API für verschiedene Roboter Python MIT pyrobot.org dora-rs Experimentelles, schnelles Framework in Rust Rust Apache 2.0 github.com/dora-rs/dora

Die Popularität der einzelnen Frameworks variiert stark. ROS ist mit Abstand das am weitesten verbreitete Robotik-Framework, was sich unter anderem an der Anzahl der Diskussionsbeiträge auf Entwicklerplattformen wie Stack Overflow und Robotics Stack Exchange zeigt.

Weblinks ROS.org Wiki zur Dokumentation, Pakete-Übersicht uvm. Willow Garage Videokanal von Willow Garage auf YouTube Open Source Robotics Foundation

Einzelnachweise

Kategorie:Freie Systemsoftware Kategorie:Roboter