Simulation der IR-Einparksensorik: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 37: Zeile 37:


'''- Inputsgrößen'''
'''- Inputsgrößen'''
<syntaxhighlight lang="matlab" style="border: none; background-color: #EFF1C1; font-size:larger">
<syntaxhighlight lang="matlab" style="border: none; background-color: #EFF1C1; font-size:larger">
x, y, psi, ObjektListe, stIRPosition ,Schalter
x, y, psi, ObjektListe, stIRPosition ,Schalter
Zeile 42: Zeile 43:


*'''Ermittlung der Abstände zu den Hindernissen als Ausgang:'''
*'''Ermittlung der Abstände zu den Hindernissen als Ausgang:'''


<syntaxhighlight lang="matlab" style="border: none; background-color: #EFF1C1; font-size:larger">  
<syntaxhighlight lang="matlab" style="border: none; background-color: #EFF1C1; font-size:larger">  

Version vom 18. Juni 2019, 07:05 Uhr

→ zurück zur Übersicht: SDE-Team_2019/20


Autor: Yanick Christian Tchenko
Betreuer: Prof. Schneider

Aufgabenstellung zum zweiten Meilenstein

  1. Übertragen der Testsoftware aus dem Branch in den Trunk (erledigt)
  2. Vereinfachung von Abstandssensorik.m. Für einen beliebigen IR-Sensor soll eine Funktion erstellt werden. Diese Funktion wird für alle 4 Sensoren aufgerufen. (erledigt)
  3. Code Review durch Prof. Schneider (erledigt)
  4. Test der neuen Unterfunktion (erledigt)
  5. Zeitmessung: Darstellung der Verbesserung, Optimierung durch mex-Compiler (offen)
  6. Anschauliche Dokumentation der Funktion von Abstandssensorik.m I(in Arbeit)
  7. Nach erfolgreichem Test: Übertragung in Offline-Simulation (offen)

Allgemeine Einleitung

Zur richtigen Durchführung des Einparkmanövers müssen die Sensorpositionen sowie die Aufnahmeberechnungen richtig durchgeführt werden. Für die verschiedenen Berechnungen und Positionsfestlegungen wird im Rahmen dieses Praktikums die Funktion abstandsensorik.m angewendet.

Beschreibung der ursprünglichen Funktion Abstandssensorik.m

Abbildung 1: Programmablauf bei ursprünglicher Abstandssensorik.m

<br\>

Die ursprüngliche Funktion zur Abstand-Sensorik lässt sich wie auf der rechts stehenden Abbildung strukturell darstellen. Sie umfasst hauptsächlich 4 Blöcke:

  • Funktionsinitialisierung:

- Globalvariablen

global Geraden Geraden2 Ergebnis  % Debug
global x_fahrzeug y_fahrzeug  % Debug
global PAR_CAR_Fahrzeugbreite_f64
global PAR_CAR_Fahrzeuglaenge_f64
breite = PAR_CAR_Fahrzeugbreite_f64;
laenge = PAR_CAR_Fahrzeuglaenge_f64;

- Inputsgrößen

x, y, psi, ObjektListe, stIRPosition ,Schalter
  • Ermittlung der Abstände zu den Hindernissen als Ausgang:
 
if Schalter == 1 % PAR_SenAbs_Schalter_EIN_bit Rechnung durchführen, sonst nicht
    
    % Fahrt im unteren Bereich
    Winkeloffset = 180;

  
%% Sensorpositionen (in m)
    
    % IR_Sensor 	x-Position 	y-Position
    % rechts vorne 	- 7 cm 	-12 cm
    % rechts hinten -37 cm 	-12 cm
    % hinten links 	-42 cm 	 10 cm
    % hinten rechts -42 cm 	-10 cm
    
    % Beifahrerseite
    PAR_IR_xVR_x = stIRPosition(1,1);               % Pos x - IR rechts vorne  im Fahrzeug K-System
    PAR_IR_xVR_y = stIRPosition(1,2);               % Pos y
    PAR_IR_xHR_x = stIRPosition(2,1);               % Pos x - IR rechts hinten im Fahrzeug K-System
    PAR_IR_xHR_y = stIRPosition(2,2);               % Pos y
    
    % Hecksensoren
    PAR_IR_yHR_x = stIRPosition(3,1);               % Pos x - IR hinter rechts im Fahrzeug K-System
    PAR_IR_yHR_y = stIRPosition(3,2);               % Pos y
    PAR_IR_yHL_x = stIRPosition(4,1);               % Pos x - IR hinter links im Fahrzeug K-System
    PAR_IR_yHL_y = stIRPosition(4,2);               % Pos y
    
    ESM_psi_f64 = psi;                  % Fahrzeugwinkel in rad
    ESM_x_I_f64 = x;                    % Fahrzeugposition x
    ESM_y_I_f64 = y;                    % Fahrzeugposition y 
    ...
    ...
    ...

%% Rückmelden der Werte
    
    % Seitliche Sensoren
    SenAbs_xVR_K_f64 = min(alle_Abstaende_VR);
    SenAbs_xHR_K_f64 = min(alle_Abstaende_HR);
    
    % Hecksensoren
    SenAbs_yHR_K_f64 = min(alle_Abstaende_yHR);
    SenAbs_yHL_K_f64 = min(alle_Abstaende_yHL);

else
    SenAbs_xVR_K_f64 = 0;
    SenAbs_xHR_K_f64 = 0;
    SenAbs_yHR_K_f64 = 0;
    SenAbs_yHL_K_f64 = 0;
end
  • Bearbeitung der Objektpositionen in der Simulation:
  • Bearbeitung der Sensorposition in der Simulation:
  • Bearbeitung der Graden der Sensoren, welche die Sensorstrahlungen materialisieren:
  • Berechnungen der Schnittpunkte zwischen Sensorstrahlungen und Hindernissen:

Implementierte Vereinfachungen

Zur Übersichtlichkeit des Programmcodes wurden Vereinfachungen hauptsächlich an drei Stellen durchgeführt. Man kam demnach auf die drei unteren Funktionen, deren Funktionsweisen und Aufrufsorte im Gesamtprogramm im Folgenden detailliert beschrieben stehen.

Funktion NVektoren.m

Funktion Objekt_Geraden.m

Funktion KoordinatenNaechsten_Schnittpunkts.m

Verbesserung der Funktion

Optimierung der neuen Funktion durch die mex-Funktion

Gegenüberstellung Ausführungszeiten der neuen und alten Funktionen

Zusammenfassung

Testdurchführung: Ansatz mit der entwickelten Test-GUI

Integration in die Offline-Simulation

Literatur

→ zurück zur Übersicht: SDE-Team_2019/20