{"id":6337,"date":"2019-12-17T12:04:23","date_gmt":"2019-12-17T11:04:23","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=6337"},"modified":"2024-07-12T11:01:14","modified_gmt":"2024-07-12T09:01:14","slug":"ros2-was-andert-sich-gegenuber-ros","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/de\/ros2-was-andert-sich-gegenuber-ros\/","title":{"rendered":"ROS2: Was \u00e4ndert sich gegen\u00fcber ROS?"},"content":{"rendered":"\n<html>\n <body>\n  <p>\n   Derzeit gibt es nur zwei Versionen der ROS-Middleware: ROS und ROS2. Die erste ROS-Version wird mitunter auch ROS1 genannt.\n  <\/p>\n\n\n\n<p>\n   In diesem Artikel nennen wir diese erste Version \u201eROS\u201c und die zweite Version \u201eROS2\u201c. Es scheint uns wichtig, darauf hinzuweisen, dass sich ROS2 derzeit in der Entwicklungsphase befindet. Einige Pakete wurden bereits freigegeben, aber die meisten davon sind noch nicht einsatzbereit. Zudem sind einige Funktionen von ROS2 noch nicht verf\u00fcgbar.\n  <\/p>\n\n\n\n<p>\n   Wir raten Ihnen, sich \u00fcber die neuen Funktionen von ROS2 auf dem Laufenden zu halten und diese zu testen, bis eine stabile und komplette Version verf\u00fcgbar ist.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ruckblick-was-ist-ros\">\n   R\u00fcckblick: Was ist ROS?\n  <\/h2>\n\n\n\n<p>\n   Das Robot Operating System (ROS) ist ein Set von Software-Bibliotheken und Open-Source-Tools, die die Entwicklung von Roboteranwendungen unterst\u00fctzen.\n  <\/p>\n\n\n\n<p>\n   Mit Treibern und hochmodernen Algorithmen sowie leistungsstarken Entwicklungstools ist ROS genau das, was Sie f\u00fcr Ihr n\u00e4chstes Projekt im Bereich der Robotertechnik brauchen. Weitere Informationen finden Sie in unserem vorherigen\n   <a class=\"catalogue\" href=\"\/blog\/de\/ros-robot-operating-system\/\" title=\"ROS Tutorial\">\n    Beitrag zu ROS\n   <\/a>\n   , in dem Sie einen \u00dcberblick \u00fcber ROS, die Kommunikationsprotokolle und verf\u00fcgbaren Tools zur Optimierung Ihrer Entwicklungen erhalten.\n  <\/p>\n\n\n\n<p>\n   Um ROS2 zu testen, muss zun\u00e4chst Ubuntu installiert werden (falls dies noch nicht geschehen ist). Achten Sie auf die Ubuntu-Version, die Sie installieren, denn je nach Version kann das ROS\/ROS2-Vertriebspaket variieren:\n  <\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\n       <strong>\n        Ubuntu-Version\n       <\/strong>\n      <\/td><td>\n       <strong>\n        ROS-Vertriebspaket\n       <\/strong>\n      <\/td><td>\n       <strong>\n        ROS2-Vertriebspaket\n       <\/strong>\n      <\/td><\/tr><tr><td>\n       Ubuntu 16.04 \u2014\n       <a class=\"catalogue\" href=\"https:\/\/tutorials.ubuntu.com\/tutorial\/tutorial-install-ubuntu-desktop-1604#0\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Ubuntu Xenial \u2014 Installation\">\n        Xenial\n       <\/a>\n      <\/td><td>\n       <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/kinetic\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS Kinetic \u2014 Installation\">\n        Kinetic\n       <\/a>\n      <\/td><td>\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Bouncy-Bolson\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Bouncy \u2014 Installation\">\n        Bouncy\n       <\/a>\n       &amp;\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Crystal-Clemmys\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Crystal \u2014 Installation\">\n        Crystal\n       <\/a>\n      <\/td><\/tr><tr><td>\n       Ubuntu 18.04 \u2014\n       <a class=\"catalogue\" href=\"https:\/\/tutorials.ubuntu.com\/tutorial\/tutorial-install-ubuntu-desktop#0\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"Ubuntu Bionic \u2014 Installation\">\n        Bionic\n       <\/a>\n      <\/td><td>\n       <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/melodic\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS Melodic \u2014 Installation\">\n        Melodic\n       <\/a>\n      <\/td><td>\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Crystal-Clemmys\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Crystal \u2014 Installation\">\n        Crystal\n       <\/a>\n       &amp;\n       <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/Release-Dashing-Diademata\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Dashing \u2014 Installation\">\n        Dashing\n       <\/a>\n      <\/td><\/tr><tr><td>\n       Ubuntu 19.04 \u2014 Disco\n      <\/td><td>\n       X\n      <\/td><td>\n       X\n      <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\n   Unter den verschiedenen obenstehenden Links finden Sie weitere Tutorials f\u00fcr die Installation von\n   <strong>\n    ROS\n   <\/strong>\n   . Wenn Sie \u00e4ltere oder neuere Versionen testen m\u00f6chten, k\u00f6nnen Sie\n   <strong>\n    <a class=\"catalogue\" href=\"https:\/\/hub.docker.com\/r\/osrf\/ros\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS\/ROS2 Docker-Image\">\n     Docker-Images\n    <\/a>\n   <\/strong>\n   verwenden. Docker erleichtert die Erstellung, Nutzung und Ausf\u00fchrung von Anwendungen unter Einsatz von\n   <strong>\n    Containern\n   <\/strong>\n   .\n  <\/p>\n\n\n\n<p>\n   Die Container erm\u00f6glichen, eine Anwendung mit Systembibliotheken und anderen\n   <strong>\n    Abh\u00e4ngigkeiten\n   <\/strong>\n   zu packen. Docker funktioniert in etwa wie eine\n   <strong>\n    virtuelle Maschine\n   <\/strong>\n   . Aber anstatt ein komplettes virtuelles Betriebssystem zu erstellen, erm\u00f6glicht Docker den Anwendungen, denselben Linux-Kernel zu verwenden wie das System, mit dem sie betrieben werden.\n  <\/p>\n\n\n\n<p>\n   Ein Docker-Container f\u00fchrt ein Docker-Image aus. Dies ist eine Datei, die aus mehreren Schichten von Bibliotheken und Abh\u00e4ngigkeiten besteht. Wir empfehlen Ihnen, bei Ihren Tests ROS2 Docker-Images zu verwenden, um Ihre ROS-Umgebung nicht zu destabilisieren.\n  <\/p>\n\n\n\n<p>\n   Sobald Ubuntu auf Ihrem Computer l\u00e4uft und ROS einsatzbereit ist, lesen Sie in den\n   <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/ROS\/Tutorials\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS-Tutorial\">\n    ROS-Tutorials\n   <\/a>\n   nach, um eine Einf\u00fchrung in seine Funktionsweise zu erhalten.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-die-geschichte-von-ros-zur-erlauterung-von-ros2\">\n   Die Geschichte von ROS zur Erl\u00e4uterung von ROS2\n  <\/h2>\n\n\n\n<p>\n   Die ROS-Umgebung wurde von Willow Garage f\u00fcr seinen Roboter PR2 entwickelt. Dies ist ein humanoider Roboter mit einer autonomen Navigation in einer bekannten Umgebung.\n  <\/p>\n\n\n\n<p>\n   Damals wussten die Erfinder bereits, dass PR2 nicht der einzige Roboter auf dem Markt sein w\u00fcrde. Anstatt ein spezifisches Programm f\u00fcr den PR2 zu entwickeln, beschlossen sie, eine allgemeine und anpassbare Software zu implementieren, um nachtr\u00e4glich Verbesserungen oder \u00c4nderungen des Roboters zu integrieren.\n  <\/p>\n\n\n\n<p>\n   Daher arbeiteten sie an einer Middleware, ROS, und definierten gleichzeitig Abstraktionsniveaus, die auch auf andere Roboter anwendbar waren. Einige der Spezifikationen des Roboters PR2 dienten dabei als Basis:\n  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    Ein einziger Roboter\n   <\/li>\n\n\n\n<li>\n    Keine Echtzeit-Anforderungen\n   <\/li>\n\n\n\n<li>\n    Ausgezeichnete Netzwerkverbindung\n   <\/li>\n\n\n\n<li>\n    Maximale Flexibilit\u00e4t (kann sowohl auf einer mobilen Basis als auch auf Humanoiden betrieben werden)\n   <\/li>\n<\/ul>\n\n\n\n<p>\n   Heute wird ROS nicht nur in PR2 und \u00e4hnlichen Robotern, sondern auch in\n   <a class=\"catalogue\" href=\"\/de\/533-autonome-mobile-roboter\" title=\"Autonome mobile Roboter\">\n    mobilen Robotern\n   <\/a>\n   jeder Gr\u00f6\u00dfe,\n   <a class=\"catalogue\" href=\"\/de\/191-humanoide-interaktionsroboter\" title=\"Humanoide Interaktionsroboter\">\n    humanoiden Robotern\n   <\/a>\n   ,\n   <a class=\"catalogue\" href=\"\/de\/213-manipulatoren-und-roboterarme\" title=\"Manipulatoren und Roboterarme\">\n    industriellen Roboterarmen\n   <\/a>\n   ,\n   <a class=\"catalogue\" href=\"\/de\/352-mobiler-roboter-outdoor\" title=\"Mobile Outdoor Roboter\">\n    Landfahrzeugen im Freien\n   <\/a>\n   und Luftfahrzeugen eingesetzt.\n  <\/p>\n\n\n\n<p>\n   <strong>\n    Seitdem wurde die Nutzung von ROS auf zahlreiche andere Bereiche ausgeweitet und ist nicht nur f\u00fcr die Universit\u00e4tsforschung gedacht, f\u00fcr die das System urspr\u00fcnglich entwickelt wurde.\n   <\/strong>\n  <\/p>\n\n\n\n<p>\n   Heute werden immer mehr ROS-Roboter von spezialisierten Herstellern auf den Markt gebracht und die Regierungsstellen investieren in ROS f\u00fcr eine Nutzung auf ihren eigenen Systemen.\n  <\/p>\n\n\n\n<p>\n   Alle diese Anwendungen haben das ROS-System schlie\u00dflich an seine Grenzen gebracht, das auf den Spezifikationen des PR2 aufgebaut wurde (siehe weiter oben). Daher hielt die Robotik-Gemeinschaft es f\u00fcr unverzichtbar, eine bessere Plattform zu entwickeln, die den neuen Anforderungen der modernen Roboter besser nachkommt:\n  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    Teams von Robotern in Kooperation\n   <\/li>\n\n\n\n<li>\n    Mitgef\u00fchrte Software auf kleinen elektronischen Karten\n   <\/li>\n\n\n\n<li>\n    Echtzeit-Systeme\n   <\/li>\n\n\n\n<li>\n    Instabile Netzwerke\n   <\/li>\n\n\n\n<li>\n    Produktionsumgebung\n   <\/li>\n<\/ul>\n\n\n\n<p>\n   Ein weiterer Grund f\u00fcr die Einf\u00fchrung eines ROS2 ist die gleichzeitige Verbesserung der benutzerorientierten API-Schnittstelle. Somit wird es m\u00f6glich sein, neue API-Schnittstellen zu entwickeln, bei denen die besten Erfahrungen der Robotik-Gemeinschaft mit den API-Schnittstellen der ersten Generation ber\u00fccksichtigt werden.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-warum-kann-ros-nicht-einfach-verbessert-werden\">\n   Warum kann ROS nicht einfach verbessert werden?\n  <\/h2>\n\n\n\n<p>\n   Die oben beschriebenen \u00c4nderungen k\u00f6nnten tats\u00e4chlich in den Kern des existierenden Programmcodes integriert werden. Diese Option wurde auch in Betracht gezogen, aber diese zu intrusive \u00c4nderung des aktuellen ROS-Systems k\u00f6nnte zu schweren\n  <\/p>\n\n\n\n<p>\n   <strong>\n    Funktionsst\u00f6rungen der von zahlreichen Mitgliedern der Robotik-Gemeinschaft entwickelten Anwendungen\n   <\/strong>\n   f\u00fchren. ROS sollte unver\u00e4ndert bleiben, w\u00e4hrend ROS2 als ein Set von Paketen entwickelt werden sollte, das parallel dazu installiert werden k\u00f6nnte, ohne dass es zu Interferenzen mit ROS kommt.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wer-sollte-kunftig-auf-ros2-umsteigen\">\n   Wer sollte k\u00fcnftig auf ROS2 umsteigen?\n  <\/h2>\n\n\n\n<p>\n   <strong>\n    Wissenschaftler\n   <\/strong>\n   Au\u00dfer wenn Sie eine Publikation zu den Leistungen und Funktionen von ROS2 planen, sollten Sie aktuell weiter mit ROS arbeiten.\n  <\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\n       <strong>\n        Studenten\n       <\/strong>\n      <\/td><td>\n       Sie sollten aufgrund eines Mangels an kompatiblen Paketen und aus globalen Stabilit\u00e4tsgr\u00fcnden weiter mit ROS arbeiten. ROS2 wird in K\u00fcrze als Massenprodukt angeboten. ROS und ROS2 besitzen viele identische Konzepte, sodass Sie Ihr Wissen beim Umstieg auf ROS2 gut nutzen k\u00f6nnen.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Lehrer\n       <\/strong>\n      <\/td><td>\n       Sie sollten weiter ROS f\u00fcr den Unterricht nutzen, aber sich dennoch \u00fcber die Neuheiten von ROS2 auf dem Laufenden halten. Wir empfehlen Ihnen jedoch, sich \u00fcber die verschiedenen verf\u00fcgbaren Tutorials mit ROS2 vertraut zu machen, um sich auf die Freigabe der endg\u00fcltigen Version von ROS2 vorzubereiten. Wenn Sie eine Ausr\u00fcstung suchen, kann die Plattform TurtleBot3 eine interessante Option darstellen, da sie mit ROS und ROS2 kompatibel ist.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Wissenschaftler\n       <\/strong>\n      <\/td><td>\n       Au\u00dfer wenn Sie eine Publikation zu den Leistungen und Funktionen von ROS2 planen, sollten Sie aktuell weiter mit ROS arbeiten.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Unternehmen\n       <\/strong>\n      <\/td><td>\n       Sie sollten tats\u00e4chlich in Betracht ziehen, sich auf ROS2 umzustellen, um die Menge der Programmcode-\u00dcbertragungen k\u00fcnftig zu reduzieren. Vertrauen Sie Ihre Projekte erfahrenen ROS-Benutzern an.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Hersteller\n       <\/strong>\n      <\/td><td>\n       Dies ist der richtige Zeitpunkt f\u00fcr eine Umstellung. ROS2 Dashing ist die erste LTS-Version. Jetzt ist es m\u00f6glich, damit zu beginnen, die Treiber ohne Bedenken zu \u00fcbertragen.\n      <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-einige-wichtige-unterschiede-zwischen-ros-und-ros2\">\n   Einige wichtige Unterschiede zwischen ROS und ROS2\n  <\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>\n       <strong>\n        Anwendung\n       <\/strong>\n      <\/td><td>\n       <strong>\n        ROS\n       <\/strong>\n      <\/td><td>\n       <strong>\n        ROS2\n       <\/strong>\n      <\/td><\/tr><tr><td>\n       <strong>\n        Plattform\n       <\/strong>\n      <\/td><td>\n       Getestet auf Ubuntu Beibehalten auf anderen Linux-Versionen sowie auf OS X\n      <\/td><td>\n       Aktuell getestet und unterst\u00fctzt auf Ubuntu Xenial, OS X EI Capitan sowie auf Windows 10\n      <\/td><\/tr><tr><td>\n       <strong>\n        C++\n       <\/strong>\n      <\/td><td>\n       C++03 \/\/ nutzt nicht die Kapazit\u00e4ten von C++11 bei seinen API-Schnittstellen\n      <\/td><td>\n       Nutzt haupts\u00e4chlich C+++11 Planen und beginnen Sie mit der Nutzung von C++14 und C+++17\n      <\/td><\/tr><tr><td>\n       <strong>\n        Python\n       <\/strong>\n      <\/td><td>\n       Ziel Python 2\n      <\/td><td>\n       &gt;= Python 3.5\n      <\/td><\/tr><tr><td>\n       <strong>\n        Middleware\n       <\/strong>\n      <\/td><td>\n       Personalisiertes Serialisierungsformat (Transportprotokoll + zentraler Feststellungsmechanismus)\n      <\/td><td>\n       Aktuell beruhen alle Implementierungen dieser Schnittstelle auf dem DDS-Standard.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Synchronisierung von Dauer und Zeitmessung\n       <\/strong>\n      <\/td><td>\n       Dauer und Zeittypen werden in Client-Bibliotheken definiert und in C++ und Python programmiert.\n      <\/td><td>\n       Diese Typen werden als Nachrichten definiert und sind somit in allen Programmiersprachen einheitlich.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Komponenten mit Lebenszyklus\n       <\/strong>\n      <\/td><td>\n       Jeder Knoten hat generell eine eigene Hauptfunktion.\n      <\/td><td>\n       Lebenszyklus kann bei Tools, wie z.&nbsp;B. roslaunch, verwendet werden, um ein System aus mehreren Komponenten deterministisch zu starten.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Multi-Thread-Modell\n       <\/strong>\n      <\/td><td>\n       Der Entwickler kann sich nur zwischen Mono-Thread- und Multi-Thread-Ausf\u00fchrung entscheiden.\n      <\/td><td>\n       Modelle mit Zwischenstufen der Ausf\u00fchrung sind erh\u00e4ltlich und personalisierte Ausf\u00fchrungsprogramme k\u00f6nnen einfach implementiert werden.\n      <\/td><\/tr><tr><td>\n       <strong>\n        Mehrfache Knoten\n       <\/strong>\n      <\/td><td>\n       Es ist nicht m\u00f6glich, mehr als einen Knoten in einem Prozess zu erstellen.\n      <\/td><td>\n       Es ist m\u00f6glich, mehrere Knoten in einem Prozess zu erstellen.\n      <\/td><\/tr><tr><td>\n       <strong>\n        roslaunch\n       <\/strong>\n      <\/td><td>\n       Die roslaunch-Dateien werden in XML definiert und besitzen sehr begrenzte Kapazit\u00e4ten.\n      <\/td><td>\n       Die Startdateien werden in Python programmiert, sodass komplexere Logiken wie bedingte Anweisungen usw. verwendet werden k\u00f6nnen.\n      <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-welcher-dds-fur-ros2\">\n   Welcher DDS f\u00fcr ROS2?\n  <\/h2>\n\n\n\n<p>\n   ROS2 nutzt einen DDS (Data Distribution Service) f\u00fcr Bereitstellung und Empfang der Daten anstelle eines personalisierten Nachrichten-Managers. Dies erm\u00f6glicht eine Verbesserung der \u00dcbertragungsleistungen \u00fcber DDS-Updates. Da DDS das Verhalten von ROS2 beeinflussen kann, sollten Sie unter den verschiedenen erh\u00e4ltlichen DDS-Tools die Version ausw\u00e4hlen, die den Spezifikationen Ihres Projektes entspricht. Hier einige DDS-Systeme:\n  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    FastRTPS\/eProsima\n   <\/li>\n\n\n\n<li>\n    Vortex OpenSplice\/ADLINK Technologie\n   <\/li>\n\n\n\n<li>\n    Connext\/RTI\n   <\/li>\n\n\n\n<li>\n    CoreDX\/Twin Oaks\n   <\/li>\n\n\n\n<li>\n    Cyclone DDS\/Eclipse\n   <\/li>\n<\/ul>\n\n\n\n<p>\n   Zus\u00e4tzliche Informationen zu DDS finden Sie in den Abschnitten Rover Robotics und ROS2 auf DDS am Ende dieses Beitrags.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-knotenmanagement-in-ros2\">\n   Knotenmanagement in ROS2\n  <\/h2>\n\n\n\n<p>\n   Eine der wichtigsten Funktionen von ROS2, die Verwaltung der Lebenszyklen von Knoten, erm\u00f6glicht eine bessere Kontrolle des ROS-Systemstatus. Somit kann roslaunch sicherstellen, dass alle Komponenten korrekt instanziert wurden, bevor eine Komponente beginnen kann, ihre Aktion auszuf\u00fchren.\n  <\/p>\n\n\n\n<p>\n   Dadurch k\u00f6nnen die Knoten w\u00e4hrend der Ausf\u00fchrung ebenfalls neu gestartet oder ersetzt werden. Dies ist eine wesentliche Eigenschaft f\u00fcr die Sicherheit des Roboters.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-implementierung-von-ros2-plattform-tutorials\">\n   Implementierung von ROS2 \u2014 Plattform\/Tutorials\n  <\/h2>\n\n\n\n<p>\n   Alle ROS-kompatiblen Roboter und Komponenten sind ebenfalls mit ROS2 kompatibel, sobald die Treiber, die Pakete und das SDK f\u00fcr eine Implementierung in ROS2 bereitgestellt werden.\n   <a class=\"catalogue\" href=\"\/de\/81_robotis\" title=\"Robotis\">\n    Robotis\n   <\/a>\n   ist eines der ersten Unternehmen, das ein ROS2-System entwickelt hat.\n  <\/p>\n\n\n\n<p>\n   In der Vergangenheit haben die Roboteringenieure dieses Unternehmens bereits ausgezeichnete Tutorials zum Erlernen von ROS auf dem ersten TurtleBot erstellt. Bei Entwicklung der neuesten Modelle\n   <a class=\"catalogue\" href=\"\/de\/402707-turtlebot3-burger.html\" title=\"TurtleBot3 Burger ROS\/ROS2\">\n    TurtleBot3 Burger\n   <\/a>\n   und\n   <a class=\"catalogue\" href=\"\/fr\/402886-turtlebot-3-waffle-pi.html\" title=\"TurtleBot3 Waffle Pi ROS\/ROS2\">\n    TurtleBot3 Waffle Pi\n   <\/a>\n   hat Robotis an einem Tutorial zur Einf\u00fchrung von ROS2 und Implementierung der Roboternavigation gearbeitet:\n  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/ros2-industrial-workshop.readthedocs.io\/en\/latest\/_source\/navigation\/ROS2-Turtlebot.html\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot3 Tutorial Installation\">\n     TurtleBot3 \u2014 Installation\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ROBOTIS-GIT\/turtlebot3\/tree\/ros2\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot3 GitHub\">\n     TurtleBot3 \u2014 GitHub\n    <\/a>\n   <\/li>\n<\/ul>\n\n\n\n<p>\n   Robotis hat sein eigenes Paket f\u00fcr den TurtleBot3 entwickelt. Bei GitHub wurden die Wiki-Seiten und Open-Source-Codes verlinkt. Somit ist TurtleBot3 eine sehr gute Plattform f\u00fcr die ersten Schritte mit ROS2, sowohl f\u00fcr Anf\u00e4nger als auch f\u00fcr erfahrene Entwickler. Wenn Sie noch \u00fcber einen TurtleBot2 verf\u00fcgen, k\u00f6nnen Sie ebenfalls ROS2 nutzen. Robotis hat auch ein\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ros2\/turtlebot2_demo\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot2 Demo Tutorial\">\n    ROS2-Demo f\u00fcr TurtleBot2\n   <\/a>\n   ver\u00f6ffentlicht.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-migration-von-ros-zu-ros2\">\n   Migration von ROS zu ROS2\n  <\/h2>\n\n\n\n<p>\n   Es gibt zwei verschiedene M\u00f6glichkeiten der Migration \u00fcber ROS-Pakete:\n  <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    Migration des Quellcodes eines existierenden Pakets von ROS zu ROS2, wenn der Quellcode gr\u00f6\u00dftenteils identisch oder zumindest \u00e4hnlich bleiben soll.\n   <\/li>\n\n\n\n<li>\n    Implementierung derselben oder \u00e4hnlichen Funktionen aus einem ROS-Paket in ROS2, jedoch unter der Annahme, dass der Quellcode signifikant ge\u00e4ndert wird.\n   <\/li>\n<\/ul>\n\n\n\n<p>\n   Zum Zeitpunkt der Verfassung dieses Beitrags sind nur wenig Dokumentationen zum obenstehenden ersten Migrationstyp des Quellcodes verf\u00fcgbar. Lesen Sie bitte diesen Beitrag\n   <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Contributing\/Migration-Guide\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS\/ ROS2 Migrationsleitfaden\">\n    Beitrag\n   <\/a>\n   , der sich auf den zweiten oben erw\u00e4hnten Fall bezieht und die zu befolgende Vorgehensweise zur Migration eines ROS-Pakets zu ROS2 beschreibt. Es geht jedoch hierbei nicht um eine schrittweise Migrationsanleitung, sondern eher um Hinweise f\u00fcr erfahrene Benutzer.\n  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ressourcen-fur-ros2-middleware\">\n   Ressourcen f\u00fcr ROS2-Middleware\n  <\/h2>\n\n\n\n<p>\n   Sie m\u00f6chten noch mehr erfahren? Hier folgen einige n\u00fctzliche Ressourcen, um den n\u00e4chsten Schritt zu wagen!\n  <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-offizielle-ressourcen\">\n   Offizielle Ressourcen\n  <\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Main Page\">\n     Startseite\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Tutorials\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Tutorials\">\n     Tutorials\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Features\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Features Status\">\n     Status der Funktionen\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Releases\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Distribution Releases\">\n     Vertriebsfreigabe\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/index.ros.org\/doc\/ros2\/Installation\/Crystal\/Linux-Install-Binary\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Installation\">\n     Installation\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/ubuntu.com\/blog\/ros-2-command-line-interface\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Command Line\">\n     Befehle\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/fkromer\/awesome-ros2#packages\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 N\u00fctzliche Links\">\n     GitHub\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ros2?page=2\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 GitHub\">\n     ROS2 GitHub\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/piappl\/ros2_benchmarking\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Leistungsvergleich\">\n     ROS2 Leistungsvergleich\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/github.com\/ApexAI\/performance_test\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Leistungen\">\n     ROS2 Testleistungen\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/www.osrfoundation.org\/wordpress2\/wp-content\/uploads\/2015\/04\/ROSCON-2014-Why-you-want-to-use-ROS-2.pdf\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"PDF ROS2 Pr\u00e4sentation\">\n     Pr\u00e4sentation\n    <\/a>\n   <\/li>\n\n\n\n<li>\n    <a class=\"catalogue\" href=\"https:\/\/design.ros2.org\/articles\/ros_on_dds.html\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 DDS\">\n     ROS auf DDS\n    <\/a>\n   <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tutorials-fur-ros2\">\n   Tutorials f\u00fcr ROS2\n  <\/h3>\n\n\n\n<p>\n   Das Unternehmen Rover Robotics hat sich mit ROS2 besch\u00e4ftigt und auf seinem Blog ein\n   <a class=\"catalogue\" href=\"https:\/\/blog.roverrobotics.com\/navigation2-now-were-getting-somewhere\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Tutorial Rover Robotics\">\n    Tutorial\n   <\/a>\n   zu seinen letzten Entwicklungen mit Implementierung eines Navigationssystems in ROS2 ver\u00f6ffentlicht.\n  <\/p>\n\n\n\n<p>\n   In diesem Artikel finden Sie zahlreiche n\u00fctzliche Informationen zu den letzten Funktionsst\u00f6rungen von ROS2, zu den Vor- und Nachteilen der verschiedenen DDS und zum Demo-Start sowie weitere Implementierungsempfehlungen.\n  <\/p>\n\n\n\n<p>\n   Sie finden ebenfalls auf der\n   <a class=\"catalogue\" href=\"https:\/\/www.theconstructsim.com\/category\/ros2-tutorials\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 The Construct Website\">\n    Website\n   <\/a>\n   \u201eThe Construct\u201c einige Beitr\u00e4ge zur Konfiguration von ROS2.\n  <\/p>\n\n\n\n<p>\n   <a class=\"catalogue\" href=\"http:\/\/gazebosim.org\/tutorials?tut=ros2_overview\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo Tutorial\">\n    Gazebo\n   <\/a>\n   , die bekannte Simulationsumgebung, ist auch auf ROS2 verf\u00fcgbar. Sie finden weitere Informationen in diesem\n   <a class=\"catalogue\" href=\"https:\/\/www.infoq.com\/articles\/ros-2-gazebo-tutorial\/\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo Tutorial\">\n    Beitrag\n   <\/a>\n   . Sie k\u00f6nnen zudem auch den\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ros-simulation\/gazebo_ros_pkgs\/wiki\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 Gazebo GitHub\">\n    GitHub von Gazebo\n   <\/a>\n   einsehen.\n  <\/p>\n\n\n\n<p>\n   F\u00fcr die neuesten Roboter\n   <a class=\"catalogue\" href=\"\/de\/402707-turtlebot3-burger.html\" title=\"TurtleBot3 Burger ROS\/ROS2\">\n    TurtleBot3 Burger\n   <\/a>\n   und\n   <a class=\"catalogue\" href=\"\/de\/402886-turtlebot3-waffle-pi.html\" title=\"TurtleBot3 Waffle Pi ROS\/ROS2\">\n    TurtleBot Waffle Pi\n   <\/a>\n   hat Robotis an einem Tutorial zur Einf\u00fchrung von ROS2 und Implementierung der Roboternavigation gearbeitet.\n  <\/p>\n\n\n\n<p>\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ROBOTIS-GIT\/turtlebot3\/tree\/ros2\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot3 GitHub\">\n    TurtleBot3 \u2014 GitHub\n   <\/a>\n   Robotis hat sein eigenes Paket f\u00fcr den TurtleBot3 entwickelt. Bei GitHub wurden die Wiki-Seiten und Open-Source-Codes verlinkt.\n  <\/p>\n\n\n\n<p>\n   Dieses Tutorial ist eine Einf\u00fchrung in die Nutzung von ROS2. TurtleBot3 ist ein sehr interessanter Roboter, wenn Sie ROS2 (oder ROS) kennenlernen m\u00f6chten.\n  <\/p>\n\n\n\n<p>\n   Wenn Sie noch \u00fcber einen TurtleBot2 verf\u00fcgen, k\u00f6nnen Sie ebenfalls ROS2 nutzen. Robotis hat auch ein\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/ros2\/turtlebot2_demo\" rel=\"noopener noreferrer\" target=\"_blank\" title=\"ROS2 TurtleBot2 Demo Tutorial\">\n    ROS2-Demo f\u00fcr TurtleBot2\n   <\/a>\n   ver\u00f6ffentlicht.\n  <\/p>\n\n\n\n<p>\n   Es ist sicherlich sinnvoll, in einen TurtleBot3 zu investieren, da er mit ROS und ROS2 kompatibel ist.\n  <\/p>\n\n\n<p><\/p><\/body><br \/>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Derzeit gibt es nur zwei Versionen der ROS-Middleware: ROS und ROS2. Die erste ROS-Version wird mitunter auch ROS1 genannt. In diesem Artikel nennen wir diese erste Version \u201eROS\u201c und die zweite Version \u201eROS2\u201c. Es scheint uns wichtig, darauf hinzuweisen, dass sich ROS2 derzeit in der Entwicklungsphase befindet. Einige Pakete wurden bereits freigegeben, aber die meisten[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/de\/ros2-was-andert-sich-gegenuber-ros\/\" style=\"float:right;\">Read this article &gt;&gt;<\/a><\/p>\n","protected":false},"author":188,"featured_media":7000,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10531],"tags":[],"class_list":["post-6337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aktuelle-robotische-nachrichten"],"_links":{"self":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/users\/188"}],"replies":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/comments?post=6337"}],"version-history":[{"count":13,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6337\/revisions"}],"predecessor-version":[{"id":18383,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/6337\/revisions\/18383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media\/7000"}],"wp:attachment":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media?parent=6337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=6337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=6337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}