Zusammenfassung Praxissemester Gerken: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Im Rahmen meines Bachelorstudiums absolvierte ich vom 01.11.2021 bis 20.02.2022 an der Hochschule Hamm-Lippstadt mein Praktikum. Der vorliegende HSHL-WIKI Artikel „Kommunikation Raspberry Pi mit ROS2“ stellt meinen Praktikumsbericht dar. Darin wurden die verschiedenen Teile zur Programmierung, wie Secure Shell (SSH), die Motorsteuerung und die Hindernisumfahrungs-programme erläutert.
Da ich über das Praxissemester hinweg nicht nur die Programmierung des AlphaBots übernommen habe, wird im Folgenden auch die Simulation in Webots reflektiert.
Ich bin mit großen Erwartungen, mehr über Programmierung mit einem Microkontroller oder auch Projektmanagement zu lernen, in das Praktikum gegangen.
Mich hat das Thema „Robotik und Autonome Systeme“, welches von der Hochschule angeboten  wurde sehr interessiert, da Roboter in der Fertigung eine immer größere Rolle einnehmen.
Vor dem Start des Praktikums konnte ich mit den Tutorials zu dem Robot Operating System (ROS2) erste Erfahrungen sammeln.


=== Eigenreflexion ===
=== Eigenreflexion ===


Zu Beginn des Praktikums habe ich mir mit den Tutorials zu ROS2 und Webots die Grundlagen zur Programmierung von Robotern angeeignet.  
Zu Beginn des Praktikums habe ich mir mit den Tutorials zu ROS2 und dem Simulationsprogramm Webots die Grundlagen zur Programmierung von Robotern angeeignet.  


In Webots konnte ich einen selbst erstelltes Robotermodell mit einem Programminternen Controller in Python oder C++ programmieren und fahren lassen.
In Webots konnte ich einen selbst erstelltes Robotermodell mit einem Programminternen Controller in Python oder C++ programmieren und fahren lassen.
Die Webotswelt habe ich anschließend mit ROS2 verknüpft und den Roboter mit verschiedenen ROS2-Nodes gesteuert. So konnte ich den AlphaBot in der Simulation mit einer Tastatur steuern oder mit einem Hindernisumfahrungsprogramm über zwei Infrarotsensoren oder einem Ultraschallsensor autonom fahren lassen.
Die Webotswelt habe ich anschließend mit ROS2 verknüpft und den Roboter mit verschiedenen ROS2-Nodes gesteuert. So konnte ich den AlphaBot in der Simulation mit einer Tastatur steuern oder mit einem Hindernisumfahrungsprogramm über zwei Infrarotsensoren oder einem Ultraschallsensor autonom fahren lassen.
 
Die Simulation in Webots fand ich sehr interessant, da ich im Verlauf meines Studiums immer nur Diagramme zur Projekt Entwicklung erstellt und ein autonom fahrendes Fahrzeug gebaut oder programmiert habe.
Dadurch habe ich festgestellt, dass eine Simulation während der Entwicklung hilfreich seien kann, bevor die Hardware programmiert wird. So können vor der Programmierung der Hardware, in der Simulation schon Programmierfehler entdeckt und korrigiert werden.


Weiter habe ich den AlphaBot mit ROS2 programmiert. Dazu musste ich experimentieren, wie die GPIO Pins des Raspberry Pi’s (RPi) mit ROS2 angesteuert werden können. Zudem musste ich herausfinden in welchem Datentyp die Infrarotsensordaten oder die Ultraschallsensordaten ausgegeben werden.
Weiter habe ich den AlphaBot mit ROS2 programmiert. Dazu musste ich experimentieren, wie die GPIO Pins des Raspberry Pi’s (RPi) mit ROS2 angesteuert werden können. Zudem musste ich herausfinden in welchem Datentyp die Infrarotsensordaten oder die Ultraschallsensordaten ausgegeben werden.
Anschließend habe ich die Infrarotsensoren zur Hindernisumfahrung programmiert. Den Code habe ich danach in einer Statischen Position getestet. Wenn alles reibungslos funktioniert hat, habe ich den AlphaBot über WIFI und SSH frei herumfahren lassen.
Anschließend habe ich die Infrarotsensoren zur Hindernisumfahrung programmiert. Den Code habe ich danach in einer Statischen Position getestet. Wenn alles reibungslos funktioniert hat, habe ich den AlphaBot über WIFI und SSH frei herumfahren lassen.
Nachdem die Infrarothindernisumfahrung funktioniert hat, konnte ich die Ultraschallhindernisumfahrung implementieren. Dazu gehörte das programmieren des Servo-Motors, um den Ultraschallsensor nach rechts und links zu drehen.
Nachdem die Infrarothindernisumfahrung funktioniert hat, habe ich die Ultraschallhindernisumfahrung implementieren. Dazu gehörte das programmieren des Servo-Motors, um den Ultraschallsensor nach rechts und links zu drehen und die Steuerung was der AlphaBot machen soll, wenn links oder rechts ein Hindernis ist.
Zunächst habe ich den Code in einer Statischen Position getestet und danach autonom im Raum herumfahren lassen.
Zunächst habe ich den Code in einer Statischen Position getestet und danach autonom im Raum herumfahren lassen.


Um den Ablauf der Programme grafisch darzustellen habe ich unterschiedliche UML-Diagramme erstellt.
Bei der Verknüpfung von Webots und ROS2 oder allgemein bei der Programmierung in der Simulation oder der Hardware hatte ich das ein oder andere Problem.
Bei den Problemen hatte ich immer einen Ansprechpartner den ich fragen konnte. Meistens konnte ich die Probleme aber eigenständig lösen.
Durch das eigenständige Arbeiten konnte ich viel durch meine Fehler lernen.
Daraus schlussfolgere ich, dass ich im Beruf mir auch mal etwas neues erlernen muss und dabei nicht alles direkt perfekt funktioniert.


Insgesamt habe ich im Bereich der Programmierung viel dazu gelernt. So konnte ich meine Programmierkenntnisse in Python allgemein und mit ROS2 erweitern.


Durch meine wenigen Programmierkenntnisse musste ich zunächst die Programmiersprache Python wiederholen. Durch die ROS2 Tutorials konnte ich mich an
Um den Ablauf der Programme grafisch darzustellen habe ich unterschiedliche UML-Diagramme erstellt.


Bei der Programmierung mit ROS2 gab es zwar das ein oder andere Problem.
Mit dem Projekt konnte ich meine Kenntnisse zu UML-Diagrammen aus dem Modul Informatik 3 anwenden und vertiefen.  
Diese konnten meistens durch ausprobieren selbstständig gelöst werden. Wenn dies nicht der Fall war, hatte ich einen Ansprechpartner der mir Tipps geben konnte.
Dabei musste ich feststellen, das diese für das Verständnis eines Systems, im Projekt selbst oder für außenstehende sehr hilfreich seien kann.


=== Ausblick ===
=== Ausblick ===


Da ich vor meinem Praktikum kaum Erfahrung im Bereich Robotik und Autonome Systeme hatte, konnte mir das Praktikum bestätigen, dass dieser Bereich meinen beruflichen Interessen entspricht.
Der AlphaBot könnte in einem weiteren Projekt mit einem Lidar-Sensor ausgestattet werden.
 
Mit dem Lidar-Sensor kann eine 2D-Map der Umgebung in dem ROS2-Tool Rviz und der slam-toolbox erstellt werden.
Im 2. Semester habe ich bereits im Modul Mikrocontroller die Programmiersprache Python und im Modul Informatik 3 verschiedenen UML-Diagramme zur Dokumentation von Projekten kennengelernt. Dieses Wissen konnte ich in meinem Praktikum anwenden und vertiefen.
Weiter habe ich meine Programmierkenntnisse durch das Robot Operating System erweitern können. Außerdem habe ich durch Webots kennengelernt, wie ich einen Roboter zunächst simulieren kann, bevor die Hardware programmiert wird. Das hat den Vorteil, dass in einem größeren Projekt ein erster Prototype nicht unnötig beschädigt wird, da vielleicht noch Programmfehler vorhanden sind.


Nach meinem Bachelor sehe ich mich selbst bestätigt einen Masterabschluss anzustreben.
In Rviz kann dann mit der sogenannten Odometrie die Position des AlphaBots auf der Map anhand der Räderrotation geschätzt werden.
Mein Ziel ist es, mein Fachwissen weiter zu vertiefen.


Über die Map kann der AlphaBot zum Beispiel zu einer bestimmten Position geschickt werden. Da auf der Map alle Hindernisse aufgezeichnet werden, weiß der AlphaBot dann, wie er fahren muss um an dem gegebenen Ziel anzukommen.


----
----
→ zurück zum Hauptartikel: [[Kommunikation_Raspberry_Pi_mit_ROS2|Kommunikation Raspberry Pi mit ROS2]]
→ zurück zum Hauptartikel: [[Kommunikation_Raspberry_Pi_mit_ROS2|Kommunikation Raspberry Pi mit ROS2]]

Aktuelle Version vom 18. März 2022, 14:38 Uhr

Eigenreflexion

Zu Beginn des Praktikums habe ich mir mit den Tutorials zu ROS2 und dem Simulationsprogramm Webots die Grundlagen zur Programmierung von Robotern angeeignet.

In Webots konnte ich einen selbst erstelltes Robotermodell mit einem Programminternen Controller in Python oder C++ programmieren und fahren lassen. Die Webotswelt habe ich anschließend mit ROS2 verknüpft und den Roboter mit verschiedenen ROS2-Nodes gesteuert. So konnte ich den AlphaBot in der Simulation mit einer Tastatur steuern oder mit einem Hindernisumfahrungsprogramm über zwei Infrarotsensoren oder einem Ultraschallsensor autonom fahren lassen.

Die Simulation in Webots fand ich sehr interessant, da ich im Verlauf meines Studiums immer nur Diagramme zur Projekt Entwicklung erstellt und ein autonom fahrendes Fahrzeug gebaut oder programmiert habe. Dadurch habe ich festgestellt, dass eine Simulation während der Entwicklung hilfreich seien kann, bevor die Hardware programmiert wird. So können vor der Programmierung der Hardware, in der Simulation schon Programmierfehler entdeckt und korrigiert werden.

Weiter habe ich den AlphaBot mit ROS2 programmiert. Dazu musste ich experimentieren, wie die GPIO Pins des Raspberry Pi’s (RPi) mit ROS2 angesteuert werden können. Zudem musste ich herausfinden in welchem Datentyp die Infrarotsensordaten oder die Ultraschallsensordaten ausgegeben werden. Anschließend habe ich die Infrarotsensoren zur Hindernisumfahrung programmiert. Den Code habe ich danach in einer Statischen Position getestet. Wenn alles reibungslos funktioniert hat, habe ich den AlphaBot über WIFI und SSH frei herumfahren lassen. Nachdem die Infrarothindernisumfahrung funktioniert hat, habe ich die Ultraschallhindernisumfahrung implementieren. Dazu gehörte das programmieren des Servo-Motors, um den Ultraschallsensor nach rechts und links zu drehen und die Steuerung was der AlphaBot machen soll, wenn links oder rechts ein Hindernis ist. Zunächst habe ich den Code in einer Statischen Position getestet und danach autonom im Raum herumfahren lassen.

Bei der Verknüpfung von Webots und ROS2 oder allgemein bei der Programmierung in der Simulation oder der Hardware hatte ich das ein oder andere Problem. Bei den Problemen hatte ich immer einen Ansprechpartner den ich fragen konnte. Meistens konnte ich die Probleme aber eigenständig lösen. Durch das eigenständige Arbeiten konnte ich viel durch meine Fehler lernen. Daraus schlussfolgere ich, dass ich im Beruf mir auch mal etwas neues erlernen muss und dabei nicht alles direkt perfekt funktioniert.

Insgesamt habe ich im Bereich der Programmierung viel dazu gelernt. So konnte ich meine Programmierkenntnisse in Python allgemein und mit ROS2 erweitern.

Um den Ablauf der Programme grafisch darzustellen habe ich unterschiedliche UML-Diagramme erstellt.

Mit dem Projekt konnte ich meine Kenntnisse zu UML-Diagrammen aus dem Modul Informatik 3 anwenden und vertiefen. Dabei musste ich feststellen, das diese für das Verständnis eines Systems, im Projekt selbst oder für außenstehende sehr hilfreich seien kann.

Ausblick

Der AlphaBot könnte in einem weiteren Projekt mit einem Lidar-Sensor ausgestattet werden. Mit dem Lidar-Sensor kann eine 2D-Map der Umgebung in dem ROS2-Tool Rviz und der slam-toolbox erstellt werden.

In Rviz kann dann mit der sogenannten Odometrie die Position des AlphaBots auf der Map anhand der Räderrotation geschätzt werden.

Über die Map kann der AlphaBot zum Beispiel zu einer bestimmten Position geschickt werden. Da auf der Map alle Hindernisse aufgezeichnet werden, weiß der AlphaBot dann, wie er fahren muss um an dem gegebenen Ziel anzukommen.


→ zurück zum Hauptartikel: Kommunikation Raspberry Pi mit ROS2