Einstieg ROS 2: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 11: Zeile 11:
== Einleitung ==
== Einleitung ==
Im Forschungsgebiet [[Robotik_und_autonome_Systeme | Robotik und autonome Systeme]] wird mit dem Robot Operating System 2 (ROS 2) gearbeitet.
Im Forschungsgebiet [[Robotik_und_autonome_Systeme | Robotik und autonome Systeme]] wird mit dem Robot Operating System 2 (ROS 2) gearbeitet.
Das [https://de.wikipedia.org/wiki/Robot_Operating_System Robot Operating System] ist ein Framework und soll bei der Softwareentwicklung von Roboteranwendungen helfen.
Das [https://de.wikipedia.org/wiki/Robot_Operating_System Robot Operating System] ist ein Framework und soll bei der Softwareentwicklung von Roboteranwendungen helfen <ref>http://wiki.ros.org/ROS/Introduction</ref>.
Bereits 2007 startete die Entwicklung am Stanford Artificial Intelligence Laboratory im Rahmen des Stanford-AI-Robot-Projektes.
Bereits 2007 startete die Entwicklung am Stanford Artificial Intelligence Laboratory im Rahmen des Stanford-AI-Robot-Projektes.
Seit 2009 wird die Software überwiegend am Robotikinstitut [https://en.wikipedia.org/wiki/Willow_Garage Willow Garage] weiterentwickelt.
Seit 2009 wird die Software überwiegend am Robotikinstitut [https://en.wikipedia.org/wiki/Willow_Garage Willow Garage] weiterentwickelt.
Ab 2012 übernahm die gemeinnützige Organisation [https://de.wikipedia.org/wiki/Open_Source_Robotics_Foundation Open Source Robotics Foundation (OSRF)] die Entwicklung.
Ab 2012 übernahm die gemeinnützige Organisation [https://de.wikipedia.org/wiki/Open_Source_Robotics_Foundation Open Source Robotics Foundation (OSRF)] die Entwicklung <ref>https://de.wikipedia.org/wiki/Robot_Operating_System</ref>.




[https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] ist die aktuelle Version und bietet Softwarebibliotheken und Werkzeugen zur Entwicklung von Robotern und autonomen Systemen. <br/>
[https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] ist die aktuelle Version und bietet Softwarebibliotheken und Werkzeugen zur Entwicklung von Robotern und autonomen Systemen <ref>https://docs.ros.org/</ref>. <br/>
Für unsere vielfältigen Projekte hat ROS 2 einiges zu bieten:  
Für unsere vielfältigen Projekte hat ROS 2 einiges zu bieten <ref>https://etn-sas.eu/2020/03/23/introduction-of-robot-operating-systems-2-ros2/</ref>:  
* Gerätetreiber für viele Aktoren und Sensoren
* Gerätetreiber für viele Aktoren und Sensoren
* Algorithmen zur Navigation und Bahnsteuerung
* Algorithmen zur Navigation und Bahnsteuerung
Zeile 31: Zeile 31:
Für die Installation von Ubuntu kann dieses [https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview Tutorial] verwendet werden.
Für die Installation von Ubuntu kann dieses [https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview Tutorial] verwendet werden.
Alternativ kann auch mit [https://www.chip.de/downloads/UNetbootin_34673960.html UNetbootin] ein USB-Stick für das Starten und Installieren von Ubuntu erstellt werden.
Alternativ kann auch mit [https://www.chip.de/downloads/UNetbootin_34673960.html UNetbootin] ein USB-Stick für das Starten und Installieren von Ubuntu erstellt werden.
Nach der Installation von ubuntu ist es erforderlich, dass der Nutzer (hier "hshl-user") Zugriff auf die sudo-Gruppe hat bzw. Befehle als Admin ausführen darf. Folgende Kommandos sind dazu in einem Terminal notwendig:
# Super-User werden: <code>su</code>
# Datei für sudo-Zugriff prüfen: <code>nano /etc/sudoers</code>
# Zeile muss so aussehen: <code>%sudo ALL=(ALL:ALL) ALL</code>
# Speichern mit Strg+X
# Nutzer "hshl-user" der Gruppe sudo hinzufügen: <code>usermod -aG sudo hshl-user</code>
# Root-Anmeldefenster verlassen: <code>exit</code>
# ggf. Terminal-Fenster neu starten
# Test, ob sudo funktioniert, z. B. mit: <code>sudo whoami</code>, Antwort muss "root" sein!


=== Installation ROS 2 Galactic Geochelone ===
=== Installation ROS 2 Galactic Geochelone ===
Zeile 38: Zeile 48:
Zum Öffnen eines Terminalfensters kann die Tastenkombination [Strg] + [Alt] + [T] verwendet werden.
Zum Öffnen eines Terminalfensters kann die Tastenkombination [Strg] + [Alt] + [T] verwendet werden.
Sollten noch keine Erfahrungen mit der Shell oder Kommandozeile vorhanden sein empfehlen wir den Einstieg über diese [https://wiki.ubuntuusers.de/Shell/Einführung/ Shell Einführung].
Sollten noch keine Erfahrungen mit der Shell oder Kommandozeile vorhanden sein empfehlen wir den Einstieg über diese [https://wiki.ubuntuusers.de/Shell/Einführung/ Shell Einführung].
Zum Ausführen von ROS2-Befehlen muss im Terminal eingegeben werden: <code>source /opt/ros/galactic/setup.bash</code>
=== Installation von Rapid SVN ===
Zur Arbeit mit dem u. g. Projekt wird ein Manager für SVN benötigt. Dieser wird mittels <code>snap install rapidsvn-snap</code> installiert.


== Tutorials ==
== Tutorials ==
Zeile 48: Zeile 63:
== Demo Fahrerloses Transport System ==
== Demo Fahrerloses Transport System ==
[[Datei:FTS.mp4|thumb|500px|right|Demo Fahrerloses Transport System]]  
[[Datei:FTS.mp4|thumb|500px|right|Demo Fahrerloses Transport System]]  
Von [[Benutzer:Stefan_Arndt|Stefan Arndt]] wurde in Kooperation mit der Firma [https://www.hanning-hew.com/de/ Hanning Elektro-Werke GmbH & Co. KG] eine Webots Simulation aufgebaut, diese wird hier als Demo vorgestellt.
In unserer Demo wird ein Fahrerloses Transport System (FTS) in einer virtuellen Umgebung navigiert. Hierbei wird von dem Roboter die Umgebung kartografiert und autonom ein Weg von der Start zur Ziel Position gesucht.
In der Demo wird ein Fahrerloses Transport System in einer virtuellen Umgebung navigiert. Hierbei wird von dem Roboter die Umgebung kartografiert und autonom ein Weg von der Start zur Ziel Position gesucht.
 
=== Voraussetzungen ===
=== Voraussetzungen ===
* [https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] wurde erfolgreich installiert
* [https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] wurde erfolgreich installiert
Zeile 55: Zeile 70:
* Ein eigener Workspace wurde erstellt
* Ein eigener Workspace wurde erstellt
* [https://www.cyberbotics.com/ Webots] wurde installiert
* [https://www.cyberbotics.com/ Webots] wurde installiert
=== Pakete herunterladen und installieren ===
Die Demo ist im [https://svn.hshl.de/svn/ROS2_Projekte/trunk/FTS/src/ SVN-Ordner] zu finden und wird in den src-Ordner des Workspaces kopiert.
Danach werden im Workspace die Pakete aufgebaut:
# Go into the root of your workspace: <code type="latex"> ~$  cd ~/FTS_ws </code>
# In the root of your workspace, build your packages: <code type="latex"> ~$  colcon build</code>


=== Starten der Demo ===
=== Starten der Demo ===
Zeile 61: Zeile 82:
# In the root, source your overlay: <code type="latex"> ~$  . install/local_setup.bash</code>
# In the root, source your overlay: <code type="latex"> ~$  . install/local_setup.bash</code>
# Start Webots and RViz with Hanning FTS <code type="latex"> ~$  ros2 launch hewagv_simulation full_system_launch.py </code>
# Start Webots and RViz with Hanning FTS <code type="latex"> ~$  ros2 launch hewagv_simulation full_system_launch.py </code>
== Literaturverzeichnis ==
<references />
----
→ zurück zum Hauptartikel: [[Robotik_und_autonome_Systeme | Robotik und autonome Systeme]]

Aktuelle Version vom 10. November 2022, 15:42 Uhr

Abb. 1: ROS 2 Galactic Geochelone

→ zurück zum Hauptartikel: Robotik und autonome Systeme

Autor: Gerrit Wurth


Einleitung

Im Forschungsgebiet Robotik und autonome Systeme wird mit dem Robot Operating System 2 (ROS 2) gearbeitet. Das Robot Operating System ist ein Framework und soll bei der Softwareentwicklung von Roboteranwendungen helfen [1]. Bereits 2007 startete die Entwicklung am Stanford Artificial Intelligence Laboratory im Rahmen des Stanford-AI-Robot-Projektes. Seit 2009 wird die Software überwiegend am Robotikinstitut Willow Garage weiterentwickelt. Ab 2012 übernahm die gemeinnützige Organisation Open Source Robotics Foundation (OSRF) die Entwicklung [2].


ROS 2 Galactic Geochelone ist die aktuelle Version und bietet Softwarebibliotheken und Werkzeugen zur Entwicklung von Robotern und autonomen Systemen [3].
Für unsere vielfältigen Projekte hat ROS 2 einiges zu bieten [4]:

  • Gerätetreiber für viele Aktoren und Sensoren
  • Algorithmen zur Navigation und Bahnsteuerung
  • Leistungsstarke Entwicklertools
  • Software für die Bildverarbeitung
  • Algorithmen für die Simultane Positionsbestimmung und Kartierung (SLAM)
  • Echtzeitfähigkeit

Installation

Installation Ubuntu 20.04 LTS

Wir empfehlen die Installation von ROS 2 Galactic Geochelone unter Ubuntu 20.04 LTS (Focal Fossa). Für die Installation von Ubuntu kann dieses Tutorial verwendet werden. Alternativ kann auch mit UNetbootin ein USB-Stick für das Starten und Installieren von Ubuntu erstellt werden.

Nach der Installation von ubuntu ist es erforderlich, dass der Nutzer (hier "hshl-user") Zugriff auf die sudo-Gruppe hat bzw. Befehle als Admin ausführen darf. Folgende Kommandos sind dazu in einem Terminal notwendig:

  1. Super-User werden: su
  2. Datei für sudo-Zugriff prüfen: nano /etc/sudoers
  3. Zeile muss so aussehen: %sudo ALL=(ALL:ALL) ALL
  4. Speichern mit Strg+X
  5. Nutzer "hshl-user" der Gruppe sudo hinzufügen: usermod -aG sudo hshl-user
  6. Root-Anmeldefenster verlassen: exit
  7. ggf. Terminal-Fenster neu starten
  8. Test, ob sudo funktioniert, z. B. mit: sudo whoami, Antwort muss "root" sein!

Installation ROS 2 Galactic Geochelone

Auch für die Installation von ROS 2 Galactic Geochelone werden Tutorials bereitgestellt. Wir empfehlen Installing ROS 2 via Debian Packages. Die in der Anleitung aufgeführten Befehle werden nacheinander in die Kommandozeile kopiert und ausgeführt. Zum Öffnen eines Terminalfensters kann die Tastenkombination [Strg] + [Alt] + [T] verwendet werden. Sollten noch keine Erfahrungen mit der Shell oder Kommandozeile vorhanden sein empfehlen wir den Einstieg über diese Shell Einführung.

Zum Ausführen von ROS2-Befehlen muss im Terminal eingegeben werden: source /opt/ros/galactic/setup.bash

Installation von Rapid SVN

Zur Arbeit mit dem u. g. Projekt wird ein Manager für SVN benötigt. Dieser wird mittels snap install rapidsvn-snap installiert.

Tutorials

Für den schnellen einstieg in das Robot Operating System empfehlen wir diese Tutorials In dem ersten Teil Beginner: Command-Line Interface Tools wird unter anderem vermittelt, was Nodes, Topics, Services, Parameters und Actions sind und wofür sie verwendet werden. Im zweiten Teil Beginner: Client Libraries wird der erste eigene Workspace erstellt, erklärt was Packages sind und die ersten einfachen Programme erstellt. Hierbei besteht immer die Wahl zwischen C++ und Python als Programmiersprache. Für fortgeschrittene Anfänger ist der dritte Teil Intermediate, hier wird eine eigene Action erstellt, mehrere Nodes in einem Prozess zusammengeführt und das Unified Robot Description Format (URDF) vorgestellt. Wer noch tiefer einsteigen möchte kann im vierten Teil Advanced weitere Erfahrungen sammeln. Danach werden noch Simulation Tutorials, Verschiedenes, weitere Demos und Beispiele angeboten.

Demo Fahrerloses Transport System

Demo Fahrerloses Transport System

In unserer Demo wird ein Fahrerloses Transport System (FTS) in einer virtuellen Umgebung navigiert. Hierbei wird von dem Roboter die Umgebung kartografiert und autonom ein Weg von der Start zur Ziel Position gesucht.

Voraussetzungen

Pakete herunterladen und installieren

Die Demo ist im SVN-Ordner zu finden und wird in den src-Ordner des Workspaces kopiert. Danach werden im Workspace die Pakete aufgebaut:

  1. Go into the root of your workspace: ~$ cd ~/FTS_ws
  2. In the root of your workspace, build your packages: ~$ colcon build

Starten der Demo

  1. Source ROS2 Environment as your underlay: ~$ source /opt/ros/galactic/setup.bash
  2. Go into the root of your workspace: ~$ cd ~/FTS_ws
  3. In the root, source your overlay: ~$ . install/local_setup.bash
  4. Start Webots and RViz with Hanning FTS ~$ ros2 launch hewagv_simulation full_system_launch.py

Literaturverzeichnis



→ zurück zum Hauptartikel: Robotik und autonome Systeme