AEP - Einparkalgorithmus

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Martin Theine und Patrick Schumann

Einleitung

Das Team „AEP - Einparkalgorithmus“ beschäftigt sich mit dem Programmablauf und der Implementierung des autonomen Einparkvorganges unter Verwendung der vorhandenen Einparksensorik. Dazu zählt zum einen das Detektieren einer Parklücke, welche eine außreichende Länge für das vorhandene Carolo-Cup Fahrzeug aufweist und das Einparkmanöver selbst. Dazu wurde auf Basis vorliegender Fachliteratur ein Konzept erarbeitet, welches nachfolgend erläutert wird.

Anforderungen

Durch das Lastenheft des Projekts "Autonomes Fahrzeug" werden nachfolgende Anforderungen an das Autonome Einparken und somit an den umgesetzten Einparkalgorithmus gestellt:

Abb. 1: REQ - Paralleles Einparken
Abb. 2: REQ - Start des Einparkmanövers
Abb. 3: REQ - Durchführen des Einparkmanövers
Abb. 4: REQ - Erfolgreiches Einparkmanöver

Pflichten / Ziele

Aus den genannten Anforderungen (Abb. 1 - Abb. 4) lassen sich nachfolgende Pflichten ableiten.

Abb. 5: Pflichten Team AEP - Einparkalgorithmus SoSe2020

Berechnungen

Abmaße Carolo-Cup Fahrzeug

Beschreibung Matlab / Simulink Variablen Wert
Fahrzeugbreite ... 0,200m
Fahrzeuglänge ... 0,430m
Radstand ... 0,265m
Max. Lenkwinkel ... 23°
Abstand Hinterachse - Front ... 0,330m
Abstand Hinterachse - Heck ... 0,100m
Wendekreisradius ... siehe Berechnung
Benötigte Parklückenlänge ... siehe Berechnung
Gemessene Parklückenlänge ... siehe Berechnung
Umlenkwinkel ... siehe Berechnung
Endabstand Heck - Hindernis ... siehe Berechnung

Wendekreisradius

Benötigte Parklücke

Umlenkwinkel

Endabstand Heck - Hindernis

Konzept

Abb. 6: Konzept AEP - Einparkalgorithmus

Dieses Kapitel befasst sich mit dem Konzept des AEP - Eonparkalgorithmus. Das Konzept beruht auf zwei verschiedenen Ansätzen zum autonomen Einparken aus der Literatur und stellt eine kombination dieser dar.

Das Carlolo-Cup-Fahrzeug fährt zunächst parallel zu den Parkbuchten. Wurde eine passende Parklücke identifiziert, fährt das CCF so lange weiter, bis sich das Fahrzeugheck auf Höhe Heck des parkenden Autos befindet, hinter welchem eingeparkt werden soll (siehe Abb. 6 - 1). Dadurch wird beim Zurücksetzen so eng wie möglich um dieses vordere Hindernis herumgefahren, ohne es zu berühren. Daraufhin soll das Fahrzeug rückwärts eine Rechtskurve fahren, bis dieses im zuvor berechneten Umschlagwinkel zur Fahrbahn steht (siehe Abb. 6 - 2). Anschließend behält das Fahrzeug diesen Winkel zur Fahrbahn bei und fährt eine definierte Strecke gerade rückwärts, um so “tief” wie möglich in die Parklücke hineinzufahren (siehe Abb. 6 - 3). Nun soll das Fahrzeug rückwärts eine Linkskurve fahren, bis es mit der hinteren linken Ecke auf einen definierten Abstand zum dahinterliegenden Auto herangefahren ist (siehe Abb. 6 - 4). Abschließend werden zwei Korrekturzüge gefahren. Zunächst absolviert das Fahrzeug eine Rechtskurve vorwärts, bis es parallel zur Fahrbahn steht (siehe Abb. 6 - 5). Zuletzt fährt es gerade rückwärts, bis es mittig zwischen beiden parkenden Autos steht (siehe Abb. 6 - 6).

Struktur Matlab / Simulink

Abb. 7: Programmablaufplan - Einparkalgorithmus

Der Programmablauf des Einparkvorgangs (siehe Abb. 7) teilt sich, analog zum oben beschriebenen Konzept, in sechs Sequenzen auf:

Sequenz 1

Wurde eine passende Parklücke gefunden, so wird der Blinker rechts gesetzt und das Fahrzeug fährt mit „Vermessgeschwindigkeit“ weiter vorwärts. Erfasst der seitliche hintere Infrarotsensor das Heck des vorderen Hindernisses, so befindet sich die Hinterachse des Fahrzeugs genau auf dieser Höhe.

Das Fahrzeug fährt mit gleichbleibender Geschwindigkeit vorwärts und erfasst ab diesem Zeitpunkt die gefahrene Strecke. Wurde die festgelegte „Korrekturstrecke_Vorn“ zurückgelegt, so beginnt die nächste Sequenz.

Sequenz 2

Die Lenkung des Fahrzeugs wird maximal nach rechts eingeschlagen und die Geschwindigkeit auf die „Einparkgeschwindigkeit“ gesetzt. Das Fahrzeug fährt nun so lange rückwärts eine Rechtskurve, bis der gemessene Gierwinkel dem zuvor berechneten Umschlagwinkel entspricht.

Sequenz 3

Die Lenkung des Fahrzeugs wird in Mittelstellung gebracht und ab diesem Zeitpunkt wird erneut die zurückgelegte Strecke erfasst. Das Fahrzeug fährt im zuvor erreichten Winkel zur Fahrbahn gerade rückwärts, bis die festgelegte „Korrekturstrecke_Rueck“ zurückgelegt wurde.

Sequenz 4

Die Lenkung wird maximal nach links eingeschlagen und das Fahrzeug fährt mit gleichbleibender Geschwindigkeit rückwärts eine Linkskurve, bis der linke hintere Infrarotsensor einen festgelegten Mindestabstand zum hinteren Hindernis misst.

Sequenz 5

Die Geschwindigkeit wird auf die zuvor gefahrene „Vermessgeschwindigkeit“ gesetzt und die Lenkung maximal nach rechts eingeschlagen. Das Fahrzeug fährt so lange einen Korrekturzug vorwärts, bis der gemessene Gierwinkel dem festgelegten „Schlussparkwinkel“ entspricht. Das Fahrzeug ist somit parallel zur Fahrbahn ausgerichtet.

Sequenz 6

Die Lenkung wird in Mittelstellung gebracht und die Geschwindigkeit wieder auf die „Einparkgeschwindigkeit“ gesetzt. Das Fahrzeug fährt so lange einen Korrekturzug gerade Rückwärts, bis die hinteren Infrarotsensoren den vorgegebnen Abstand zum hinteren Hindernis messen. Ist dieser Zustand erreicht, so steht das Fahrzeug in gleichem Abstand zum hinteren und vorderen Hindernis, also mittig in der Parklücke. Unser Hauptprogramm ist aufgeteilt in 3 Unterprogramme die gleichzeitig ausgeführt werden. Diese Unterprogramme sind die Längsregelung, die Querregelung und die Ausführung der Kamera.

Unit- und Integrationstest

Abb. 8: Simulinkbibliothek - Autonomes EInparken

Mithilf der Unit- und Integrationstest sollen die Funktion des AEP - Einparkalgorithmus getestet und überpfrüft werden. Nach Erfolgreiche bestehen der Tests kann so gewährleistet werden, dass die Anforderungen aus dem Lastenheft erfüllt sind. Nachfolgend wird das Vorgehen beim Unit- und Intergartionstest Stichpunktartig erklärt. Eine Vorlage und die genau Beschreibung zur Durchführung der Test ist im SVN hinterlegt.

Vorlage im SVN: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Teams/AEP/Dokumentation


Vorgehen Unit- und Integrationstest

  1. Öffnen der Datei „AEP_Unittest_und_Integrationstest.docx“ in Word
  2. Vorlage zu den Unittests (siehe „AEP_Vorlage_Unittest_und_Integrationstest.docx“ Kapitel 2) ausfüllen. Wichtig: Anmerkungen zur Simulation beachten!
  3. Öffnen der Datei „start.m“ in Matlab R2019b
  4. Folgende Parameter setzten
    • Auswahl des Simulationstyps: 1 (Simulation offline)
    • Laden verschiedener Fahrbahnformen: 0 (Rundkurs ohne Kreuzung)
    • Auswahl des Simulationsmodus: 2 oder 3 (je nach durchzuführenden Unittest)
    • Im Fall AEP: Positionswahl der Objekte: 0…12 (je nach durchzuführenden Unittest)
  1. Unter Registerkarte „Editor“ in Matlab auf „RUN“ klicken, um Matlab-Skript auszuführen --> Simulink-Modell öffnet sich
  2. Erforderliche Variablen (siehe „AEP_Vorlage_Unittest_und_Integrationstest.docx“ Kapitel 2) im Watch-Window anzeigen und zur Auswertung der Test nutzen
  3. Im Subsystem „AEP-Autonomes Einparken“ mit klicken von „Run“ unter der Registerkarte „Simulation“ die Simulation starten
  4. Testergebnisse in „AEP_Vorlage_Unittest_und_Integrationstest.docx“ Kapitel 2 dokumentieren
  5. Gegebenenfalls Screenshots der Simulation mit Nachfolgender Dateibezeichnung in SVN hinterlegen

Übersicht der Testfälle

Unittest-ID: Beschreibung:
001 Test der Funktionen Streckenerfassung und Parklückenvermessung
002 Einzelnes Hindernis am Anfang der Parkbucht
003 Kein Hindernis in der Parkbucht
004 Keine ausreichend große Parklücke
005 Ein einzelnes Hindernis im Abstand von < 0,95m vom Anfang der Parkbucht
006 Größte Parklücke an beliebiger Position und prozentuale Erhöhung der Parklückenlänge
007 Größte Parklücke an beliebiger Position, Parklückenlänge minimal und prozentuale Erhöhung der Hindernisbreite

Zusammenfassung

Ausblick

Offene Punkte

Literaturverzeichnis



→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren
→ zum Artikel Autonomes Einparken: AEP - Autonomes Einparken
→ zum Artikel Einparksensorik: AEP - Einparksensorik