Autonome Spurführung mit einem JetRacer ROS AI Robot: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(23 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
[[Kategorie:AMR]]  
[[Kategorie:AMR]]  
[[Kategorie:JetRacer ROS AI Roboter]]
[[Kategorie:JetRacer ROS AI Roboter]]
{|
{| class="wikitable"
|-
|-
| '''Autor:'''  || Jonas Michael Baisler
| '''Autor:'''  || Jonas Michael Beisler
|-
|-
| '''Modul:''' || Projektarbeit, TBD (bitte eintragen)
| '''Modul:''' || Projektarbeit, MBP-B-2-6.05
|-
|-
|  '''Starttermin''': || 19.02.2024
|  '''Starttermin''': || 19.02.2024
Zeile 12: Zeile 12:
|  '''Abgabetermin''': || TBD
|  '''Abgabetermin''': || TBD
|-
|-
|  '''Prüfungsform''': ||  Modulabschlussprüfung als Hausarbeit (Praxisbericht, Umfang 30-50 Seiten Textteil)
|  '''Prüfungsform''': ||  Modulabschlussprüfung als Hausarbeit (Praxisbericht, Umfang 10-50 Seiten Textteil)
|-
|-
|  '''Betreuer''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806
|  '''Betreuer''': || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]], Tel. 806
Zeile 28: Zeile 28:
## SLAM LiDAR Mapping
## SLAM LiDAR Mapping
## Bahnplanung, Autonome Navigation, dynamische Hindernisbehandlung
## Bahnplanung, Autonome Navigation, dynamische Hindernisbehandlung
## Bildverarbeitung
## Mensch-Roboter Sprachinteraktion
# Systemtest  
# Systemtest  
# Optimierung
# Optimierung
Zeile 35: Zeile 33:


== Durchführung ==
== Durchführung ==
# Nachvollziehen/Durchführung der Anleitung auf der WaveShare Website
*'''Zeitplanung'''
#
:#Ursprüngliche Planung
:#Überarbeitete Planung
*'''Montage des Jetracers'''
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit: Anleitung zum Aufbau des Jetracers]
:Verbesserungen beim Aufbau
::Motor-Aufhängung "tiefer legen"
*'''Multimachine Communication'''
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_II:_Install_Jetson_Nano_Image: Anleitung für die Inbetriebnahme des Racers]
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_III:_Install_Ubuntu_Virtual_Image: Anleitung für die Inbetriebnahme des Controllers]
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_IV:_Configure_Multi-machine_Communication: Anleitung für die Verbindung zwischen Racer und Controller]
*'''Austesten aller Funktionen'''
:#Verschiedene manuelle Steuerungsmodi
::#Steuerung per Tastatur
::#Steuerung per Joystick
:#Automatisches Fahren
::#Anfahren eines einzelnen Zieles
::#Abfahren mehrerer Punkte
*'''Endziel festlegen'''
*'''Raum Kartographieren'''
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Advanced_Tutorial_I:_SLAM_Lidar_Mapping: Anleitung für das erstellen einer Karte mit SLAM]
*'''Erstellen eigener Python Skripte'''
:Vorhandene Skripte verstehen
:ROS Publisher & Subscriber verstehen
:Einbauen der gewollten Funktionen
*'''Austesten der Skripte'''
:Testen & Verbessern des Skriptes
*'''Finale Vorführung des Ziels'''
:Video
== Anforderungen ==
== Anforderungen ==
Das Projekt erfordert Vorwissen in den nachfolgenden Themengebieten. Sollten Sie die Anforderungen nicht erfüllen müssen Sie sich diese Kenntnisse anhand im Rahmen der Arbeit anhand von Literatur/Online-Kursen selbst aneignen.
Das Projekt erfordert Vorwissen in den nachfolgenden Themengebieten. Sollten Sie die Anforderungen nicht erfüllen müssen Sie sich diese Kenntnisse anhand im Rahmen der Arbeit anhand von Literatur/Online-Kursen selbst aneignen.
* Umgang mit Linux
* Umgang mit Linux
* C-Programmierung
* Python-Programmierung
* Dokumentenversionierung mit SVN
* Dokumentenversionierung mit SVN
* Optional:  
* Optional:  
Zeile 52: Zeile 77:
== Anforderungen an die wissenschaftliche Arbeit ==
== Anforderungen an die wissenschaftliche Arbeit ==
* Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: [[Gantt-Diagramm| Gantt Diagramm erstellen]]
* Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: [[Gantt-Diagramm| Gantt Diagramm erstellen]]
* Wöchentlicher Fortschrittsberichte (informativ), aktualisieren Sie das [[Diskussion:Mono-Vision für ein autonomes Fahrzeug|Besprechungsprotokoll]] - Live Gespräch mit Prof. Schneider
* Wöchentlicher Fortschrittsberichte (informativ), aktualisieren Sie das [[Diskussion:Autonome_Spurführung_mit_einem_JetRacer_ROS_AI_Robot|Besprechungsprotokoll]] - Live Gespräch mit Prof. Schneider
* Projektvorstellung im Wiki
* Projektvorstellung im Wiki
* Tägliche Sicherung der Arbeitsergebnisse in SVN
* Tägliche Sicherung der Arbeitsergebnisse in SVN
Zeile 58: Zeile 83:
*[[Studentische_Arbeiten_bei_Prof._Schneider|Studentische Arbeiten bei Prof. Schneider]]
*[[Studentische_Arbeiten_bei_Prof._Schneider|Studentische Arbeiten bei Prof. Schneider]]
*[[Anforderungen_an_eine_wissenschaftlich_Arbeit| Anforderungen an eine wissenschaftlich Arbeit]]
*[[Anforderungen_an_eine_wissenschaftlich_Arbeit| Anforderungen an eine wissenschaftlich Arbeit]]
* Abgabe der Schriftlichen Ausarbeitung als Wiki-Artikel (ggf. Artikel als PDF drucken).


== SVN-Repositorium ==
== Repositorium ==
* TBD
* Sciebo-Projektordner: \JetRacer_ROS_AI_Robot\
* Sciebo-Abgabeordner: \Jonas_Beisler\Projektarbeit\


== Getting started ==
== Getting started ==
Lesen Sie zum Einstieg diese Artikel
Lesen Sie zum Einstieg diese Artikel
*[[JetRacer_ROS_AI_Roboter]]
*[https://wiki.hshl.de/wiki/index.php/Kategorie:JetRacer_ROS_AI_Roboter Hauptartikel: JetRacer_ROS_AI_Roboter]
*[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit Waveshare: JetRacer ROS AI Kit]
*[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit Waveshare: JetRacer ROS AI Kit]
*[[Gantt-Diagramm| Gantt Diagramm erstellen]]
*[[Gantt-Diagramm| Gantt Diagramm erstellen]]
Zeile 70: Zeile 97:
*[[Software_Planung| PAP Designer Einstieg]]
*[[Software_Planung| PAP Designer Einstieg]]
*[[Software_Versionsverwaltung_mit_SVN| Einführung in SVN]]
*[[Software_Versionsverwaltung_mit_SVN| Einführung in SVN]]
*[https://studyassist.hshl.de/at-home/extern/sciebo/ Einrichtung der ScienceBox (Sciebo)]
{| class="wikitable"
|+ Tabelle 1: Checkliste
|-
! LOP !! Status !! Bemerkung
|-
| Sicherheitseinweisung für die Labore von [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]] || <span style="color:green">☑</span> ||
|-
| Schlüsselübergabe für die Labore von [[Benutzer:Marc Ebmeyer| Marc Ebmeyer]]|| <span style="color:green">☑</span> ||
|-
| SVN-Zugang bereitstellen|| <span style="color:green">☑</span> || user: <code>Jonas_Beisler</code>
|-
| Vereinbarung wöchentlicher Meetings|| <span style="color:green">☑</span> || user: <code>Jonas_Beisler</code>
|-
| Wiki-Zugang bereitstellen|| <span style="color:green">☑</span> || user: <code>Jonas_Beisler</code>
|}


== Nützliche Artikel ==
== Nützliche Artikel ==
*[https://www.waveshare.com/product/robotics/mobile-robots/jetson-nano-ai-robots/jetracer-ros-ai-kit.htm#none; Waveshare: JetBot Professional Version ROS AI Kit]
*[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit Waveshare: JetRacer ROS AI Kit Wiki]
*[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit Waveshare: JetRacer ROS AI Kit Wiki]


----
----
→ zurück zum Hauptartikel: [[Studentische_Arbeiten|Studentische Arbeiten]]
→ zurück zum Hauptartikel: [[Studentische_Arbeiten|Studentische Arbeiten]]

Version vom 11. September 2024, 16:29 Uhr

Abb. 1: JetRacer ROS AI Roboter von Waveshare
Autor: Jonas Michael Beisler
Modul: Projektarbeit, MBP-B-2-6.05
Starttermin: 19.02.2024
Abgabetermin: TBD
Prüfungsform: Modulabschlussprüfung als Hausarbeit (Praxisbericht, Umfang 10-50 Seiten Textteil)
Betreuer: Prof. Dr.-Ing. Schneider, Tel. 806
Mitarbeiter: Marc Ebmeyer, Tel. 847

Einführung

Der JetRacer ist ein Modellrennwagen im Maßstab 1:10. Hierbei handelt es sich um ein leistungsstarkes intelligentes KI-Modellfahrzeug, das speziell für Studierende entwickelt wurde, die den Umgang mit dem Robot Operation Systelm (ROS) erlernen möchten. Das System besteht aus zwei Steuereinheiten. Den Host-Controller bildet das JETSON-NANO-DEV-KIT-A und als Sub-Controller wird ein Raspberry Pi RP2040-Mikrocontroller verwendet. Die Hauptplatine integriert die OLED, den Servomotor-Antriebsschaltkreis, den Batterieschutzschaltkreis, einen Audioausgangsschaltkreis usw., das lästige Löten des Schaltkreises erspart, das Entladen und Laden unterstützt und kein wiederholtes Entfernen des Akkus erfordert. Der verbauter IMU-Lagesensor und DC-Encodermotor regelt die Geschwindigkeit über einen PID-Regler und kann einen Radkilometerzähler ausgeben. Die Software ist mit dem Open-Source-Projektprogramm NVIDIA Jetbot kompatibel und unterstützt AI Deep Learning, SLAM-Mapping und -Navigation, visuelle OpenCV-Verarbeitung, intelligente Sprachinteraktion und andere Funktionen.

Aufgabenstellung

  1. Einarbeitung in den JetRacer
  2. Ansteuerung des Antriebs und der Lenkung
  3. Einlesen der Sensoren
  4. Fokus auf eines der Schwerpunktgebiete
    1. SLAM LiDAR Mapping
    2. Bahnplanung, Autonome Navigation, dynamische Hindernisbehandlung
  5. Systemtest
  6. Optimierung
  7. Dokumentation der Vorgehensweise im HSHL-Wiki

Durchführung

  • Zeitplanung
  1. Ursprüngliche Planung
  2. Überarbeitete Planung
  • Montage des Jetracers
Anleitung zum Aufbau des Jetracers
Verbesserungen beim Aufbau
Motor-Aufhängung "tiefer legen"
  • Multimachine Communication
Anleitung für die Inbetriebnahme des Racers
Anleitung für die Inbetriebnahme des Controllers
Anleitung für die Verbindung zwischen Racer und Controller
  • Austesten aller Funktionen
  1. Verschiedene manuelle Steuerungsmodi
  1. Steuerung per Tastatur
  2. Steuerung per Joystick
  1. Automatisches Fahren
  1. Anfahren eines einzelnen Zieles
  2. Abfahren mehrerer Punkte
  • Endziel festlegen
  • Raum Kartographieren
Anleitung für das erstellen einer Karte mit SLAM
  • Erstellen eigener Python Skripte
Vorhandene Skripte verstehen
ROS Publisher & Subscriber verstehen
Einbauen der gewollten Funktionen
  • Austesten der Skripte
Testen & Verbessern des Skriptes
  • Finale Vorführung des Ziels
Video

Anforderungen

Das Projekt erfordert Vorwissen in den nachfolgenden Themengebieten. Sollten Sie die Anforderungen nicht erfüllen müssen Sie sich diese Kenntnisse anhand im Rahmen der Arbeit anhand von Literatur/Online-Kursen selbst aneignen.

  • Umgang mit Linux
  • Python-Programmierung
  • Dokumentenversionierung mit SVN
  • Optional:
    • AI Deep Learning mit NVIDIA Jetson Nano
    • OpenCV Vision Processing
    • Simulation mit WeBots
    • Umgang mit ROS2
    • Partikel Filter SLAM
    • Mensch-Roboter Sprachinteraktion

Anforderungen an die wissenschaftliche Arbeit

Repositorium

  • Sciebo-Projektordner: \JetRacer_ROS_AI_Robot\
  • Sciebo-Abgabeordner: \Jonas_Beisler\Projektarbeit\

Getting started

Lesen Sie zum Einstieg diese Artikel

Tabelle 1: Checkliste
LOP Status Bemerkung
Sicherheitseinweisung für die Labore von Marc Ebmeyer
Schlüsselübergabe für die Labore von Marc Ebmeyer
SVN-Zugang bereitstellen user: Jonas_Beisler
Vereinbarung wöchentlicher Meetings user: Jonas_Beisler
Wiki-Zugang bereitstellen user: Jonas_Beisler


Nützliche Artikel


→ zurück zum Hauptartikel: Studentische Arbeiten