Ü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:

J3010

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.

J3010

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:

J3010

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-NameDistributionVeröffentlichungsdatumEOL-Datum
BoxturtleROS 1März 2010März 2011
C TurtleROS 1August 2010August 2011
DiamondbackROS 1März 2011November 2012
Electric EmysROS 1August 2011Januar 2013
FuerteROS 1April 2012Juli 2013
Groovy GalapagosROS 1Dezember 2012Mai 2014
Hydro MedusaROS 1September 2013Mai 2015
Indigo IglooROS 1Juli 2014April 2019
Jade TurtleROS 1Mai 2015Mai 2017
Kinetic KameROS 1Mai 2016April 2021
Lunar LoggerheadROS 1Mai 2017Mai 2019
Melodic MoreniaROS 1Mai 2018Mai 2023
Noetic NinjemysROS 1Mai 2020Mai 2025
Foxy FitzroyROS 2Juni 2020Juni 2023
Galactic GeocheloneROS 2Mai 2021November 2022
Humble HawksbillROS 2Mai 2022Mai 2027
Rolling RidleyROS 2LaufendLaufend

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.

  1. Einen ROS-Workspace erstellen

    bash
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
  2. Die setup-Datei sourcen

    bash
    source devel/setup.bash
  3. Eine Demo ausführen

    bash
    roscore

    Öffnen Sie ein weiteres Terminal und führen Sie aus:

    bash
    rosrun turtlesim turtlesim_node

    Öffnen Sie noch ein weiteres Terminal und führen Sie aus:

    bash
    rosrun 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

  1. Für die Installation von VSCode lesen Sie bitte das vorherige Tutorial: 3.1-Python und Programmiergrundlagen

  2. Installieren Sie aus dem VSCode-Erweiterungsmarktplatz Werkzeuge wie Python, ROS, C++ und CMake Tools.

Das multifunktionale Terminal Terminator installieren.

  1. Installieren

    bash
    sudo apt-get update
    sudo apt install terminator
  2. „Anwendungen anzeigen" ---> Nach „Terminator" suchen ---> Rechtsklick und „Zu Favoriten hinzufügen" auswählen

  3. 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