Einstieg ROS 2: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Kategorie:Robotik Kategorie:Autonome Systeme Kategorie:ROS2 → zurück zum Hauptartikel: Robotik_und_autonome_Systeme | Robotik und autonome Sys…“) |
|||
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Datei:Galactic.png|250px|mini|right|Abb. 1: ROS 2 Galactic Geochelone]] | |||
[[Kategorie:Robotik]] | [[Kategorie:Robotik]] | ||
[[Kategorie:Autonome Systeme]] | [[Kategorie:Autonome Systeme]] | ||
Zeile 5: | Zeile 6: | ||
'''Autor:''' [[Benutzer:Gerrit_Wurth| Gerrit Wurth]] | '''Autor:''' [[Benutzer:Gerrit_Wurth| Gerrit Wurth]] | ||
<!-- Dies hier wird nicht angezeigt --> | <!-- Dies hier wird 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 27: | Zeile 27: | ||
== Installation == | == Installation == | ||
=== Installation Ubuntu 20.04 LTS === | |||
Wir empfehlen die Installation von [https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] unter [https://www.releases.ubuntu.com/20.04/ Ubuntu 20.04 LTS (Focal Fossa)]. | |||
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. | |||
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 === | |||
Auch für die Installation von [https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] werden Tutorials bereitgestellt. | |||
Wir empfehlen [https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html 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 [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 == | ||
Für den schnellen einstieg in das [https://de.wikipedia.org/wiki/Robot_Operating_System Robot Operating System] empfehlen wir diese [https://docs.ros.org/en/galactic/Tutorials.html Tutorials] | |||
In dem ersten Teil [https://docs.ros.org/en/galactic/Tutorials.html#beginner-cli-tools 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 [https://docs.ros.org/en/galactic/Tutorials.html#beginner-client-libraries 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 [https://docs.ros.org/en/galactic/Tutorials.html#intermediate 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 [https://docs.ros.org/en/galactic/Tutorials.html Advanced] weitere Erfahrungen sammeln. | |||
Danach werden noch [https://docs.ros.org/en/galactic/Tutorials/Simulators/Simulation-Main.html Simulation Tutorials], [https://docs.ros.org/en/galactic/Tutorials.html#miscellaneous Verschiedenes], weitere [https://docs.ros.org/en/galactic/Tutorials.html#demos Demos] und [https://docs.ros.org/en/galactic/Tutorials.html#examples Beispiele] angeboten. | |||
== Demo Fahrerloses Transport System == | == Demo Fahrerloses Transport System == | ||
[[Datei:FTS.mp4|thumb|500px|right|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 === | |||
* [https://docs.ros.org/en/galactic/# ROS 2 Galactic Geochelone] wurde erfolgreich installiert | |||
* Die Tutorials wurden bis einschließlich [https://docs.ros.org/en/galactic/Tutorials.html#beginner-client-libraries Beginner: Client Libraries] durchgeführt | |||
* Ein eigener Workspace wurde erstellt | |||
* [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 === | |||
# Source ROS2 Environment as your underlay: <code type="latex"> ~$ source /opt/ros/galactic/setup.bash </code> | |||
# Go into the root of your workspace: <code type="latex"> ~$ cd ~/FTS_ws </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> | |||
== Literaturverzeichnis == | |||
<references /> | |||
---- | |||
→ zurück zum Hauptartikel: [[Robotik_und_autonome_Systeme | Robotik und autonome Systeme]] |
Aktuelle Version vom 10. November 2022, 15:42 Uhr
→ 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:
- Super-User werden:
su
- Datei für sudo-Zugriff prüfen:
nano /etc/sudoers
- Zeile muss so aussehen:
%sudo ALL=(ALL:ALL) ALL
- Speichern mit Strg+X
- Nutzer "hshl-user" der Gruppe sudo hinzufügen:
usermod -aG sudo hshl-user
- Root-Anmeldefenster verlassen:
exit
- ggf. Terminal-Fenster neu starten
- 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
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
- ROS 2 Galactic Geochelone wurde erfolgreich installiert
- Die Tutorials wurden bis einschließlich Beginner: Client Libraries durchgeführt
- Ein eigener Workspace wurde erstellt
- Webots wurde installiert
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:
- Go into the root of your workspace:
~$ cd ~/FTS_ws
- In the root of your workspace, build your packages:
~$ colcon build
Starten der Demo
- Source ROS2 Environment as your underlay:
~$ source /opt/ros/galactic/setup.bash
- Go into the root of your workspace:
~$ cd ~/FTS_ws
- In the root, source your overlay:
~$ . install/local_setup.bash
- Start Webots and RViz with Hanning FTS
~$ ros2 launch hewagv_simulation full_system_launch.py
Literaturverzeichnis
→ zurück zum Hauptartikel: Robotik und autonome Systeme