Kommunikation Raspberry Pi mit ROS2: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 12: Zeile 12:
== Einleitung ==
== Einleitung ==


Dieser Artikel beschreibt die Kommunikation von einem [https://de.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi(RPi)] mit dem [[Robot_Operating_System_2|Robot Operating System2 (ROS2)]]. In Abb. 1 sind die Nodes master und slave zu sehen, welche auf der RPi ausgeführt werden. Über die Topics, wie cmd_vel oder die SONAR-Topics, kommunizieren die Nodes mit einander. Dazu wird erklärt, wie ein Raspberry Pi mit einem PC über SSH(Secure Shell) verbunden werden kann und wie der AlphaBot über den RPi und ROS2 gesteuert wurde. Außerdem wird beschrieben was es für grafische Anzeige Möglichkeiten unter ROS2 gibt.
Dieser Artikel beschreibt die Kommunikation von einem [https://de.wikipedia.org/wiki/Raspberry_Pi Raspberry Pi(RPi)] mit dem [[Robot_Operating_System_2|Robot Operating System2 (ROS2)]]. In Abb. 1 sind die Nodes master und slave zu sehen, welche auf der RPi ausgeführt werden. Über die Topics, wie cmd_vel oder die SONAR-Topics, kommunizieren die Nodes mit einander. Dazu wird erklärt, wie ein Raspberry Pi mit einem PC über [https://de.wikipedia.org/wiki/Secure_Shell Secure Shell (SSH)] verbunden werden kann und wie der AlphaBot über den RPi und ROS2 gesteuert wurde. Außerdem wird beschrieben was es für grafische Anzeige Möglichkeiten unter ROS2 gibt.


==== Aufgabenstellung ====
Das Ziel war es einen [[AlphaBot|AlphaBot]] mit ROS2 zu programmieren und fahren zu lassen, damit er Hindernisse mit Infrarotsensoren und dem Ultraschallsensor umfahren kann.
==== Projektplanung ====
[[Datei:Projektplan_JonasGerken.png|left|mini|700px|Abb 2: Projektplan]]
<br clear=all>


==== Funktionale Anforderungen ====
==== Funktionale Anforderungen ====
Zeile 37: Zeile 46:
{| class="wikitable"
{| class="wikitable"
|NF1  
|NF1  
|Es muss ein [[AlphaBot_Bauanleitung#Ben.C3.B6tigte_Bauteile| AlphaBot]] verwendet werden.
|Es muss ein AlphaBot verwendet werden.
|-
|-
|NF2  
|NF2  
|Der AlphaBot muss mit dem [[Robot Operating System 2| ROS2]] programmiert werden.
|Der AlphaBot muss mit ROS2  programmiert werden.
|-
|-
|NF3
|NF3
Zeile 49: Zeile 58:
|-
|-
|NF5
|NF5
|Es soll die Python Bibliothek [[https://pypi.org/project/RPi.GPIO/ RPi.GPIO]] verwendet werden.
|Es soll die Python Bibliothek [https://pypi.org/project/RPi.GPIO/ RPi.GPIO] verwendet werden.
|-
|-
|NF6
|NF6
Zeile 65: Zeile 74:
# AlphaBot
# AlphaBot
# Raspberry Pi 4
# Raspberry Pi 4
# mciro-SD Karte mit SD-Karten Adapter
# HDMI-Kabel
# HDMI-Kabel
# Netzwerkkabel
# Netzwerkkabel
Zeile 74: Zeile 84:
# Python
# Python
# ROS2
# ROS2
# [https://de.wikipedia.org/wiki/Secure_Shell Secure Shell(SSH)]
# Secure Shell (SSH)
# [https://de.wikipedia.org/wiki/PuTTY PuTTY]
# [https://de.wikipedia.org/wiki/PuTTY PuTTY]


==== [[ Raspberry Pi über Secure Shell(SSH) mit Desktop PC verbinden | Raspberry Pi über Secure Shell(SSH) mit Desktop PC verbinden]] ====
==== [[ Raspberry Pi über Secure Shell(SSH) mit Desktop PC verbinden | Raspberry Pi über Secure Shell(SSH) mit Desktop PC verbinden]] ====


==== [[ Microcontroller coding mit der Integration von ROS2 | Microcontroller coding mit der Integration von ROS2 ]] ====
==== [[ Programmierung / Funktionsweise der ROS2 Codes  | Programmierung / Funktionsweise der ROS2 Codes ]] ====


==== [[ Darstellung der Ergebnisse | Darstellung der Ergebnisse ]] ====


==== [[ Demo | Demo]] ====
==== [[ Demo | Demo]] ====
Zeile 90: Zeile 101:


* [https://wiki.ubuntuusers.de/PuTTY/ PuTTY Installation]
* [https://wiki.ubuntuusers.de/PuTTY/ PuTTY Installation]
* [https://wiki.ubuntuusers.de/SSH/ SSH ]




----
----
→ zurück zum Hauptartikel: [[Robot_Operating_System_2|Robot Operating System2 (ROS2)]]
→ zurück zum Hauptartikel: [[Robot_Operating_System_2|Robot Operating System2 (ROS2)]]

Aktuelle Version vom 19. März 2022, 15:23 Uhr

Autoren: Jonas Gerken
Betreuer: Prof. Schneider
Art: Praxissemester
Projektlaufzeit: 02.11.2021 - 20.02.2022


Abb 1: Kommunikation zwischen Maste-Node und Slave-Node


Einleitung

Dieser Artikel beschreibt die Kommunikation von einem Raspberry Pi(RPi) mit dem Robot Operating System2 (ROS2). In Abb. 1 sind die Nodes master und slave zu sehen, welche auf der RPi ausgeführt werden. Über die Topics, wie cmd_vel oder die SONAR-Topics, kommunizieren die Nodes mit einander. Dazu wird erklärt, wie ein Raspberry Pi mit einem PC über Secure Shell (SSH) verbunden werden kann und wie der AlphaBot über den RPi und ROS2 gesteuert wurde. Außerdem wird beschrieben was es für grafische Anzeige Möglichkeiten unter ROS2 gibt.

Aufgabenstellung

Das Ziel war es einen AlphaBot mit ROS2 zu programmieren und fahren zu lassen, damit er Hindernisse mit Infrarotsensoren und dem Ultraschallsensor umfahren kann.

Projektplanung

Abb 2: Projektplan


Funktionale Anforderungen

F1 Der AlphaBot muss Hindernisse mit Infrarotsensoren erkennen können.
F2 Der AlphaBot muss Hindernisse mit einem Ultraschallsensor erkennen können.
F5 Der Ultraschallsensor muss mit einem Servo-Motor nach rechts und links gedreht werden können.
F3 Der AlphaBot muss Hindernisse umfahren können.
F4 Die Motoren müssen einzeln angesteuert werden können.

Nicht Funktionale Anforderungen

NF1 Es muss ein AlphaBot verwendet werden.
NF2 Der AlphaBot muss mit ROS2 programmiert werden.
NF3 Der AlphaBot soll mit einem RPi gesteuert werden.
NF4 Der AlphaBot soll mit Python programmiert werden.
NF5 Es soll die Python Bibliothek RPi.GPIO verwendet werden.
NF6 Es muss Ubuntu Server 20.04 Server auf dem RPi verwendent werden.

Übersicht

Dokumentation

verwendete Hardware
  1. AlphaBot
  2. Raspberry Pi 4
  3. mciro-SD Karte mit SD-Karten Adapter
  4. HDMI-Kabel
  5. Netzwerkkabel
  6. Netzwerkswitch
verwendete Software
  1. Ubuntu Server 20.04
  2. Python
  3. ROS2
  4. Secure Shell (SSH)
  5. PuTTY

Raspberry Pi über Secure Shell(SSH) mit Desktop PC verbinden

Programmierung / Funktionsweise der ROS2 Codes

Darstellung der Ergebnisse

Demo

Zusammenfassung

Weiterführende Links



→ zurück zum Hauptartikel: Robot Operating System2 (ROS2)