Überblick über ROS und Einrichtung der Umgebung
Einführung
Dieses Tutorial gibt einen kompakten Überblick über ROS (Robot Operating System) und führt Sie durch die schnelle Installation und Inbetriebnahme von ROS auf dem reComputer J3010 Nvidia Jetson Orin Nano. Am Ende dieses Tutorials verfügen Sie über eine funktionierende ROS-Umgebung und können eine einfache ROS-Demo ausführen.
Voraussetzungen
Um dieses Tutorial nachzuvollziehen, benötigen Sie folgende Hard- und Software:
- Hardware: reComputer J3010 (Nvidia Jetson Orin Nano), Display, Tastatur und Maus.
- Software: Jetpack 5.1.1, Ubuntu 20.04, ROS Noetic, Python und C++.
Einführung in die Entwicklung von ROS
Was ist ROS?
ROS (Robot Operating System) ist ein Open-Source-Framework für die Robotersoftwareentwicklung. Es stellt eine strukturierte Kommunikationsschicht über den Host-Betriebssystemen eines heterogenen Rechenclusters bereit. ROS ist so schlank wie möglich konzipiert und besteht aus zwei Teilen:
- ROS-System (ROS): Das Leitungssystem, das die Kommunikation zwischen Prozessen abwickelt. Es ist die Middleware, die es verschiedenen Roboterteilen ermöglicht, miteinander zu kommunizieren.
- ROS-Pakete: Bibliotheken und Werkzeuge, die zum Schreiben von Roboteranwendungen benötigt werden.
Warum ROS?
ROS vereinfacht die Entwicklung komplexer und robuster Roboterverhalten auf einer Vielzahl von Roboterplattformen. Wichtige Ziele und Vorteile der Verwendung von ROS sind:
- Schnelle Entwicklung: Bietet eine Standardplattform, die die Entwicklung von der Forschung bis zur Produktion beschleunigt.
- Globale Community: Wird von einer großen, aktiven Community unterstützt, die zur Verbesserung der Software beiträgt.
- Bewährte Erfolgsbilanz: Weit verbreitet in akademischer und kommerzieller Robotik.
- Time-to-Market: Verkürzt die Produktentwicklungszeit durch umfassende Werkzeuge und Bibliotheken.
- Vielseitigkeit: Unterstützt mehrere Bereiche und Plattformen, einschließlich eingebetteter Systeme.
- Open Source: Frei zur Nutzung, Anpassung und Erweiterung – fördert Innovation und Zusammenarbeit.
- Kommerzfreundlich: Wird unter freizügigen Lizenzen wie Apache 2.0 vertrieben.
Geschichte und Entwicklung von ROS
Die Geschichte von ROS (Robot Operating System) ist eng mit der allgemeinen Entwicklung der Robotik verknüpft:
Frühe Entwicklungen in der Robotik
- 1959: Die Reise der Robotik begann mit der Entwicklung des ersten automatisierten Roboters.
- 1972: Aufkommen von Robotern, die mit ihrer Umgebung interagieren können.
- 1982: Integration von Robotern in Computersysteme für komplexe Aufgaben.
- 1988: Fortschritte in der Roboterautomatisierung und in Steuerungssystemen.
- 2002: Einführung von Verbraucherrobotern wie dem Roomba für Haushaltsaufgaben.
- 2003: Erweiterung der Robotererkundung auf den Mars mit Rovern.
- 2005: Entscheidende Rolle in der Industrieautomatisierung, beispielhaft durch Lagerroboter.
Geschichte und Entwicklung von ROS
Frühe Entwicklungen in der Robotik
- 1959: Die Reise der Robotik begann mit der Entwicklung des ersten automatisierten Roboters.
- 1972: Aufkommen von Robotern, die mit ihrer Umgebung interagieren können.
- 1982: Integration von Robotern in Computersysteme für komplexe Aufgaben.
- 1988: Fortschritte in der Roboterautomatisierung und in Steuerungssystemen.
- 2002: Einführung von Verbraucherrobotern wie dem Roomba für Haushaltsaufgaben.
- 2003: Erweiterung der Robotererkundung auf den Mars mit Rovern.
- 2005: Entscheidende Rolle in der Industrieautomatisierung, beispielhaft durch Lagerroboter.
Die Geburtsstunde von ROS
- 2007: Die Entwicklung von ROS begann unter dem Namen „Switchyard" am Stanford Artificial Intelligence Laboratory durch Morgan Quigley, Eric Berger und Andrew Ng. Ziel war es, dem Mangel an gemeinsam genutzter Softwareinfrastruktur in der Robotikforschung zu begegnen.
- 2008: Die Entwicklung wurde bei Willow Garage, einem Forschungslabor für Robotik, fortgesetzt.
- 2009: Offizielle Etablierung von ROS, gekennzeichnet durch das erste Release.
Wachstum und Evolution
- 2010: Veröffentlichung von ROS 1.0, wobei Willow Garage eine entscheidende Rolle bei Entwicklung und Community-Wachstum spielte.
- 2014: Einführung sozialer und Service-Roboter wie Pepper, was Fortschritte in der Mensch-Roboter-Interaktion verdeutlichte.
- 2021: ROS entwickelt sich zur Unterstützung anspruchsvoller und vielseitiger Robotersysteme für unterschiedlichste Anwendungen weiter.
Zeitplan der ROS-Releases
| Release-Name | Distribution | Veröffentlichungsdatum | EOL-Datum |
|---|---|---|---|
| Boxturtle | ROS 1 | März 2010 | März 2011 |
| C Turtle | ROS 1 | August 2010 | August 2011 |
| Diamondback | ROS 1 | März 2011 | November 2012 |
| Electric Emys | ROS 1 | August 2011 | Januar 2013 |
| Fuerte | ROS 1 | April 2012 | Juli 2013 |
| Groovy Galapagos | ROS 1 | Dezember 2012 | Mai 2014 |
| Hydro Medusa | ROS 1 | September 2013 | Mai 2015 |
| Indigo Igloo | ROS 1 | Juli 2014 | April 2019 |
| Jade Turtle | ROS 1 | Mai 2015 | Mai 2017 |
| Kinetic Kame | ROS 1 | Mai 2016 | April 2021 |
| Lunar Loggerhead | ROS 1 | Mai 2017 | Mai 2019 |
| Melodic Morenia | ROS 1 | Mai 2018 | Mai 2023 |
| Noetic Ninjemys | ROS 1 | Mai 2020 | Mai 2025 |
| Foxy Fitzroy | ROS 2 | Juni 2020 | Juni 2023 |
| Galactic Geochelone | ROS 2 | Mai 2021 | November 2022 |
| Humble Hawksbill | ROS 2 | Mai 2022 | Mai 2027 |
| Rolling Ridley | ROS 2 | Laufend | Laufend |
Heute wird ROS von Open Robotics gepflegt, einer gemeinnützigen Organisation, die sich der Entwicklung des ROS-Kernsystems widmet, einschließlich ROS 2.0, das Verbesserungen für Echtzeit- und eingebettete Systeme sowie weitere Werkzeuge und Bibliotheken integriert.
Installation der ROS-Umgebung und Schnelleinstieg
ROS1 installieren
- Schritt 1: Öffnen Sie ein Terminal und aktualisieren Sie die Systempakete.
bash
sudo apt update sudo apt upgrade - Schritt 2: Installieren Sie grundlegende Werkzeuge.
bash
sudo apt install curl gnupg2 lsb-release - Schritt 3: Fügen Sie den Schlüssel des ROS-Repositorys hinzu.
bash
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - - Schritt 4: Fügen Sie das ROS-Repository hinzu.
bash
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' - Schritt 5: Aktualisieren Sie die Paketliste.
bash
sudo apt update - Schritt 6: Installieren Sie ros-noetic-desktop-full.
bash
sudo apt install ros-noetic-desktop-full sudo apt-get install python3-rosdep - Schritt 7: Initialisieren Sie rosdep.
bash
sudo rosdep init rosdep update - Schritt 8: Richten Sie die ROS-Umgebungsvariablen ein.
bash
echo "source /opt/ros/noetic/setup.bash">> ~/.bashrc && source ~/.bashrc - Schritt 9: Installieren Sie Abhängigkeitswerkzeuge.
bash
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential - Schritt 10: Testen Sie die Installation.
bash
roscore
Schnellstart mit ROS
Um ROS schnell auszuprobieren, erstellen wir einen ROS-Workspace und führen eine einfache Demo aus.
-
Einen ROS-Workspace erstellen
bashmkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make -
Die setup-Datei sourcen
bashsource devel/setup.bash -
Eine Demo ausführen
bashroscoreÖffnen Sie ein weiteres Terminal und führen Sie aus:
bashrosrun turtlesim turtlesim_nodeÖffnen Sie noch ein weiteres Terminal und führen Sie aus:
bashrosrun turtlesim turtle_teleop_key
Diese kurze Demo zeigt einen grafischen Schildkrötenroboter, den Sie mit der Tastatur steuern können.
Installation gängiger Entwicklungssoftware für ROS
Installation von VSCode und ROS-Entwicklungs-Erweiterungen
-
Für die Installation von VSCode lesen Sie bitte das vorherige Tutorial: 3.1-Python und Programmiergrundlagen
-
Installieren Sie aus dem VSCode-Erweiterungsmarktplatz Werkzeuge wie
Python,ROS,C++undCMake Tools.
Das multifunktionale Terminal Terminator installieren.
-
Installieren
bashsudo apt-get update sudo apt install terminator
-
„Anwendungen anzeigen" ---> Nach „Terminator" suchen ---> Rechtsklick und „Zu Favoriten hinzufügen" auswählen
-
Häufig verwendete Terminator-Tastenkombinationen
- Alt + Up: Zum Terminal darüber wechseln
- Alt + Down: Zum Terminal darunter wechseln
- Alt + Left: Zum Terminal links wechseln
- Alt + Right: Zum Terminal rechts wechseln
- Ctrl + Shift + O: Terminal horizontal teilen
- Ctrl + Shift + E: Terminal vertikal teilen
- Ctrl + Shift + Right: Den Trenner in einem vertikal geteilten Terminal nach rechts verschieben
- Ctrl + Shift + Left: Den Trenner in einem vertikal geteilten Terminal nach links verschieben
- Ctrl + Shift + Up: Den Trenner in einem horizontal geteilten Terminal nach oben verschieben
- Ctrl + Shift + Down: Den Trenner in einem horizontal geteilten Terminal nach unten verschieben
- Ctrl + Shift + S: Bildlaufleiste ein-/ausblenden
- Ctrl + Shift + F: Suchen
- Ctrl + Shift + C: Markierten Inhalt in die Zwischenablage kopieren
- Ctrl + Shift + V: Zwischenablageinhalt einfügen
- Ctrl + Shift + W: Aktuelles Terminal schließen
- Ctrl + Shift + Q: Aktuelles Fenster beenden und alle Terminals darin schließen
- Ctrl + Shift + X: Aktuelles Terminal maximieren
- Ctrl + Shift + Z: Aktuelles Terminal maximieren und Schrift vergrößern
- Ctrl + Shift + N oder Ctrl + Tab: Zum nächsten Terminal wechseln
- Ctrl + Shift + P oder Ctrl + Shift + Tab: Zum vorherigen Terminal wechseln
- F11: Vollbild umschalten
- Ctrl + Shift + T: Neuen Tab öffnen
- Ctrl + PageDown: Zum nächsten Tab wechseln
- Ctrl + PageUp: Zum vorherigen Tab wechseln
- Ctrl + Shift + PageDown: Aktuellen Tab mit dem nächsten tauschen
- Ctrl + Shift + PageUp: Aktuellen Tab mit dem vorherigen tauschen
- Ctrl + Plus (+): Schriftgröße erhöhen
- Ctrl + Minus (-): Schriftgröße verringern
- Ctrl + Zero (0): Schriftgröße zurücksetzen
- Ctrl + Shift + R: Terminalstatus zurücksetzen
- Ctrl + Shift + G: Terminalstatus zurücksetzen und Bildschirm leeren
- Super + g: Alle Terminals binden, sodass die Eingabe in allen Terminals gespiegelt wird
- Super + Shift + G: Alle Terminals entbinden
- Super + t: Alle Terminals des aktuellen Tabs binden, Eingabe wird gespiegelt
- Super + Shift + T: Terminals des aktuellen Tabs entbinden
- Ctrl + Shift + I: Neues Fenster öffnen, das den Prozess mit dem ursprünglichen teilt
- Super + i: Neues Fenster mit eigenem Prozess öffnen