Roboter-Betriebssystem - Robot Operating System
|
Logo des Roboterbetriebssystems
| |
|
Wagenschiebesimulation in RVIZ
| |
| Originalautor(en) |
Willow Garage Stanford Artificial Intelligence Laboratory Open Robotics |
|---|---|
| Erstveröffentlichung | 2007 |
| Stabile Version | Galaktisches Geochelon (ROS 2) / 23. Mai 2021
|
| Vorschauversion | Rollendes Ridley (ROS 2)
|
| Repository | |
| Geschrieben in | C++ , Python oder Lisp |
| Betriebssystem | Linux , MacOS (experimentell), Windows 10 (experimentell) |
| Typ | Robotik-Suite , Betriebssystem , Bibliothek |
| Lizenz | Apache-Lizenz 2.0 |
| Webseite | www |
Robot Operating System ( ROS oder ros ) ist eine Open-Source- Robotik-Middleware- Suite. Obwohl ROS kein Betriebssystem, sondern eine Sammlung von Software-Frameworks für die Roboter- Softwareentwicklung ist, bietet es Dienste, die für einen heterogenen Computercluster konzipiert sind, wie Hardware-Abstraktion , Low-Level- Gerätesteuerung , Implementierung häufig verwendeter Funktionalität, Message-Passing zwischen Prozessen , und Paketverwaltung. Laufende Sätze von ROS-basierten Prozessen werden in einer Graphenarchitektur dargestellt, in der die Verarbeitung in Knoten stattfindet, die Sensordaten, Steuer-, Zustands-, Planungs-, Aktuator- und andere Nachrichten empfangen, posten und multiplexen können. Trotz der Bedeutung der Reaktivität und niedriger Latenzzeiten in der Robotersteuerung, ROS selbst ist nicht ein Echtzeitbetriebssystem (RTOS). Es ist jedoch möglich, ROS mit Echtzeitcode zu integrieren. Der Mangel an Unterstützung für Echtzeitsysteme wurde bei der Entwicklung von ROS 2 behoben, einer großen Überarbeitung der ROS-API, die moderne Bibliotheken und Technologien für die ROS-Kernfunktionalität nutzt und Unterstützung für Echtzeitcode und eingebettete Hardware hinzufügt .
Software im ROS-Ökosystem kann in drei Gruppen unterteilt werden:
- sprach- und plattformunabhängige Tools zum Erstellen und Verteilen von ROS-basierter Software;
- Implementierungen von ROS-Clientbibliotheken wie roscpp, rospy und roslisp;
- Pakete, die anwendungsbezogenen Code enthalten, der eine oder mehrere ROS-Clientbibliotheken verwendet.
Sowohl die sprachunabhängigen Tools als auch die wichtigsten Clientbibliotheken ( C++ , Python und Lisp ) werden unter den Bedingungen der BSD-Lizenz veröffentlicht und sind als solche Open-Source-Software und sowohl für kommerzielle als auch für Forschungszwecke kostenlos. Die meisten anderen Pakete sind unter verschiedenen Open-Source-Lizenzen lizenziert . Diese anderen Pakete implementieren häufig verwendete Funktionen und Anwendungen wie Hardwaretreiber, Robotermodelle, Datentypen, Planung, Wahrnehmung , gleichzeitige Lokalisierung und Kartierung , Simulationswerkzeuge und andere Algorithmen.
Die wichtigsten ROS-Clientbibliotheken sind auf ein Unix-ähnliches System ausgerichtet, hauptsächlich aufgrund ihrer Abhängigkeit von großen Sammlungen von Open-Source-Softwareabhängigkeiten. Für diese Clientbibliotheken wird Ubuntu Linux als "Unterstützt" aufgeführt, während andere Varianten wie Fedora Linux , macOS und Microsoft Windows als "experimentell" bezeichnet und von der Community unterstützt werden. Die native Java ROS-Clientbibliothek rosjava teilt diese Einschränkungen jedoch nicht und ermöglicht es, ROS-basierte Software für das Android-Betriebssystem zu schreiben . rosjava hat es auch ermöglicht, ROS in eine offiziell unterstützte MATLAB- Toolbox zu integrieren , die unter Linux , macOS und Microsoft Windows verwendet werden kann. Mit roslibjs wurde auch eine JavaScript- Client-Bibliothek entwickelt, die die Integration von Software in ein ROS-System über jeden standardkonformen Webbrowser ermöglicht.
Geschichte
Anfänge in Stanford (2007 und früher)
Irgendwann vor 2007 begannen die ersten Teile dessen, was schließlich ROS werden sollte, an der Stanford University zusammenzukommen . Eric Berger und Keenan Wyrobek , Doktoranden, die im Roboterlabor von Kenneth Salisbury in Stanford arbeiten, leiteten das Personal Robotics Program. Bei der Arbeit an Robotern, die Manipulationsaufgaben in menschlichen Umgebungen ausführen, stellten die beiden Studenten fest, dass viele ihrer Kollegen von der Vielfältigkeit der Robotik zurückgehalten wurden: Ein ausgezeichneter Softwareentwickler verfügt möglicherweise nicht über die erforderlichen Hardwarekenntnisse, jemand entwickelt den neuesten Stand der Technik Planung möglicherweise nicht wissen, wie die erforderliche Computer Vision ausgeführt werden soll. Um Abhilfe zu schaffen, machten sich die beiden Studenten daran, ein Basissystem zu entwickeln, das anderen in der Wissenschaft einen Ausgangspunkt bieten würde, auf dem sie aufbauen können. In den Worten von Eric Berger "etwas, das in all diesen verschiedenen Dimensionen nicht saugt".
In ihren ersten Schritten zu diesem vereinheitlichenden System bauten die beiden den PR1 als Hardware-Prototyp und begannen damit, an der Software zu arbeiten, wobei sie sich die Best Practices von anderen frühen Open-Source-Roboter-Software-Frameworks anlehnten, insbesondere von Switchyard, einem System, das Morgan Quigley, ein anderer Stanford-Doktorand, hatte an der Unterstützung des STAIR (STanford Artificial Intelligence Robot) durch das Stanford Artificial Intelligence Laboratory gearbeitet . Eine frühe Finanzierung von 50.000 US-Dollar wurde von Joanna Hoffman und Alain Rossmann bereitgestellt , die die Entwicklung des PR1 unterstützten. Auf der Suche nach Geldern für die weitere Entwicklung trafen Eric Berger und Keenan Wyrobek Scott Hassan , den Gründer von Willow Garage , einem Technologie-Inkubator, der an einem autonomen SUV und einem autonomen Solarboot arbeitete. Hassan teilte Bergers und Wyrobeks Vision eines "Linux für die Robotik" und lud sie ein, bei Willow Garage zu arbeiten. Willow Garage wurde im Januar 2007 gestartet und am 7. November 2007 wurde der erste ROS-Code an SourceForge übertragen.
Weidengarage (2007-2013)
Willow Garage begann mit der Entwicklung des PR2- Roboters als Nachfolger des PR1 und ROS als Software, um ihn auszuführen. Gruppen aus mehr als zwanzig Institutionen leisteten Beiträge zu ROS, sowohl der Kernsoftware als auch der wachsenden Anzahl von Paketen, die mit ROS zusammenarbeiteten, um ein größeres Software-Ökosystem zu bilden. Die Tatsache, dass Leute außerhalb von Willow zu ROS beitrugen (insbesondere aus Stanfords STAIR-Projekt), bedeutete, dass ROS von Anfang an eine Multi-Roboter-Plattform war. Während Willow Garage ursprünglich andere Projekte im Gange hatte, wurden sie zugunsten des Personal Robotics Program verschrottet: konzentrierte sich auf die Herstellung des PR2 als Forschungsplattform für Hochschulen und ROS als Open-Source-Robotik-Stack, der sowohl der akademischen Forschung als auch der Technologie zugrunde liegen würde Startups, ähnlich wie der LAMP-Stack für webbasierte Startups.
Im Dezember 2008 erreichte Willow Garage den ersten ihrer drei internen Meilensteine: kontinuierliche Navigation für den PR2 über einen Zeitraum von zwei Tagen und eine Distanz von pi Kilometern. Kurz darauf wurde eine frühe Version von ROS (0.4 Mango Tango) veröffentlicht, gefolgt von der ersten RVIZ-Dokumentation und dem ersten Papier über ROS. Im Frühsommer wurde der zweite interne Meilenstein erreicht: Den PR2 durchs Büro navigieren, Türen öffnen und sich selbst einstecken zu lassen. Darauf folgte im August die Initiierung der Website ROS.org. Erste Tutorials zu ROS wurden im Dezember veröffentlicht, um die Veröffentlichung von ROS 1.0 im Januar 2010 vorzubereiten. Dies war Meilenstein 3: Tonnen von Dokumentationen und Tutorials für die enormen Fähigkeiten, die die Ingenieure von Willow Garage in den letzten 3 Jahren entwickelt hatten.
Danach erreichte Willow Garage eines ihrer am längsten gehaltenen Ziele: 10 PR2-Roboter an würdige akademische Institutionen zu verschenken. Dies war schon lange ein Ziel der Gründer, da sie der Meinung waren, dass der PR2 die Robotikforschung auf der ganzen Welt ankurbeln könnte. Am Ende vergaben sie elf PR2s an verschiedene Institutionen, darunter Universität Freiburg (Deutschland) , Bosch , Georgia Tech , KU Leuven (Belgien) , MIT , Stanford , TU München (Deutschland) , UC Berkeley , U Penn , USC und University of Tokio (Japan) . In Kombination mit dem äußerst erfolgreichen Praktikumsprogramm von Willow Garage (von 2008 bis 2010 von Melonee Wise durchgeführt ) trug dies dazu bei, ROS in der Robotikwelt bekannt zu machen. Die erste offizielle Version der ROS-Distribution: ROS Box Turtle, wurde am 2. März 2010 veröffentlicht und markierte das erste Mal, dass ROS offiziell mit einer Reihe von versionierten Paketen für die öffentliche Verwendung verteilt wurde. Diese Entwicklungen führten zur ersten Drohne mit ROS, dem ersten autonomen Auto mit ROS und der Adaption von ROS für Lego Mindstorms . Nachdem das PR2-Beta-Programm in vollem Gange war, wurde der PR2-Roboter am 9. September 2010 offiziell für den kommerziellen Kauf freigegeben.
2011 war ein herausragendes Jahr für ROS mit der Einführung von ROS Answers, einem Q/A-Forum für ROS-Benutzer, am 15. Februar; die Einführung des sehr erfolgreichen TurtleBot- Roboter-Kits am 18. April; und die Gesamtzahl der ROS-Repositories, die am 5. Mai 100 überschritten hat. Willow Garage begann 2012 mit der Gründung der Open Source Robotics Foundation (OSRF) im April. Das OSRF erhielt umgehend einen Softwarevertrag von der Defense Advanced Research Projects Agency (DARPA). Später in diesem Jahr fand die erste ROSCon in St. Paul, Minnesota, statt, das erste Buch über ROS, ROS By Example , wurde veröffentlicht und Baxter , der erste kommerzielle Roboter, der ROS ausführte, wurde von Rethink Robotics angekündigt . Kurz nach seinem fünfjährigen Bestehen im November startete ROS am 3. Dezember 2012 auf allen Kontinenten.
Im Februar 2013 wurde die OSRF zum wichtigsten Software-Maintainer für ROS, was die Ankündigung im August vorwegnahm, dass Willow Garage von ihren Gründern, Compatible Technologies, übernommen werden würde . Zu diesem Zeitpunkt hatte ROS sieben Hauptversionen (bis ROS Groovy) veröffentlicht und hatte Benutzer auf der ganzen Welt. Dieses Kapitel der ROS-Entwicklung würde abgeschlossen, als Clearpath Robotics Anfang 2014 die Supportverantwortung für den PR2 übernahm.
OSRF und Open Robotics (2013–heute)
In den Jahren, seit OSRF die primäre Entwicklung von ROS übernommen hat, wurde jedes Jahr eine neue Version veröffentlicht, während das Interesse an ROS weiter wächst. ROSCons finden seit 2012 jedes Jahr zusammen mit ICRA oder IROS statt , zwei Flaggschiff-Robotik-Konferenzen. Meetups von ROS-Entwicklern wurden in einer Vielzahl von Ländern organisiert, eine Reihe von ROS-Büchern veröffentlicht und viele Bildungsprogramme initiiert. Am 1. September 2014 kündigte die NASA den ersten Roboter an, der ROS im Weltraum ausführt : Robotnaut 2 auf der Internationalen Raumstation ISS . 2017 hat die OSRF ihren Namen in Open Robotics geändert . Die Technologiegiganten Amazon und Microsoft begannen sich in dieser Zeit für ROS zu interessieren, wobei Microsoft im September 2018 Kern-ROS auf Windows portierte, gefolgt von Amazon Web Services, die im November 2018 RoboMaker veröffentlichten.
Die vielleicht wichtigste Entwicklung der OSRF/Open Robotics-Jahre bisher (nicht zu vergessen die Explosion von Roboterplattformen, die ROS zu unterstützen begannen oder die enormen Verbesserungen in jeder ROS-Version) war der Vorschlag von ROS 2, einer signifikanten API-Änderung von ROS die Echtzeitprogrammierung , eine größere Vielfalt von Computerumgebungen und die Nutzung modernerer Technologien unterstützen soll. ROS 2 wurde auf der ROSCon 2014 angekündigt, die ersten Commits für das ros2-Repository wurden im Februar 2015 vorgenommen, gefolgt von Alpha-Releases im August 2015. Die erste Distributions-Release von ROS 2, Ardent Apalone, wurde am 8. Dezember 2017 veröffentlicht und läutete a . ein neue Ära der ROS-Entwicklung der nächsten Generation.
Entwurf
Philosophie
ROS wurde im Hinblick auf Open Source entwickelt, um Benutzern die Möglichkeit zu geben, die Konfiguration von Tools und Bibliotheken zu wählen, die mit dem Kern von ROS interagierten, sodass Benutzer ihre Software-Stacks an ihren Roboter und ihren Anwendungsbereich anpassen können. Als solches gibt es nur sehr wenig, was ROS eigentlich ausmacht, über die allgemeine Struktur hinaus, in der Programme existieren und kommunizieren müssen. In gewisser Hinsicht ist ROS die zugrunde liegende Installation hinter Knoten und Nachrichtenweiterleitung. In Wirklichkeit ist ROS jedoch nicht nur diese Installation, sondern ein reichhaltiger und ausgereifter Satz von Tools, ein weitreichender Satz roboterunabhängiger Funktionen, die von Paketen bereitgestellt werden, und ein größeres Ökosystem von Ergänzungen zu ROS.
Berechnungsgraphenmodell
ROS-Prozesse werden als Knoten in einer Graphenstruktur dargestellt, die durch Kanten, die Topics genannt werden, verbunden sind. ROS-Knoten können Nachrichten über Themen aneinander weiterleiten, Dienstaufrufe an andere Knoten tätigen, einen Dienst für andere Knoten bereitstellen oder gemeinsam genutzte Daten aus einer gemeinsamen Datenbank namens Parameterserver festlegen oder abrufen. Ein Prozess namens ROS-Master macht all dies möglich, indem er Knoten bei sich selbst registriert, eine Knoten-zu-Knoten-Kommunikation für Themen einrichtet und Parameterserver-Updates steuert. Nachrichten und Dienstaufrufe passieren nicht den Master, sondern der Master baut eine Peer-to-Peer-Kommunikation zwischen allen Knotenprozessen auf, nachdem sie sich beim Master registriert haben. Diese dezentrale Architektur eignet sich gut für Roboter, die oft aus einer Teilmenge vernetzter Computerhardware bestehen und für umfangreiche Berechnungen oder Befehle mit externen Computern kommunizieren können.
Knoten
Ein Knoten stellt einen einzelnen Prozess dar, der den ROS-Graphen ausführt. Jeder Knoten hat einen Namen, den er beim ROS-Master registriert, bevor er andere Aktionen ausführen kann. Mehrere Knoten mit unterschiedlichen Namen können unter verschiedenen Namensräumen existieren oder ein Knoten kann als anonym definiert werden. In diesem Fall generiert er zufällig einen zusätzlichen Bezeichner, der seinem gegebenen Namen hinzugefügt wird. Knoten stehen im Mittelpunkt der ROS-Programmierung, da der meiste ROS-Client-Code in Form eines ROS-Knotens vorliegt, der Aktionen basierend auf von anderen Knoten empfangenen Informationen durchführt, Informationen an andere Knoten sendet oder Anfragen für Aktionen an und von anderen sendet und empfängt Knoten.
Themen
Themen sind benannte Busse, über die Knoten Nachrichten senden und empfangen. Themennamen müssen auch innerhalb ihres Namensraums eindeutig sein. Um Nachrichten an ein Thema zu senden, muss ein Knoten zu diesem Thema veröffentlichen, während er Nachrichten abonnieren muss, um Nachrichten zu empfangen. Das Publish/Subscribe-Modell ist anonym: Kein Knoten weiß, welche Knoten zu einem Thema senden oder empfangen, sondern nur, dass er zu diesem Thema sendet/empfängt. Die Arten von Nachrichten, die zu einem Thema weitergegeben werden, sind sehr unterschiedlich und können benutzerdefiniert sein. Der Inhalt dieser Nachrichten kann Sensordaten, Motorsteuerbefehle, Zustandsinformationen, Aktorbefehle oder alles andere sein.
Dienstleistungen
Ein Knoten kann auch Dienste ankündigen. Ein Dienst stellt eine Aktion dar, die ein Knoten ausführen kann, die zu einem einzigen Ergebnis führt. Als solche werden Dienste oft für Aktionen verwendet, die einen definierten Anfang und ein definiertes Ende haben, wie zum Beispiel das Erfassen eines Einzelbildbildes, anstatt Geschwindigkeitsbefehle an einen Radmotor oder Kilometerzählerdaten von einem Radcodierer zu verarbeiten. Knoten bieten Dienste an und rufen Dienste voneinander auf.
Parameterserver
Der Parameterserver ist eine von Knoten gemeinsam genutzte Datenbank, die den gemeinsamen Zugriff auf statische oder halbstatische Informationen ermöglicht. Daten, die sich nicht häufig ändern und daher selten abgerufen werden, wie der Abstand zwischen zwei festen Punkten in der Umgebung oder das Gewicht des Roboters, sind gute Kandidaten für die Speicherung im Parameterserver.
Werkzeuge
Die Kernfunktionalität von ROS wird durch eine Vielzahl von Tools erweitert, die es Entwicklern ermöglichen, Daten zu visualisieren und aufzuzeichnen, einfach durch die ROS-Paketstrukturen zu navigieren und Skripte zu erstellen, die komplexe Konfigurations- und Einrichtungsprozesse automatisieren. Das Hinzufügen dieser Tools erhöht die Fähigkeiten von Systemen, die ROS verwenden, erheblich, indem sie eine Reihe allgemeiner Entwicklungsprobleme in der Robotik vereinfachen und Lösungen bereitstellen. Diese Tools werden wie jeder andere Algorithmus in Paketen bereitgestellt, aber anstatt Implementierungen von Hardwaretreibern oder Algorithmen für verschiedene Roboteraufgaben bereitzustellen, bieten diese Pakete aufgaben- und roboterunabhängige Tools, die im Kern der meisten modernen ROS-Installationen enthalten sind.
rviz
rviz ist ein dreidimensionaler Visualizer zur Visualisierung von Robotern, der Umgebung, in der sie arbeiten, und Sensordaten. Es ist ein hochgradig konfigurierbares Tool mit vielen verschiedenen Arten von Visualisierungen und Plugins.
rosbag
rosbag ist ein Befehlszeilentool zum Aufzeichnen und Wiedergeben von ROS-Nachrichtendaten. rosbag verwendet ein Dateiformat namens Bags, das ROS-Nachrichten protokolliert, indem Themen abgehört und eingehende Nachrichten aufgezeichnet werden Taschen ein nützliches Werkzeug zum Aufzeichnen von Daten für die spätere Entwicklung. Während rosbag ein reines Kommandozeilen-Tool ist, bietet rqt_bag eine GUI-Schnittstelle für rosbag.
Kätzchen
catkin ist das ROS-Build-System, das rosbuild ab ROS Groovy ersetzt hat. catkin basiert auf CMake und ist gleichermaßen plattformübergreifend, quelloffen und sprachunabhängig.
rosbash
Das rosbash-Paket bietet eine Reihe von Tools, die die Funktionalität der Bash-Shell erweitern . Zu diesen Werkzeugen gehören rosls, roscd und roscp, die die Funktionen von ls , cd bzw. cp replizieren . Die ROS-Versionen dieser Tools ermöglichen Benutzern die Verwendung von ros-Paketnamen anstelle des Dateipfads, in dem sich das Paket befindet. Das Paket fügt den meisten ROS-Dienstprogrammen auch Tab-Vervollständigung hinzu und enthält rosed, das eine bestimmte Datei mit dem ausgewählten Standard-Texteditor bearbeitet, sowie rosrun, das ausführbare Dateien in ROS-Paketen ausführt. rosbash unterstützt in geringerem Maße die gleichen Funktionalitäten für zsh und tcsh .
roslaunch
roslaunch ist ein Tool zum Starten mehrerer ROS-Knoten sowohl lokal als auch remote sowie zum Einstellen von Parametern auf dem ROS-Parameterserver. roslaunch-Konfigurationsdateien, die mit XML geschrieben wurden, können einen komplexen Start- und Konfigurationsprozess leicht in einem einzigen Befehl automatisieren. roslaunch-Skripte können andere roslaunch-Skripte enthalten, Knoten auf bestimmten Maschinen starten und sogar Prozesse neu starten, die während der Ausführung abbrechen.
Bemerkenswerte Pakete
ROS enthält viele Open-Source-Implementierungen gängiger Robotikfunktionen und -algorithmen. Diese Open-Source-Implementierungen sind in Paketen organisiert. Viele Pakete sind als Teil von ROS-Distributionen enthalten, während andere von Einzelpersonen entwickelt und über Code-Sharing-Sites wie github verteilt werden können. Einige beachtenswerte Pakete beinhalten:
Systeme und Werkzeuge
- actionlib bietet eine standardisierte Schnittstelle für die Schnittstelle zu präemptiven Tasks.
- Nodelet bietet eine Möglichkeit, mehrere Algorithmen in einem einzigen Prozess auszuführen.
- rosbridge bietet eine JSON-API für ROS-Funktionalitäten für Nicht-ROS-Programme.
Kartierung und Lokalisierung
- Die slam-Toolbox bietet ein vollständiges 2D-SLAM- und Lokalisierungssystem.
- gmapping bietet einen Wrapper für den Gmapping- Algorithmus von OpenSlam zur gleichzeitigen Lokalisierung und Zuordnung .
- cartographer bietet 2D- und 3D-SLAM-Algorithmen in Echtzeit, die von Google entwickelt wurden .
- amcl bietet eine Implementierung der adaptiven Monte-Carlo-Lokalisierung.
- Navigation bietet die Möglichkeit, einen mobilen Roboter in einer ebenen Umgebung zu navigieren.
Wahrnehmung
- vision_opencv ist ein Meta-Paket, das Pakete für die Integration von ROS mit OpenCV bereitstellt .
Koordinatenrahmendarstellung
- tf stellte ein System zum Darstellen, Verfolgen und Transformieren von Koordinatensystemen zur Verfügung, bis ROS Hydro es zugunsten von tf2 verworfen hatte.
- tf2 ist die zweite Generation der tf-Bibliothek und bietet die gleichen Fähigkeiten für ROS-Versionen nach Hydro.
Simulation
- Gazebo_ros_pkgs ist ein Meta-Paket, das Pakete für die Integration von ROS mit dem Gazebo- Simulator bereitstellt .
- Stufe stellt eine Schnittstelle für den 2D - Bühne - Simulator.
Versionen und Releases
ROS-Releases sind möglicherweise mit anderen Releases nicht kompatibel und werden oft nicht mit der Versionsnummer, sondern mit dem Codenamen bezeichnet. ROS veröffentlicht derzeit jedes Jahr im Mai eine Version, nach der Veröffentlichung von Ubuntu LTS-Versionen. ROS 2 veröffentlicht derzeit alle sechs Monate (im Dezember und Juli) eine neue Version. Diese Releases werden ein Jahr lang unterstützt. Aktuell gibt es zwei aktive Major-Versionen mit Releases: ROS 1 und ROS 2. Daneben gibt es seit mindestens 2012 das ROS-Industrial- bzw. ROS-I-Derivate-Projekt.
ROS 1
ROS 2
| Verteilung | Veröffentlichungsdatum | Poster | EOL-Datum | Supportdauer | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rolling Ridley (Rolling-Release mit den neuesten Features) |
läuft seit Juni 2020 |
(Unbekannt) | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (J Schildkröte) | Mai 2024 | noch | EUROPÄISCHE SOMMERZEIT. Mai 2029 | 5 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (Ich Schildkröte) | Mai 2023 | noch | EUROPÄISCHE SOMMERZEIT. November 2024 | 1,5 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bescheidene Karettschildkröte | Mai 2022 | noch | EUROPÄISCHE SOMMERZEIT. Mai 2027 | 5 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Galaktische Geochelone | 23. Mai 2021 |
|
Nov. 2022 | 1,5 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Foxy Fitzroy | 5. Juni 2020 |
|
Mai 2023 | 2 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beredter Elusor | 22. November 2019 |
|
Nov. 2020 | 1 Jahr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Schneidige Diademate | 31. Mai 2019 |
|
Mai 2021 | 2 Jahre | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Kristall Clemmys | 14. Dezember 2018 |
|
Dezember 2019 | 1 Jahr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Federnder Bolson | 2. Juli 2018 |
|
Juli 2019 | 1 Jahr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Glühender Apalone | 8. Dezember 2017 |
|
Dezember 2018 | 1 Jahr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beta3 | 13. September 2017 | N / A | Dezember 2017 | 4 Monate | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beta2 | 5. Juli 2017 | N / A | September 2017 | 2 Monate | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ROS 2-Echtzeit-Vorschlag) | 7. Januar 2016 | N / A | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beta1 | 19. Dezember 2016 | N / A | Juli 2017 | 7 Monate | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| alpha1 (Anker) - alpha8 (Klettverschluss) |
31. August 2015 - 5. Oktober 2016 |
N / A | Dezember 2016 | insgesamt: 16 Monate | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ("Warum ROS2?") | 20. Juli 2015 | N / A | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (Batch-CI-Jobs für ROS 2 und http://design.ros2.org ) |
in Q&A vom 6. Mai 2015 erwähnt |
N / A | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (zuerst Commits in das ROS 2-Repository) |
Februar 2015 | N / A | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ROSCon 2014: „ROS der nächsten Generation: Aufbauend auf DDS“, „ROS 2.0: Entwicklervorschau“ |
12. September 2014 | N / A | N / A | N / A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Zukünftige Veröffentlichung
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ROS-Industrie
ROS-Industrial ist ein Open-Source-Projekt (BSD (Legacy)/Apache 2.0 (bevorzugt) Lizenz), das die erweiterten Fähigkeiten von ROS auf die Fertigungsautomatisierung und Robotik ausdehnt. Im industriellen Umfeld gibt es zwei verschiedene Ansätze zur Programmierung eines Roboters: entweder über eine externe proprietäre Steuerung, die typischerweise mit ROS implementiert wird. Oder über die jeweilige native Programmiersprache des Roboters. ROS kann daher als softwarebasierter Ansatz zur Programmierung von Industrierobotern anstelle des klassischen robotersteuerungsbasierten Ansatzes angesehen werden.
Das ROS-Industrial Repository umfasst Schnittstellen für gängige industrielle Manipulatoren, Greifer, Sensoren und Gerätenetzwerke. Es bietet auch Softwarebibliotheken für die automatische 2D/3D-Sensorkalibrierung, Prozesspfad-/Bewegungsplanung, Anwendungen wie Scan-N-Plan, Entwicklertools wie das Qt Creator ROS Plugin und ein speziell auf die Bedürfnisse der Hersteller zugeschnittenes Schulungsprogramm. ROS-I wird von einem internationalen Konsortium aus Industrie- und Forschungsmitgliedern unterstützt. Das Projekt begann als Kooperation zwischen Yaskawa Motoman Robotics, Southwest Research Institute und Willow Garage, um den Einsatz von ROS für die Fertigungsautomatisierung zu unterstützen, wobei das GitHub-Repository im Januar 2012 von Shaun Edwards (SwRI) gegründet wurde. Derzeit ist das Konsortium in drei Gruppen unterteilt; das ROS-Industrial Consortium Americas (unter der Leitung von SwRI und mit Sitz in San Antonio, Texas), das ROS-Industrial Consortium Europe (unter der Leitung des Fraunhofer IPA und mit Sitz in Stuttgart, Deutschland) und das ROS-Industrial Consortium Asia Pacific (unter der Leitung von Advanced Remanufacturing .) and Technology Center (ARTC) und der Nanyang Technological University (NTU) mit Sitz in Singapur).
Die Konsortien unterstützen die globale ROS-Industrial-Community durch die Durchführung von ROS-I-Schulungen, die Bereitstellung von technischem Support und die Festlegung der zukünftigen Roadmap für ROS-I sowie die Durchführung vorwettbewerblicher gemeinsamer Industrieprojekte zur Entwicklung neuer ROS-I-Fähigkeiten.
ROS-kompatible Roboter und Hardware
Roboter
- ABB , Adept, Fanuc , Motoman und Universal Robots werden von ROS-Industrial unterstützt .
- Baxter bei Rethink Robotics , Inc.
- CK-9: Robotik-Entwicklungskit von Centauri Robotics, unterstützt ROS.
- HERB entwickelt an der Carnegie Mellon University in Intels Personal Robotics Program
- Husky A200: Roboter entwickelt (und in ROS integriert) von Clearpath Robotics
- PR1: persönlicher Roboter, entwickelt in Ken Salisburys Labor in Stanford
- PR2: Persönlicher Roboter wird in Willow Garage entwickelt
- Raven II chirurgische Roboterforschungsplattform
- Shadow Robot Hand: eine voll geschickte humanoide Hand.
- STAIR I und II: Roboter entwickelt in Andrew Ngs Labor in Stanford
- SummitXL: mobiler Roboter, entwickelt von Robotnik , einem auf mobile Roboter, Roboterarme und Industrielösungen mit ROS-Architektur spezialisierten Ingenieurbüro.
- Humanoid Nao: Das Humanoid Robots Lab der Universität Freiburg entwickelte eine ROS-Integration für den Humanoiden Nao basierend auf einer ersten Portierung der Brown University
- UBR1: entwickelt von Unbounded Robotics, einem Spin-off von Willow Garage.
- ROSbot: autonome Roboterplattform von Husarion
- Webots : Robotersimulator, der eine komplette ROS-Programmierschnittstelle integriert.
- GoPiGo3: Raspberry Pi-basierter Lernroboter, unterstützt ROS.
SBCs und Hardware
- BeagleBoard: Das Robotiklabor der Katholieke Universiteit Leuven , Belgien, hat ROS auf das Beagleboard portiert .
- Sitara ARM-Prozessoren unterstützen das ROS-Paket als Teil des offiziellen Linux-SDK.
- Raspberry Pi: Image von Ubuntu Mate mit ROS von Ubiquity Robotics; Installationsanleitung für Raspbian.
Siehe auch
- Offene Hardware
- Robotik-Middleware
- Quelloffene Software
- Liste der kostenlosen und Open-Source-Softwarepakete
Verweise
- Anmerkungen
- TREPPE: Das STanford Artificial Intelligence Robot-Projekt, Andrew Y. Ng , Stephen Gould, Morgan Quigley, Ashutosh Saxena , Eric Berger. Schneevogel, 2008.
Ähnliche Projekte
- RT-Middleware – Roboter-Middleware-Standard/Implementierungen. Die RT-Komponente wird von der Object Management Group diskutiert/definiert .