Autonome Spurführung mit einem JetRacer ROS AI Robot: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 45: | Zeile 45: | ||
:[https://www.waveshare.com/wiki/JetRacer_ROS_AI_Kit_Tutorial_IV:_Configure_Multi-machine_Communication: Anleitung für die Verbindung zwischen Racer und Controller] | :[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''' | *'''Austesten aller Funktionen''' | ||
:#Verschiedene manuelle Steuerungsmodi | |||
::#Steuerung per Tastatur | |||
::#Steuerung per Joystick | |||
:#Automatisches Fahren | |||
::#Anfahren eines einzelnen Zieles | |||
::#Abfahren mehrerer Punkte | |||
*'''Endziel festlegen''' | *'''Endziel festlegen''' | ||
*'''Raum Kartographieren''' | *'''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] | :[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''' | *'''Erstellen eigener Python Skripte''' | ||
:Vorhandene Skripte verstehen | |||
:ROS Publisher & Subscriber verstehen | |||
:Einbauen der gewollten Funktionen | |||
*'''Austesten der Skripte''' | *'''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. |
Version vom 11. September 2024, 16:29 Uhr
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
- Einarbeitung in den JetRacer
- Ansteuerung des Antriebs und der Lenkung
- Einlesen der Sensoren
- Fokus auf eines der Schwerpunktgebiete
- SLAM LiDAR Mapping
- Bahnplanung, Autonome Navigation, dynamische Hindernisbehandlung
- Systemtest
- Optimierung
- Dokumentation der Vorgehensweise im HSHL-Wiki
Durchführung
- Zeitplanung
- Ursprüngliche Planung
- Ü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
- Verschiedene manuelle Steuerungsmodi
- Steuerung per Tastatur
- Steuerung per Joystick
- Automatisches Fahren
- Anfahren eines einzelnen Zieles
- Abfahren mehrerer Punkte
- Endziel festlegen
- Raum Kartographieren
- 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
- Wissenschaftliche Vorgehensweise (Projektplan, etc.), nützlicher Artikel: Gantt Diagramm erstellen
- Wöchentlicher Fortschrittsberichte (informativ), aktualisieren Sie das Besprechungsprotokoll - Live Gespräch mit Prof. Schneider
- Projektvorstellung im Wiki
- Tägliche Sicherung der Arbeitsergebnisse in SVN
- Tägliche Dokumentation der geleisteten Arbeitsstunden
- Studentische Arbeiten bei Prof. Schneider
- Anforderungen an eine wissenschaftlich Arbeit
- Abgabe der Schriftlichen Ausarbeitung als Wiki-Artikel (ggf. Artikel als PDF drucken).
Repositorium
- Sciebo-Projektordner: \JetRacer_ROS_AI_Robot\
- Sciebo-Abgabeordner: \Jonas_Beisler\Projektarbeit\
Getting started
Lesen Sie zum Einstieg diese Artikel
- Hauptartikel: JetRacer_ROS_AI_Roboter
- Waveshare: JetRacer ROS AI Kit
- Gantt Diagramm erstellen
- Tipps zum Schreiben eines Wiki-Artikels
- PAP Designer Einstieg
- Einführung in SVN
- Einrichtung der ScienceBox (Sciebo)
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