Autonome Spurführung mit einem JetRacer ROS AI Robot
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