BSF - Längsregelung und Querregelung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(126 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 22: Zeile 22:
[[Datei:Prinzip_der_PWM_Ansteuerung.PNG|400px |thumb| none |Abb 1: Prinzip der PWM-Ansteuerung (Quelle: https://de.wikipedia.org/wiki/Tastgrad)]]
[[Datei:Prinzip_der_PWM_Ansteuerung.PNG|400px |thumb| none |Abb 1: Prinzip der PWM-Ansteuerung (Quelle: https://de.wikipedia.org/wiki/Tastgrad)]]
<br>
<br>
Das Bild oben ist nur ein Referenzbild, die tatsächlichen Daten sind in der folgenden Tabelle dargestellt.
<br>
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Periodendauer
! style="font-weight: bold;" | Impulsdauer
! style="font-weight: bold;" | Zustand
! style="font-weight: bold;" | Beschreibung
|-
| 1
| 20 ms
| 1.0 - 1.5 ms
| Lenkwinkel ist zwischen - 24° und 0°.
| Lenken nach Links
|-
| 2
| 20 ms
| 1.5 ms
| Lenkwinkel = 0°
| Lenkung in Nullstellung
|-
| 3
| 20 ms
| 1.5 - 2.0 ms
| Lenkwinkel ist zwischen 0° und 24°.
| Lenken nach Rechts
|-
| 4
| 20 ms
| 1.0 - 1.75 ms
| Drehrichtung nach Rechts
| Vorwärts
|-
| 5
| 20 ms
| 1.75 ms
| Drehrichtung ist null
| Stillstand
|-
| 6
| 20 ms
| 1.75 - 2.0 ms
| Drehrichtung nach Links
| Rückwärts
|}
<br>
Ein weiter wichtiger Parameter ist der Tastgrad D. Er gibt das Verhältnis zwischen der Pulsdauer und der Periodendauer an. In Abbildung 2 ist die Berechnungsformel zusehen. Multipliziert man das Ergebnis mit dem Faktor 100, so erhält man den prozentuellen Anteil der Pulsdauer im Verhältnis zu der Periodendauer. Dieser Parameter ist im weiteren Verlauf interessant, da das Programm Control Desk von dSpace, das PWM - Signal in den Tastgrad D umwandelt und anzeigt.
Ein weiter wichtiger Parameter ist der Tastgrad D. Er gibt das Verhältnis zwischen der Pulsdauer und der Periodendauer an. In Abbildung 2 ist die Berechnungsformel zusehen. Multipliziert man das Ergebnis mit dem Faktor 100, so erhält man den prozentuellen Anteil der Pulsdauer im Verhältnis zu der Periodendauer. Dieser Parameter ist im weiteren Verlauf interessant, da das Programm Control Desk von dSpace, das PWM - Signal in den Tastgrad D umwandelt und anzeigt.
<br><br>
<br><br>
Zeile 28: Zeile 75:


===Darstellung des Testaufbaues===
===Darstellung des Testaufbaues===
 
<br><br>


[[Datei:Skizze_ALF.PNG|600px |thumb| none |Abb : Testaufbauschaubild ]]
[[Datei:Skizze_ALF.PNG|600px |thumb| none |Abb : Testaufbauschaubild ]]
Zeile 128: Zeile 175:
| Das Rad des Fahrzeugs dreht sich im Bereich einer Pulsdauer von  1,75 ms und 2,0 ms nach links (rückwärts).[https://wiki.hshl.de/wiki/index.php/Datei:Antrieb_PWM_Signal03.PNG Abb 10]
| Das Rad des Fahrzeugs dreht sich im Bereich einer Pulsdauer von  1,75 ms und 2,0 ms nach links (rückwärts).[https://wiki.hshl.de/wiki/index.php/Datei:Antrieb_PWM_Signal03.PNG Abb 10]
| 1,75 - 2,0 ms
| 1,75 - 2,0 ms
| Drehrichtung = Rechts
| Drehrichtung = Links
| Drehrichtung = Rechts
| Drehrichtung = Links
| Drehrichtung = Rechts
| Drehrichtung = Links
| i.O.
| i.O.
| Alessio Cebeci
| Alessio Cebeci
Zeile 410: Zeile 457:
Folgende Maßnahmen wurden ergriffen.
Folgende Maßnahmen wurden ergriffen.
<br>
<br>
* Lenkwinkel kalibreren
* Lenkwinkel kalibrieren
* Verbindung festziehen
* Verbindung festziehen
<br>
<br>
Zeile 420: Zeile 467:
=== Überprüfung der Längsregelung ===
=== Überprüfung der Längsregelung ===


==== Testspezifikation ====
In diesem Abschnitt ist die Überprüfung der Längsregelung dokumentiert. Als wurde die Regelung im Offline-Modell auf Funktion überprüft. Anschließend sollte die Überprüfung im Online-Modell folgen. Für die Durchführung der Tests, wurden Testspezifikationen erstellt, die im folgenden dargestellt sind.
 
==== Im Offline Modell ====
<br>
[[Datei:Signalverlauf_Bestimmung_Soll_Geschwindigkeit.PNG|600px |thumb| none | Signalverlauf des Moduls Bestimmung der Soll-Geschwindigkeit ]]
 
[[Datei:Signalverlauf_Laengsregler.PNG|600px |thumb| none | Signalverlauf des Moduls Längsregelung]]
<br>
Weitere Information zu den Signalverläufen können unter dem folgenden Artikel gefunden werden: [https://wiki.hshl.de/wiki/index.php/BSF_-_L%C3%A4ngsregelung Längsregelung]
<br><br>
<br>
Bestimmung Soll-Geschwindigkeit <br>


{| class="mw-datatable"
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge(<code>SenKam_StoplinieAbst_f64</code>, <code>SenKam_StoplinieFlag_bit</code>, <code> SenKam_SpurA_f64</code>)
! style="font-weight: bold;" | Eingänge(<code> SenKam_SpurA_f64</code>)
! style="font-weight: bold;" | Ausgang(<code>BsfVx_VxSoll_f64</code>)  
! style="font-weight: bold;" | Ausgang(<code>BsfVx_VxSoll_f64</code>)  
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Bewertung
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 1
| 1
| Das Fahrzeug fährt mit maximaler Geschwindigkeit, wenn keine Kurve erkannt wurde.
| Die Sollgeschwindigkeit soll maximal (0,75 m/s) sein, wenn die Krümmung der Kurve null ergibt.
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 = 0
| SenKam_SpurA_f64 = 0
| BsfVx_VxSoll_f64 = 0.75
| BsfVx_VxSoll_f64 = 0.75
| Vollgas
| Vollgas
| Vollgas
| i.O.
| Alessio Cebeci
| 03.12.2020
|-
| 2
| Das Fahrzeug fährt bei einem positiven Krümmungswert, eine Linkskurve mit angepasster reduzierter Geschwindigkeit.
| SenKam_SpurA_f64 > 0
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| i.O.
| Alessio Cebeci
| 03.12.2020
|-
| 3
| Das Fahrzeug fährt bei einem negativ Krümmungswert, eine Rechskurve mit angepasster reduzierter Geschwindigkeit.
| SenKam_SpurA_f64 < 0
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| i.O.
| Alessio Cebeci
| 03.12.2020
|}
<br><br>
Längsregler <br>
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge(<code>Famo_VxSoll_f64</code>, <code>SenVx_vx_K_f64</code>)
! style="font-weight: bold;" | Ausgang(<code>BsfLaengs_RegelDiff_f64</code>, <code>BsfLaengs_Gaspedal_Soll_f64</code>)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Bewertung
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Wenn die Differenz der Ist- und Soll-Geschwindigkeit gleich null ist, dann soll das Gaspedal den maximalen Wert annehmen. [Göbel 17.03.2021: Macht keinen Sinn! Warum Vollgas, wenn ist = soll?]
| Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75
| BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55
| Vollgas
| Vollgas
| i.O.
| Alessio Cebeci
| 03.12.2020
|-
| 2
| Wenn die Differenz der Ist- und Soll-Geschwindigkeit ungleich null ist, dann soll das Gaspedal den mit angepasster Stellung die Geschwindigkeit reduzieren.
| 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| i.O.
| Alessio Cebeci
| 03.12.2020
|}
<br><br><br>
==== Im Online Modell ====
Bestimmung Soll-Geschwindigkeit <br>
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge(<code> SenKam_SpurA_f64</code>)
! style="font-weight: bold;" | Ausgang(<code>BsfVx_VxSoll_f64</code>)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Die Sollgeschwindigkeit soll maximal (0,75 m/s) sein, wenn die Krümmung der Kurve null ergibt.
| SenKam_SpurA_f64 = 0
| BsfVx_VxSoll_f64 = 0.75
| BsfVx_VxSoll_f64 = 0.75
| Vollgas
|
|  
|  
|  
|  
|-
|-
| 2
| 2
| Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit.
| Das Fahrzeug fährt bei einem positiven Krümmungswert, eine Linkskurve mit angepasster reduzierter Geschwindigkeit.
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 > 0
| SenKam_SpurA_f64 > 0
| 0 < BsfVx_VxSoll_f64 < 0.75
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| 0 < BsfVx_VxSoll_f64 < 0.75
|  
|  
|  
|  
|  
|-
|-
| 3
| 3
| Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit.
| Das Fahrzeug fährt bei einem negativ Krümmungswert, eine Rechskurve mit angepasster reduzierter Geschwindigkeit.
| SenKam_StoplinieAbst_f64 = 0, SenKam_StoplinieFlag_bit = 0, SenKam_SpurA_f64 < 0
| SenKam_SpurA_f64 < 0
| 0 < BsfVx_VxSoll_f64 < 0.75
| 0 < BsfVx_VxSoll_f64 < 0.75
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| 0 < BsfVx_VxSoll_f64 < 0.75
|  
|  
|  
|  
|  
Zeile 461: Zeile 601:


<br><br>
<br><br>
Längsregler <br>


{| class="mw-datatable"
{| class="mw-datatable"
Zeile 473: Zeile 614:
|-
|-
| 1
| 1
| Das Fahrzeug fährt mit maximaler Geschwindigkeit wenn keine Kurve erkannt wurde.
| Wenn die Differenz der Ist- und Soll-Geschwindigkeit gleich null ist, dann soll das Gaspedal den maximalen Wert annehmen.
| Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75
| Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75
| BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55
| BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55
| Vollgas
| Vollgas
| BsfLaengs_Gaspedal_Soll_f64 = 0.55
|  
|  
|  
|  
|  
|-
|-
| 2
| 2
| Das Fahrzeug fährt bei einer erkannten Linkskurve, mit angepasster reduzierter Geschwindigkeit.
| Wenn die Differenz der Ist- und Soll-Geschwindigkeit ungleich null ist, dann soll das Gaspedal den mit angepasster Stellung die Geschwindigkeit reduzieren.
| 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75
| 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
| Bremsen auf angepasste Geschwindigkeit
| Bremsen auf angepasste Geschwindigkeit
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
|  
|  
|
|-
| 3
| Das Fahrzeug fährt bei einer erkannten Rechtskurve, mit angepasster reduzierter Geschwindigkeit.
| 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
| Bremsen auf angepasste Geschwindigkeit
| BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55
|  
|  
|  
|  
|}
|}
<br><br><br>
<br><br><br>


=== Überprüfung der Querregelung ===
=== Überprüfung der Querregelung ===
Der Inhalt der Querregelung wird in diesem Abschnitt aufgezeichnet. Es wird zunächst überprüft, ob die Regeln im Offline-Modell funktionieren.  Dann sollte das Online-Modell überprüft werden. Zu Testzwecken werden Testspezifikationen wie unten gezeigt erstellt.
<br>
==== Im Offline Model ====
Die zwei aufeinanderfolgenden steilen Spitzen in "SenKam_SpurA-f64" vom Bild "Sollvorgabe ohne Hindernis" sind auf Straßenerkennungsprobleme an Kreuzungen zurückzuführen.
<br>
Die beiden starken Störungen in der folgenden Abbildungen sind die Straßenerkennungsprobleme von Fahrzeugen an Kreuzungen. In Querregler_PID ohne Hindernis, wegen "PAR_BsfQuer_PAnteil_f64 = 5; PAR_BsfQuer_IAnteil_f64 = 0; PAR_BsfQuer_DAnteil_f64 = 0;" sind die erste und die vierte Zeile (PBSFQuer_RegerlP und BSFQuer_Stellgroesse) gleich und fallen zusammen.Die anderen beiden Zeilen sind beide Null.
<br>
{| class="mw-datatable"
! style="font-weight: bold;" | Ohne Hindernis
! style="font-weight: bold;" | Mit Hindernis
|-
|[[Datei:Fahrspur ohne Hindernis.PNG|600px |thumb| none | Fahrspur ohne Hindernis]]
|[[Datei:Fahrspur mit Hindernis.PNG|600px |thumb| none | Fahrspur mit Hindernis]]
|-
|[[Datei:Sollvorgabe ohne Hindernis001.PNG|600px |thumb| none | Sollvorgabe ohne Hindernis]]
|[[Datei:Sollvorgabe mit Hindernis002.PNG|600px |thumb| none | Sollvorgabe mit Hindernis]]
|-
|[[Datei:Querregler_PID001.PNG|600px |thumb| none |]]
|[[Datei:Querregler_PID002.PNG|600px |thumb| none |]]
|-
|[[Datei:Querregler_PID003.PNG|600px |thumb| none | Querregler_PID ohne Hindernis]]
|[[Datei:Querregler_PID004.PNG|600px |thumb| none | Querregler_PID mit Hindernis]]
|}
<br>
Weitere Information zu den Signalverläufen können unter dem folgenden Artikel gefunden werden: [https://wiki.hshl.de/wiki/index.php/BSF-Querreglung#BSFQuer_Querfuehrung BSF-Querreglung]
<br><br>
Das Fahrzeug fährt auf dieser Fahrspur ohne Hindernisse.
Das Fahrzeug fährt auf dieser Fahrspur ohne Hindernisse.
<br>
<br>
Zeile 508: Zeile 669:
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge(<code> SenKam_SpurA_f64</code>,<code> SenKam_SpurB_f64</code>,<code> SenKam_SpurC_f64</code>,<code> Regelentfernung</code>)
! style="font-weight: bold;" | Eingänge(<code> SenKam_SpurA_f64</code>)
! style="font-weight: bold;" | Ausgang(<code> BSFQuer_Querablage_Soll_o_H_f64</code>)
! style="font-weight: bold;" | Ausgang(<code> BSFQuer_Querablage_Soll_o_H_f64</code>)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Bewertung
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
! style="font-weight: bold;" | Datum
|-
|-
| 1
| 1
| Wenn keine Kurve erkannt wird, fährt das Fahrzeug normale.
| Wenn die Krümmung der Kurve null ist, dann soll die Lenkwinkel null sein.
| SenKam_SpurA_f64 = 0
| SenKam_SpurA_f64 = 0
| BSFQuer_Querablage_Soll_o_H_f64 = 0
| BSFQuer_Querablage_Soll_o_H_f64 = 0
| nullstellung
| nullstellung
| i.O.
| Daoyin Wang
| 03.12.2020
|-
| 2
| Wenn die Krümmung der Kurve positiv ist, dann soll die Lenkwinkel in passende positive Grad sein.
| SenKam_SpurA_f64 > 0
| 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13
| nach links Lenken
| nach links Lenken
| i.O.
| Daoyin Wang
| 03.12.2020
|-
| 3
| Wenn die Krümmung der Kurve negativ ist, dann soll die Lenkwinkel in passende negative Grad sein.
| SenKam_SpurA_f64 < 0
| -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0
| nach Rechts lenken
| nach Rechts lenken
| i.O.
| Daoyin Wang
| 03.12.2020
|}
<br>
Das Fahrzeug fährt auf dieser Fahrspur mit statische Hindernisse.
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingäng(Abstand, Strecke, Streckendifferenz)
! style="font-weight: bold;" | Ausgang(HinderniBit, Offset)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Bewertung
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Wenn das Fahrzeug keine Hindernisse erkennt, fährt es normal.
| Abstand > 1.2
| HindernisBit = 0, Offset = 0
| normale fahren
| normale fahren
| normale fahren
| i.O.
| Daoyin Wang
| 03.12.2020
|-
| 2
| Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Erstens, wenn die beiden eine ausreichende Abstand erreichen, vermeidet das Fahrzeug Hindernisse : nach links abbiegen.
| 0.1 < Abstand < 1.2 , Streckendifferenz = Strecke
| HindernisBit = 1, Offset = 0.2
| nach links abbiegen
| nach links abbiegen
| i.O.
| Daoyin Wang
| 03.12.2020
|-
| 3
| Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Dann, Wenn das Fahrzeug eine ausreichende Strecke zurücklegt, kehrt das Fahrzeug zur ursprünglichen Fahrspur zurück: nach rechts abbiegen.
| (Strecke - Streckendifferenz) >= 1.4
| HindernisBit = 0, Offset = 0
| etwa fahren und dann nach Rechts abbiegen
| etwa fahren und dann nach Rechts abbiegen
| i.O.
| Daoyin Wang
| 03.12.2020
|}
<br>
==== Im Online Modell ====
Das Fahrzeug fährt auf dieser Fahrspur ohne Hindernisse.
<br>
{| class="mw-datatable"
! style="font-weight: bold;" | ID
! style="font-weight: bold;" | Testfallbeschreibung
! style="font-weight: bold;" | Eingänge(<code> SenKam_SpurA_f64</code>)
! style="font-weight: bold;" | Ausgang(<code> BSFQuer_Querablage_Soll_o_H_f64</code>)
! style="font-weight: bold;" | Erwartetes Ergebnis
! style="font-weight: bold;" | Testergebnis
! style="font-weight: bold;" | Testperson
! style="font-weight: bold;" | Datum
|-
| 1
| Wenn die Krümmung der Kurve null ist, dann soll die Lenkwinkel null sein.
| SenKam_SpurA_f64 = 0
| BSFQuer_Querablage_Soll_o_H_f64 = 0
| BSFQuer_Querablage_Soll_o_H_f64 = 0
|  
| nullstellung
|  
| ---
| ---
| ---
|-
|-
| 2
| 2
| Wenn eine Linkskurve erkannt wird, erhält das Fahrzeug ein Signal, nach links abzubiegen.
| Wenn die Krümmung der Kurve positiv ist, dann soll die Lenkwinkel in passende positive Grad sein.
| SenKam_SpurA_f64 > 0  
| SenKam_SpurA_f64 > 0  
| 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13
| 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13
| nach links abbiegen
| nach links Lenken
| 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13
| ---
|  
| ---
|  
| ---
|-
|-
| 3
| 3
| Wenn eine Rechtskurve erkannt wird, erhält das Fahrzeug ein Signal, nach Rechts abzubiegen.
| Wenn die Krümmung der Kurve negativ ist, dann soll die Lenkwinkel in passende negative Grad sein.
| SenKam_SpurA_f64 < 0
| SenKam_SpurA_f64 < 0
| -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0
| -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0
| nach Rechts abbiegen
| nach Rechts lenken
| -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0
| ---
|  
| ---
|  
| ---
|}
|}


Zeile 561: Zeile 814:
| HindernisBit = 0, Offset = 0
| HindernisBit = 0, Offset = 0
| normale fahren
| normale fahren
| HindernisBit = 0, Offset = 0
| ---
|  
| ---
|  
| ---
|-
|-
| 2
| 2
Zeile 570: Zeile 823:
| HindernisBit = 1, Offset = 0.2
| HindernisBit = 1, Offset = 0.2
| nach links abbiegen
| nach links abbiegen
| HindernisBit = 1, Offset = 0.2
| ---
|  
| ---
|  
| ---
|-
|-
| 3
| 3
Zeile 579: Zeile 832:
| HindernisBit = 0, Offset = 0
| HindernisBit = 0, Offset = 0
| etwa fahren und dann nach Rechts abbiegen
| etwa fahren und dann nach Rechts abbiegen
| HindernisBit = 0, Offset = 0
| ---
|  
| ---
|  
| ---
|}
<br>
 
== Überarbeitung des FAMO-Moduls ==
Diese Optimierung beruht auf einer fortgesetzten Optimierung nach Diskussion mit dem AEP-Team und ist eine Optimierung der Switch-Bedingungen für die Geschwindigkeit. Eine solche Optimierung verbessert die Reaktion des Programms und verbessert auch die Schönheit der Gesamtsymmetrie des Modulprogramms.
<br><br>
Die Situation vor der Optimierung ist, dass die Geschwindigkeit zentral von einem "Switch" Schalter gesteuert wird.  Wenn der Wert von "PAR_Modi_Schalter_Vx_int" gleich 1, 2 or 3 ist, wird die Geschwindigkeit von BSF, AEP or Manuell gesteuert. (Wie in den kleinen roten Kästchen im großen roten Kästchen in der folgenden Abbildung "Famo_Fahrtmodus" vor der Optimierung gezeigt.)
<br><br>
Die optimierte Situation ist, dass die Geschwindigkeit von der zentralen Steuerung durch einen "Switch" Schalter zur schrittweisen Steuerung durch zwei "Switch" Schalter geändert wird. (Wie in den beiden kleinen roten Kästchen im großen roten Kästchen in der folgenden Abbildung "Famo_Fahrtmodus" nach der Optimierung gezeigt.)
<br>
Die erste "Switch" Schaltersteuerung besteht darin, dass wenn der Wert gleich 1 oder 2 ist, die Geschwindigkeit von BSF oder AEP gesteuert wird, wenn der Wert gleich 3 ist, die Geschwindigkeit von Manuell gesteuert wird.  Die zweite "Switch" Schaltersteuerung besteht darin, dass bei einem Wert von 1, 2 die Geschwindigkeit von BSF und AEP gesteuert wird.
<br><br>
Beim Einparken soll erst der Geschwindigkeit vom Modul BSF, sobald eine Parklücke gefunden wurde, dann werden die Geschwindigkeit vom Modul AEP vorgegeben.
<br>
 
{| class="mw-datatable"
! style="font-weight: none;" | Vor der Optimierung
! style="font-weight: none;" | Nach der Optimierung
|-
|[[Datei: Famo_Fahrtmodus_vor.PNG|600px |thumb| none |F-M_Abbildung 1: Famo_Fahrtmodus vor der Optimierung]]
|[[Datei: Famo_Fahrtmodus_nach.PNG|600px |thumb| none |F-M_Abbildung 2: Famo_Fahrtmodus nach der Optimierung]]
|-
|}
 
 
 
 
== Überprüfung der Prototypenplatine ==
Bei der Fehleranalyse des Fehlers Nummer 18 der in der Fehlerverfolgungs-Liste[https://wiki.hshl.de/wiki/index.php/Analyse_und_Fehlersuche_WS20/21] aufgeführt ist, wurde die Prototypenplatine des Carolo Cup Fahrzeugs überprüft. Das Hauptaugenmerk lag hierbei auf die Pinbelegung der Platine und die Durchgangsprüfung der Leiterbahnen. Dazu wurde mittels Multimeter eine Durchgangsmessung vorgenommen und mit einem Schaltplan die Pinbelegung überprüft.
<br><br>
[[Datei:Ueberpruefung_der_Prototypenplatine.png|thumb|none|400px|Überprüfung der Prototypenplatine]]
<br>
Die Prototypenplatine hat bei der Überprüfung keine Fehler oder Mängel aufgewiesen.
 
== Überprüfung des XOR-Gatters ==
 
Bei der Fehleranalyse des Fehlers Nummer 18 der in der Fehlerverfolgungs-Liste[https://wiki.hshl.de/wiki/index.php/Analyse_und_Fehlersuche_WS20/21] aufgeführt ist, wurde unter andrem das XOR-Gatter der Adaptar-Platine überprüft.
Das Gatter hat die Aufgabe, dass wenn einer von drei Hall-Sensoren ein Signal von 5 V sendet, ein 5V Signal am Ausgang ausgegeben wird. Das XOR-Gatter hat die folgende Wahrheitstabele:
<br><br>
{| class="mw-datatable"
! style="font-weight: bold;" | Eingang A
! style="font-weight: bold;" | Eingang B
! style="font-weight: bold;" | Ausgang Q
|-
| 0V
| 0V
| 0V
|-
| 0V
| 5V
| 5V
|-
| 5V
| 0V
| 5V
|-
| 5V
| 5V
| 0V
|}
|}
<br><br>
Das folgende Bild zeigt den Aufbau des Tests. Hierzu wurde das Gatter isoliert auf einem Steckbrett geprüft. Als Spannungsquelle diente ein externes Netzteil. Damit wurde sowohl der Mikrokontroller mit Spannung versorgt, als auch die Eingänge mit Drähten angesteuert. Der Ausgang wurde an ein Multimeter angeschlossen, sodass die Ausgangsspannung ermittelt werden konnte.
<br><br>
[[Datei:Pruefung_des_XOR-Gatter.JPG|thumb|none|400px|Überprüfung des XOR-Gatters]]
<br><br>
Die Überprüfung des XOR-Gatters hat eine einwandfreie Funktion des Gatters ergeben.
<br>


== Zusammenfassung ==
== Zusammenfassung ==
Im Folgenden sollen die Ergebnisse der abgearbeiteten Arbeitspakete zusammengefasst werden.
=== Überprüfung der Hardware ===
Bei der Überprüfung der Hardware wurde der Antrieb, die Lenkung und die Fernbedienung überprüft. Hauptaugenmerk bei der Überprüfung, waren die PWM - Signale die für den Antrieb und die Lenkung zum Ansteuern gebraucht wurden. Bei der Fernbedienung wurden die Signale mittels Betätigung der mechanischen Lenkung und dem Gashebel ausgelöst. Dazu sendetet die Fernbedienung ein Funksignal an einen Empfänger, der die entsprechenden PWM - Signale für Antrieb und Lenkung erzeugt hat. Alle Tests sind ohne Beanstandung erfolgreich abgeschlossen worden.
=== Überprüfung der Regelungen ===
Als nächstes wurde die Längs- und Querregelung überprüft. Hierzu wurden für die Tests der Regelungen Testspezifikationen erstellt. Im Anschluss wurden die Regelungen in einer Offline-Simulation getestet. Bei der Überprüfung sind alle Testfälle erfolgreich abgeschlossen worden. Anschließend sollten die Regelungen im Online-Modell getestet werden. Bei einer Fehlersuche im Online-Modell hat sich herausgestellt, dass die Geschwindigkeitserfassung auf Grund eines Hardwarefehlers nicht richtig ermittelt wird, sodass die Längsregelung nicht getestet werden könnte. Da eine korrekte Regelung der Geschwindigkeit zu diesem Zeitpunkt nicht möglich war, konnte die Querregelung durch eine Fahrt des Fahrzeugs auf der Rundstrecke nicht getestet werden.
=== Wartung und Instandhaltung des mechanischen Antriebs ===
Durch eine Inspizierung des Antriebstrangs des Carolo Cup Fahrzeugs ist aufgefallen, dass die Mechanik deutliche Laufgeräusche aufwies. Daraufhin wurde das Getriebe und die Mechanik auseinandergebaut und entsprechende Stellen geschmiert. Nach dem Zusammenbau, wurde der Antriebsstrang mit dem Motor getestet und die Laufgeräusche des Fahrzeugs waren deutlich leiser.
=== Wartung und Instandhaltung der Lenkung ===
Ein weiterer Punkt der bei einer Inspizierung aufgefallen war ist die mechanische Einstellung der Lenkung am Fahrzeug. Dies bedeutet, dass wenn kein Lenkeingriff an der Fernbedienung erfolgte, die Räder des Fahrzeugs nicht auf Nullstellung (parallel zur Fahrtrichtung) standen. Daraufhin wurde sowohl die Mechanik der Lenkung neu eingestellt, als auch mit einem Trimmrad an der Fernbedienung, die Nullstellung neu kalibriert. Dies führt zu dem gewünschten Ergebnis.
=== Analyse und Anpassung des Famo-Moduls ===
In dem Famo-Modul ist aufgefallen, dass die Auswahl der Soll-Vorgabe der Geschwindigkeit zur Startzeit des Programms festgelegt wird und im Verlauf nicht mehr geändert werden kann. Um die Möglichkeit zu bieten, diese Vorgabe zur Laufzeit zu ändern, wurde das Modul im Teil um designet, sodass die Vorgabe über einen Parameter auf dem CCF_Bus gesteuert werden kann.


== Literaturverzeichnis ==
== Literaturverzeichnis ==
=== Link zum Quelltext in WiKi ===
*[https://wiki.hshl.de/wiki/index.php/BSF_-_Bahn-_und_Spurf%C3%BChrung BSF Bahn- und Spurführung]
Bei Längsreglung
<br>
*[https://wiki.hshl.de/wiki/index.php/BSF_-_Längsregelung BSF-Längsregelung]
*[https://wiki.hshl.de/wiki/index.php/BSF_-_Statische_Hindernisse BSF-Statische Hindernisse]
*[https://wiki.hshl.de/wiki/index.php/BSF_-_Anforderungen_an_die_Längsregelung BSF-Anforderungen an die Längsregelung]
Bei Querreglung
<br>
*[https://wiki.hshl.de/wiki/index.php/BSF-Querreglung BSF-Querreglung]
*[https://wiki.hshl.de/wiki/index.php/Querreglung_Vorarbeiten Querreglung Vorarbeiten]
*[https://wiki.hshl.de/wiki/index.php/BSF-Optimierung_der_Hindernisumfahrung BSF Optimierung der Hindernisumfahrung]
=== Link zum Quelltext in SVN ===
*[https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Teams/BSF/Bilder%20Doku/Bilder%20WS20:21/ Bilder Dokumentation ]


--------------------------
--------------------------
→ zurück zum Gruppenartikel: [[SDE-Team_2020/21|SDE-Team_2020/21]]<br>
→ zurück zum Gruppenartikel: [[SDE-Team_2020/21|SDE-Team_2020/21]]<br>
→ zurück zum Hauptartikel: [[Praktikum_SDE|SDE Praktikum Autonomes Fahren]]
→ zurück zum Hauptartikel: [[Praktikum_SDE|SDE Praktikum Autonomes Fahren]]

Aktuelle Version vom 17. März 2021, 13:08 Uhr

Autor: Alessio Cebeci, Daoyin Wang
Betreuer: Prof. Dr. Mirek Göbel


Einleitung

Es wird ein Fahrzeug entwickelt, welches sich an den Anforderungen und Bedingungen des CaroloCups orientiert. Hierbei handelt es sich um einen Wettbewerb, indem studentische Teams mit autonom fahrenden Modellfahrzeugen Parcoure und Einparksituationen meistern müssen. Es wird in diesem Artikel in erste Teil über Antrieb, Lenkung und Fernbedienung; in zweite Teil über Längsregelung und Querregelung vorgestellt.

Anforderungen

Abbildung1 der Anforderung
Abbildung2 der Anforderung
Abbildung3 der Anforderung


Pflichtenheft

MS3-MS4

Überprüfung der Hardware

In dem folgenden Abschnitt geht es um die Überprüfung des Antriebs, der Lenkung und der Fernbedienung des Carolo Cup Fahrzeugs. Das Hauptaugenmerk liegt dabei auf die Ansteuerung und das Empfangen von PWM Signale. Das Signal wird mit 50 Hz übertragen und hat demnach eine Periodendauer von 20 ms. Innerhalb jeder Periode befindet sich ein Impuls der zu Beginn eine steigende Flanke (5 V) sendet, die ca. bis 2,5 ms andauern kann und fällt dann ab auf 0 V. Die Pulsdauer ist variable und dient zur Steuerung von Antrieb und Lenkung. Wie in Abbildung 1 zusehen ist, lässt sich der Arm eines Servomotors für die Lenkung Grad genau steuern.

Abb 1: Prinzip der PWM-Ansteuerung (Quelle: https://de.wikipedia.org/wiki/Tastgrad)


Das Bild oben ist nur ein Referenzbild, die tatsächlichen Daten sind in der folgenden Tabelle dargestellt.

ID Periodendauer Impulsdauer Zustand Beschreibung
1 20 ms 1.0 - 1.5 ms Lenkwinkel ist zwischen - 24° und 0°. Lenken nach Links
2 20 ms 1.5 ms Lenkwinkel = 0° Lenkung in Nullstellung
3 20 ms 1.5 - 2.0 ms Lenkwinkel ist zwischen 0° und 24°. Lenken nach Rechts
4 20 ms 1.0 - 1.75 ms Drehrichtung nach Rechts Vorwärts
5 20 ms 1.75 ms Drehrichtung ist null Stillstand
6 20 ms 1.75 - 2.0 ms Drehrichtung nach Links Rückwärts


Ein weiter wichtiger Parameter ist der Tastgrad D. Er gibt das Verhältnis zwischen der Pulsdauer und der Periodendauer an. In Abbildung 2 ist die Berechnungsformel zusehen. Multipliziert man das Ergebnis mit dem Faktor 100, so erhält man den prozentuellen Anteil der Pulsdauer im Verhältnis zu der Periodendauer. Dieser Parameter ist im weiteren Verlauf interessant, da das Programm Control Desk von dSpace, das PWM - Signal in den Tastgrad D umwandelt und anzeigt.

Abb 2: Berechnung des Tastgrads D (Quelle: https://kompendium.infotip.de/servos.html)

Darstellung des Testaufbaues



Abb : Testaufbauschaubild




Überprüfung des Antriebs

Die Überprüfung des Antriebs gliedert sich in zwei Phasen. In der ersten Phase wird eine Komponentenspezifikation erstellt, die alle Merkmale des Antriebs beinhaltet. In der zweiten Phase wird der aktuelle Zustand des Fahrzeugs in punkto Antrieb begutachtet. Dazu wird jeder Fall der Komponentenspezifikation am Fahrzeug getestet und ein Testbericht erstellt.

Komponentenspezifikation

Die nachfolgende Tabelle zeigt die Aspekte, die im Bereich des Antriebs am Carolo Cup Fahrzeug überprüft werden sollen.

ID Inhalt Ersteller Datum Geprüft von Datum
1 Der Servo-Motor muss fest am Fahrzeug verbaut sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
2 Der Servo-Motor muss an die dSpace-Karte angeschlossen sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
3 Die Anschlussleitungen des Servo-Motors sollten unbeschädigt und fachgerächt angeschlossen sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
4 Der Motor sollte über die dSpace-Karte ansteuerbar sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
5 Der Motor soll entsprechend der gesetzten Parameter Leistung abgeben. Cebeci 28.10.2020 Daoyin Wang 03.11.2020


Testbericht der Überprüfung des Antriebs

Die Überprüfung des Antriebes, wurde mit Hilfe eines Windows-Rechner, einer dSpace-Karte und den Programmen Matlab Simulink und Control Desk durchgeführt. Der Motor des Carolo Cup Fahrzeugs ist an die dSpace-Karten angeschlossen. Des Weiteren ist diese mit dem Windows-Rechner auf dem Fahrzeug verbunden. Auf dem Rechner sind die Programme Matlab Simulink und Control Desk installiert. Mit den Programme wurde eine Verbindung von Control Desk zum Antrieb geschaffen. So könnte über eine Schieberegler (siehe Abb 3) der Antrieb angesteuert werden.

Abb 3: Steuerung des Antriebs über Control Desk


Bei der Durchführung, wurden die folgenden Testfälle überprüft.

ID Testfallbeschreibung Eingang () Ausgang () Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Das Rad des Fahrzeugs ist bei einer Pulsdauer von ca. 1,75 ms in Nullstellung (Stillstand).Abb 9 1,70 - 1,80 ms Drehrichtung = 0 Drehrichtung = 0 Drehrichtung = 0 i.O. Alessio Cebeci 03.11.2020
2 Das Rad des Fahrzeugs dreht sich im Bereich einer Pulsdauer von 1,0 ms und 1,75 ms nach rechts (vorwärts).Abb 8 1,0 - 1,75 ms Drehrichtung = Rechts Drehrichtung = Rechts Drehrichtung = Rechts i.O. Alessio Cebeci 03.11.2020
3 Das Rad des Fahrzeugs dreht sich im Bereich einer Pulsdauer von 1,75 ms und 2,0 ms nach links (rückwärts).Abb 10 1,75 - 2,0 ms Drehrichtung = Links Drehrichtung = Links Drehrichtung = Links i.O. Alessio Cebeci 03.11.2020




Überprüfung der Lenkung

Die Überprüfung der Lenkung gliedert sich in zwei Phasen. In der ersten Phase wird eine Komponentenspezifikation erstellt, die alle Merkmale der Lenkung beinhaltet. In der zweiten Phase wird der aktuelle Zustand des Fahrzeugs in punkto Lenkung begutachtet. Dazu wird jeder Fall der Komponentenspezifikation am Fahrzeug getestet und ein Testbericht erstellt.
Zurück zur tatsächlichen Situation können wir sie in sechs Möglichkeiten einteilen. Es ist so wie folgende Bilders.

Diagramm der - - theoretischen - - Situation
Abb 4: Lenkung Nullstellung
Abb 5: Lenkung nach Links
Abb 6: Lenkung nach Rechts


Komponentenspezifikation

Die nachfolgende Tabelle zeigt die Aspekte, die im Bereich der Lenkung am Carolo Cup Fahrzeug überprüft werden sollen.

ID Inhalt Ersteller Datum Geprüft von Datum
1 Die Mechanik der Lenkung muss in Bezug auf die Nullstellung kalibriert sein. Daoyin Wang 28.10.2020 Alessio Cebeci 03.11.2020
2 Wenn der Lenkmotor in Nullstellung steht, dann soll das Rad senkrecht zu Achse steht. Daoyin Wang 28.10.2020 Alessio Cebeci 03.11.2020
3 Bei Vorgabe eines (math.) negativen Lenkwinkels muss das Fzg um den Betrag dieses Winkels nach rechts Lenken Daoyin Wang 28.10.2020 Alessio Cebeci 03.11.2020
4 Bei Vorgabe eines (math.) positiven Lenkwinkels muss das Fzu um den Betrag dieses Winkels nach links lenken Daoyin Wang 28.10.2020 Alessio Cebeci 03.11.2020


Testergebnis der Überprüfung der Lenkung

Die Überprüfung der Lenkung, wurde mit Hilfe eines Windows-Rechner, einer dSpace-Karte und den Programmen Matlab Simulink und Control Desk durchgeführt. Die Lenkung des Carolo Cup Fahrzeugs ist an die dSpace-Karten angeschlossen. Des Weiteren ist diese mit dem Windows-Rechner auf dem Fahrzeug verbunden. Auf dem Rechner sind die Programme Matlab Simulink und Control Desk installiert. Mit den Programme wurde eine Verbindung von Control Desk zur Lenkung geschaffen. So könnte über eine Schieberegler die Lenkung angesteuert werden.

Abb 7: Steuerung der Lenkung über Control Desk


ID Testfallbeschreibung Eingang (Pulsdauer) Ausgang (Lenkwinkel) Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Der Lenkwinkel ist bei ca. einer Pulsdauer von 1.5 ms in Nullstellung.Abb 12 1.5 ms Lenkwinkel = 0° Lenkwinkel = 0° Lenkwinkel = 0° i.O. Daoyin Wang 03.11.2020
2 Der Lenkwinkel ist bei einer Pulsdauer von ca. 1.0 - 1.5 ms zwischen - 24° und 0°. Abb 11 1.0 - 1.5 ms Lenkwinkel ist zwischen - 24° und 0°. Lenkwinkel ist zwischen - 24° und 0°. Lenkwinkel ist zwischen - 24° und 0°. i.O. Daoyin Wang 03.11.2020
3 Der Lenkwinkel ist bei einer Pulsdauer von ca. 1.5 - 2.0 ms zwischen 0° und 24°.Abb 13 1.5 - 2.0 ms Lenkwinkel ist zwischen 0° und 24°. Lenkwinkel ist zwischen 0° und 24°. Lenkwinkel ist zwischen 0° und 24°. i.O. Daoyin Wang 03.11.2020




Überprüfung der Fernbedienung

Bei der Überprüfung der PWM-Signale von Antrieb und Lenkung der Fernbedienung wurde ein Oszilloskope eingesetzt. Als erstes wurde an dem Empfänger eine externe Spannungsquelle angeschlossen. Im zweiten Schritt wurden die Prüfspitzen des Oszilloskops mit einem der beiden PWM-Anschlüssen und dem Ground verbunden. Durch die Betätigung der mechanischen Lenkung und des Antriebs, konnten unterschiedliche Pulsdauern erzeugt werden, die im Oszilloskope zusehen waren. Im zweiten Schritt, wurde der Empfänger an die dSpace-Karte angeschlossen. Dadurch könnten auch die Signale mittels Control Desk überprüft werden. Dabei ist aufgefallen, das die Werte des Tastgrads minimal abweichen.

Komponentenspezifikation

Die nachfolgende Tabelle zeigt die Aspekte, die im Bereich des Antriebs am Carolo Cup Fahrzeug überprüft werden sollen.

ID Inhalt Ersteller Datum Geprüft von Datum
1 Der Empfänger der Fernbedienung muss fest am Fahrzeug verbaut sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
2 Der Empfänger der Fernbedienung muss an die dSpace-Karte angeschlossen sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
3 Die Anschlussleitungen des Empfängers der Fernbedienung sollten unbeschädigt und fachgerächt angeschlossen sein. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
4 Der Empfänger sollte an die dSpace-Karte , bei einer Betätigung der Lenkung an der Fernbedienung, korrekte Parameter übermitteln. Cebeci 28.10.2020 Daoyin Wang 03.11.2020
5 Der Empfänger sollte an die dSpace-Karte , bei einer Betätigung des Gaspedals an der Fernbedienung, korrekte Parameter übermitteln. Cebeci 28.10.2020 Daoyin Wang 03.11.2020


Testbericht der Überprüfung der Fernbedienung und des Empfängers


PWM - - Signal - - Bilder
Abb 8: Antrieb gas geben
Abb 9: Antrieb Nullstellung
Abb 10: Antrieb rückwärts
Abb 11: Lenkung nach links
Abb 12: Lenkung Nullstellung
Abb 13: Lenkung nach rechts


ID Testfallbeschreibung Eingang () Ausgang () Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Wenn das Lenkrad der Fernbedienung in Nullstellung steht, dann beträgt die Pulsdauer ca. 1,5 ms.Abb 12 Drehrichtung = 0 1,5 ms 1,5 ms 1,5 ms i.O. Alessio Cebeci 03.11.2020
2 Wenn das Lenkrad der Fernbedienung nach links gedreht wird, dann beträgt die Pulsdauer zwischen ca. 1,0 bis 1,5 ms.Abb 11 Drehrichtung = Links 1,0 - 1,5 ms 1,0 - 1,5 ms 1,0 - 1,5 ms i.O. Alessio Cebeci 03.11.2020
3 Wenn das Lenkrad der Fernbedienung nach betätigt wird, dann beträgt die Pulsdauer zwischen ca. 1,5 bis 2,0 ms. Abb 13 Drehrichtung = Rechts 1,5 - 2,0 ms 1,5 - 2,0 ms 1,5 - 2,0 ms i.O. Alessio Cebeci 03.11.2020
4 Wenn das Gaspedal der Fernbedienung nicht betätigt wird, dann beträgt die Pulsdauer der Nullstellung (Stillstand) ca. 1,75 ms.Abb 9 Pedalstellung = mittig 1,75 ms 1,75 ms 1,75 ms i.O. Alessio Cebeci 03.11.2020
5 Wenn das Gaspedal der Fernbedienung nach hinten gedrückt wird, dann beträgt die Pulsdauer zwischen ca. 1,00 bis 1,75 ms.Abb 8 Pedalstellung = zwischen hinten und mittig 1,00 - 1,75 ms 1,00 - 1,75 ms 1,00 - 1,75 ms i.O. Alessio Cebeci 03.11.2020
6 Wenn das Gaspedal der Fernbedienung nach vorne gedrückt wird, dann beträgt die Pulsdauer zwischen ca. 1,75 bis 2,0 ms.Abb 10 Pedalstellung = zwischen mittig und vorne 1,75 - 2,0 ms 1,75 - 2,0 ms 1,75 - 2,0 ms i.O. Alessio Cebeci 03.11.2020




Wartung und Instandhaltung des mechanischen Antriebs

In diesem Abschnitt soll es um die Wartung und Instandhaltung des mechanischen Antriebs des Fahrzeugs gehen. Im Vorfeld fiel auf dass die Laufgeräusche des mechanischen Antriebs ungewöhnlich laut waren als üblich. Darauf hin wurde die Mechanik zwischen dem Elektromotor und dem Rad kontrolliert. Es stellet sich heraus, dass das Getriebe und weitere Teile nicht beschädigt waren, jedoch die Schmierung des Getriebes, der Zahnräder und der Gelenkwellen kaum oder nicht vorhanden waren. Dem zu Grunde wurden folgende Maßnahmen durchgeführt:

- Schmierung des Getriebes
- Schmierung der Köpfe der Gelenkwelle
- Leichte Schmierung der Zahnräder vom Übergang des Getriebes zum Motor
- Einstellung des Abstandes der Zahnräder zwischen dem Übergang des Getriebes zum Motor


Nach der durchgeführten Wartung waren die Laufgeräusche des Antriebs deutlich leiser.




Wartung und Instandhaltung der Lenkung

In diesem Abschnitt soll es um die Wartung und Instandhaltung der mechanischen Lenkung des Fahrzeugs gehen.
Wenn sich die Fernbedienung in der Nullposition befindet, stellt das Fahrzeug seine Lenkung so ein, dass das Fahrzeug geradeaus fährt. Da dies zu Beginn der Arbeiten nicht der Fall war, wurde zunächst die Vorderachse eingestellt. Die Fernbedienung verfügt über ein sogenanntes Trimmrad zur Feinkalibrierung.
Die Anschluss und die mechanische Leistung des Fahrtrichtungsreglers und der Vorderräder werden überprüft . Es stellt sich heraus, dass die Lenkung und andere Teile nicht beschädigt sind, aber die Verbindung locker ist und ein gewisser Versatz vorliegt.
Folgende Maßnahmen wurden ergriffen.

  • Lenkwinkel kalibrieren
  • Verbindung festziehen


Nach der durchgeführten Wartung waren die Lenkung genauer und präziser.


Überprüfung der Regelungen

Überprüfung der Längsregelung

In diesem Abschnitt ist die Überprüfung der Längsregelung dokumentiert. Als wurde die Regelung im Offline-Modell auf Funktion überprüft. Anschließend sollte die Überprüfung im Online-Modell folgen. Für die Durchführung der Tests, wurden Testspezifikationen erstellt, die im folgenden dargestellt sind.

Im Offline Modell


Signalverlauf des Moduls Bestimmung der Soll-Geschwindigkeit
Signalverlauf des Moduls Längsregelung


Weitere Information zu den Signalverläufen können unter dem folgenden Artikel gefunden werden: Längsregelung


Bestimmung Soll-Geschwindigkeit

ID Testfallbeschreibung Eingänge( SenKam_SpurA_f64) Ausgang(BsfVx_VxSoll_f64) Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Die Sollgeschwindigkeit soll maximal (0,75 m/s) sein, wenn die Krümmung der Kurve null ergibt. SenKam_SpurA_f64 = 0 BsfVx_VxSoll_f64 = 0.75 Vollgas Vollgas i.O. Alessio Cebeci 03.12.2020
2 Das Fahrzeug fährt bei einem positiven Krümmungswert, eine Linkskurve mit angepasster reduzierter Geschwindigkeit. SenKam_SpurA_f64 > 0 0 < BsfVx_VxSoll_f64 < 0.75 Bremsen auf angepasste Geschwindigkeit Bremsen auf angepasste Geschwindigkeit i.O. Alessio Cebeci 03.12.2020
3 Das Fahrzeug fährt bei einem negativ Krümmungswert, eine Rechskurve mit angepasster reduzierter Geschwindigkeit. SenKam_SpurA_f64 < 0 0 < BsfVx_VxSoll_f64 < 0.75 Bremsen auf angepasste Geschwindigkeit Bremsen auf angepasste Geschwindigkeit i.O. Alessio Cebeci 03.12.2020



Längsregler

ID Testfallbeschreibung Eingänge(Famo_VxSoll_f64, SenVx_vx_K_f64) Ausgang(BsfLaengs_RegelDiff_f64, BsfLaengs_Gaspedal_Soll_f64) Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Wenn die Differenz der Ist- und Soll-Geschwindigkeit gleich null ist, dann soll das Gaspedal den maximalen Wert annehmen. [Göbel 17.03.2021: Macht keinen Sinn! Warum Vollgas, wenn ist = soll?] Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75 BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55 Vollgas Vollgas i.O. Alessio Cebeci 03.12.2020
2 Wenn die Differenz der Ist- und Soll-Geschwindigkeit ungleich null ist, dann soll das Gaspedal den mit angepasster Stellung die Geschwindigkeit reduzieren. 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 Bremsen auf angepasste Geschwindigkeit Bremsen auf angepasste Geschwindigkeit i.O. Alessio Cebeci 03.12.2020




Im Online Modell

Bestimmung Soll-Geschwindigkeit

ID Testfallbeschreibung Eingänge( SenKam_SpurA_f64) Ausgang(BsfVx_VxSoll_f64) Erwartetes Ergebnis Testergebnis Testperson Datum
1 Die Sollgeschwindigkeit soll maximal (0,75 m/s) sein, wenn die Krümmung der Kurve null ergibt. SenKam_SpurA_f64 = 0 BsfVx_VxSoll_f64 = 0.75 Vollgas
2 Das Fahrzeug fährt bei einem positiven Krümmungswert, eine Linkskurve mit angepasster reduzierter Geschwindigkeit. SenKam_SpurA_f64 > 0 0 < BsfVx_VxSoll_f64 < 0.75 Bremsen auf angepasste Geschwindigkeit
3 Das Fahrzeug fährt bei einem negativ Krümmungswert, eine Rechskurve mit angepasster reduzierter Geschwindigkeit. SenKam_SpurA_f64 < 0 0 < BsfVx_VxSoll_f64 < 0.75 Bremsen auf angepasste Geschwindigkeit



Längsregler

ID Testfallbeschreibung Eingänge(Famo_VxSoll_f64, SenVx_vx_K_f64) Ausgang(BsfLaengs_RegelDiff_f64, BsfLaengs_Gaspedal_Soll_f64) Erwartetes Ergebnis Testergebnis Testperson Datum
1 Wenn die Differenz der Ist- und Soll-Geschwindigkeit gleich null ist, dann soll das Gaspedal den maximalen Wert annehmen. Famo_VxSoll_f64 = 0.75, SenVx_vx_K_f64 = 0.75 BsfLaengs_RegelDiff_f64 = 0, BsfLaengs_Gaspedal_Soll_f64 = 0.55 Vollgas
2 Wenn die Differenz der Ist- und Soll-Geschwindigkeit ungleich null ist, dann soll das Gaspedal den mit angepasster Stellung die Geschwindigkeit reduzieren. 0.0 < Famo_VxSoll_f64 < 0.75, 0.0 < SenVx_vx_K_f64 < 0.75 BsfLaengs_RegelDiff_f64 < 0, 0 < BsfLaengs_Gaspedal_Soll_f64 < 0.55 Bremsen auf angepasste Geschwindigkeit




Überprüfung der Querregelung

Der Inhalt der Querregelung wird in diesem Abschnitt aufgezeichnet. Es wird zunächst überprüft, ob die Regeln im Offline-Modell funktionieren. Dann sollte das Online-Modell überprüft werden. Zu Testzwecken werden Testspezifikationen wie unten gezeigt erstellt.

Im Offline Model

Die zwei aufeinanderfolgenden steilen Spitzen in "SenKam_SpurA-f64" vom Bild "Sollvorgabe ohne Hindernis" sind auf Straßenerkennungsprobleme an Kreuzungen zurückzuführen.
Die beiden starken Störungen in der folgenden Abbildungen sind die Straßenerkennungsprobleme von Fahrzeugen an Kreuzungen. In Querregler_PID ohne Hindernis, wegen "PAR_BsfQuer_PAnteil_f64 = 5; PAR_BsfQuer_IAnteil_f64 = 0; PAR_BsfQuer_DAnteil_f64 = 0;" sind die erste und die vierte Zeile (PBSFQuer_RegerlP und BSFQuer_Stellgroesse) gleich und fallen zusammen.Die anderen beiden Zeilen sind beide Null.

Ohne Hindernis Mit Hindernis
Fahrspur ohne Hindernis
Fahrspur mit Hindernis
Sollvorgabe ohne Hindernis
Sollvorgabe mit Hindernis
Querregler_PID ohne Hindernis
Querregler_PID mit Hindernis


Weitere Information zu den Signalverläufen können unter dem folgenden Artikel gefunden werden: BSF-Querreglung

Das Fahrzeug fährt auf dieser Fahrspur ohne Hindernisse.

ID Testfallbeschreibung Eingänge( SenKam_SpurA_f64) Ausgang( BSFQuer_Querablage_Soll_o_H_f64) Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Wenn die Krümmung der Kurve null ist, dann soll die Lenkwinkel null sein. SenKam_SpurA_f64 = 0 BSFQuer_Querablage_Soll_o_H_f64 = 0 nullstellung nullstellung i.O. Daoyin Wang 03.12.2020
2 Wenn die Krümmung der Kurve positiv ist, dann soll die Lenkwinkel in passende positive Grad sein. SenKam_SpurA_f64 > 0 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13 nach links Lenken nach links Lenken i.O. Daoyin Wang 03.12.2020
3 Wenn die Krümmung der Kurve negativ ist, dann soll die Lenkwinkel in passende negative Grad sein. SenKam_SpurA_f64 < 0 -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0 nach Rechts lenken nach Rechts lenken i.O. Daoyin Wang 03.12.2020


Das Fahrzeug fährt auf dieser Fahrspur mit statische Hindernisse.

ID Testfallbeschreibung Eingäng(Abstand, Strecke, Streckendifferenz) Ausgang(HinderniBit, Offset) Erwartetes Ergebnis Testergebnis Bewertung Testperson Datum
1 Wenn das Fahrzeug keine Hindernisse erkennt, fährt es normal. Abstand > 1.2 HindernisBit = 0, Offset = 0 normale fahren normale fahren i.O. Daoyin Wang 03.12.2020
2 Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Erstens, wenn die beiden eine ausreichende Abstand erreichen, vermeidet das Fahrzeug Hindernisse : nach links abbiegen. 0.1 < Abstand < 1.2 , Streckendifferenz = Strecke HindernisBit = 1, Offset = 0.2 nach links abbiegen nach links abbiegen i.O. Daoyin Wang 03.12.2020
3 Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Dann, Wenn das Fahrzeug eine ausreichende Strecke zurücklegt, kehrt das Fahrzeug zur ursprünglichen Fahrspur zurück: nach rechts abbiegen. (Strecke - Streckendifferenz) >= 1.4 HindernisBit = 0, Offset = 0 etwa fahren und dann nach Rechts abbiegen etwa fahren und dann nach Rechts abbiegen i.O. Daoyin Wang 03.12.2020


Im Online Modell

Das Fahrzeug fährt auf dieser Fahrspur ohne Hindernisse.

ID Testfallbeschreibung Eingänge( SenKam_SpurA_f64) Ausgang( BSFQuer_Querablage_Soll_o_H_f64) Erwartetes Ergebnis Testergebnis Testperson Datum
1 Wenn die Krümmung der Kurve null ist, dann soll die Lenkwinkel null sein. SenKam_SpurA_f64 = 0 BSFQuer_Querablage_Soll_o_H_f64 = 0 nullstellung --- --- ---
2 Wenn die Krümmung der Kurve positiv ist, dann soll die Lenkwinkel in passende positive Grad sein. SenKam_SpurA_f64 > 0 0 < BSFQuer_Querablage_Soll_o_H_f64 < 0.13 nach links Lenken --- --- ---
3 Wenn die Krümmung der Kurve negativ ist, dann soll die Lenkwinkel in passende negative Grad sein. SenKam_SpurA_f64 < 0 -0.13 < BSFQuer_Querablage_Soll_o_H_f64 < 0 nach Rechts lenken --- --- ---


Das Fahrzeug fährt auf dieser Fahrspur mit statische Hindernisse.

ID Testfallbeschreibung Eingäng(Abstand, Strecke, Streckendifferenz) Ausgang(HinderniBit, Offset) Erwartetes Ergebnis Testergebnis Testperson Datum
1 Wenn das Fahrzeug keine Hindernisse erkennt, fährt es normal. Abstand > 1.2 HindernisBit = 0, Offset = 0 normale fahren --- --- ---
2 Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Erstens, wenn die beiden eine ausreichende Abstand erreichen, vermeidet das Fahrzeug Hindernisse : nach links abbiegen. 0.1 < Abstand < 1.2 , Streckendifferenz = Strecke HindernisBit = 1, Offset = 0.2 nach links abbiegen --- --- ---
3 Wenn das Fahrzeug ein Hindernis vor der aktuellen Straße erkennt. Dann, Wenn das Fahrzeug eine ausreichende Strecke zurücklegt, kehrt das Fahrzeug zur ursprünglichen Fahrspur zurück: nach rechts abbiegen. (Strecke - Streckendifferenz) >= 1.4 HindernisBit = 0, Offset = 0 etwa fahren und dann nach Rechts abbiegen --- --- ---


Überarbeitung des FAMO-Moduls

Diese Optimierung beruht auf einer fortgesetzten Optimierung nach Diskussion mit dem AEP-Team und ist eine Optimierung der Switch-Bedingungen für die Geschwindigkeit. Eine solche Optimierung verbessert die Reaktion des Programms und verbessert auch die Schönheit der Gesamtsymmetrie des Modulprogramms.

Die Situation vor der Optimierung ist, dass die Geschwindigkeit zentral von einem "Switch" Schalter gesteuert wird. Wenn der Wert von "PAR_Modi_Schalter_Vx_int" gleich 1, 2 or 3 ist, wird die Geschwindigkeit von BSF, AEP or Manuell gesteuert. (Wie in den kleinen roten Kästchen im großen roten Kästchen in der folgenden Abbildung "Famo_Fahrtmodus" vor der Optimierung gezeigt.)

Die optimierte Situation ist, dass die Geschwindigkeit von der zentralen Steuerung durch einen "Switch" Schalter zur schrittweisen Steuerung durch zwei "Switch" Schalter geändert wird. (Wie in den beiden kleinen roten Kästchen im großen roten Kästchen in der folgenden Abbildung "Famo_Fahrtmodus" nach der Optimierung gezeigt.)
Die erste "Switch" Schaltersteuerung besteht darin, dass wenn der Wert gleich 1 oder 2 ist, die Geschwindigkeit von BSF oder AEP gesteuert wird, wenn der Wert gleich 3 ist, die Geschwindigkeit von Manuell gesteuert wird. Die zweite "Switch" Schaltersteuerung besteht darin, dass bei einem Wert von 1, 2 die Geschwindigkeit von BSF und AEP gesteuert wird.

Beim Einparken soll erst der Geschwindigkeit vom Modul BSF, sobald eine Parklücke gefunden wurde, dann werden die Geschwindigkeit vom Modul AEP vorgegeben.

Vor der Optimierung Nach der Optimierung
F-M_Abbildung 1: Famo_Fahrtmodus vor der Optimierung
F-M_Abbildung 2: Famo_Fahrtmodus nach der Optimierung



Überprüfung der Prototypenplatine

Bei der Fehleranalyse des Fehlers Nummer 18 der in der Fehlerverfolgungs-Liste[1] aufgeführt ist, wurde die Prototypenplatine des Carolo Cup Fahrzeugs überprüft. Das Hauptaugenmerk lag hierbei auf die Pinbelegung der Platine und die Durchgangsprüfung der Leiterbahnen. Dazu wurde mittels Multimeter eine Durchgangsmessung vorgenommen und mit einem Schaltplan die Pinbelegung überprüft.

Überprüfung der Prototypenplatine


Die Prototypenplatine hat bei der Überprüfung keine Fehler oder Mängel aufgewiesen.

Überprüfung des XOR-Gatters

Bei der Fehleranalyse des Fehlers Nummer 18 der in der Fehlerverfolgungs-Liste[2] aufgeführt ist, wurde unter andrem das XOR-Gatter der Adaptar-Platine überprüft. Das Gatter hat die Aufgabe, dass wenn einer von drei Hall-Sensoren ein Signal von 5 V sendet, ein 5V Signal am Ausgang ausgegeben wird. Das XOR-Gatter hat die folgende Wahrheitstabele:

Eingang A Eingang B Ausgang Q
0V 0V 0V
0V 5V 5V
5V 0V 5V
5V 5V 0V



Das folgende Bild zeigt den Aufbau des Tests. Hierzu wurde das Gatter isoliert auf einem Steckbrett geprüft. Als Spannungsquelle diente ein externes Netzteil. Damit wurde sowohl der Mikrokontroller mit Spannung versorgt, als auch die Eingänge mit Drähten angesteuert. Der Ausgang wurde an ein Multimeter angeschlossen, sodass die Ausgangsspannung ermittelt werden konnte.

Überprüfung des XOR-Gatters



Die Überprüfung des XOR-Gatters hat eine einwandfreie Funktion des Gatters ergeben.

Zusammenfassung

Im Folgenden sollen die Ergebnisse der abgearbeiteten Arbeitspakete zusammengefasst werden.

Überprüfung der Hardware

Bei der Überprüfung der Hardware wurde der Antrieb, die Lenkung und die Fernbedienung überprüft. Hauptaugenmerk bei der Überprüfung, waren die PWM - Signale die für den Antrieb und die Lenkung zum Ansteuern gebraucht wurden. Bei der Fernbedienung wurden die Signale mittels Betätigung der mechanischen Lenkung und dem Gashebel ausgelöst. Dazu sendetet die Fernbedienung ein Funksignal an einen Empfänger, der die entsprechenden PWM - Signale für Antrieb und Lenkung erzeugt hat. Alle Tests sind ohne Beanstandung erfolgreich abgeschlossen worden.


Überprüfung der Regelungen

Als nächstes wurde die Längs- und Querregelung überprüft. Hierzu wurden für die Tests der Regelungen Testspezifikationen erstellt. Im Anschluss wurden die Regelungen in einer Offline-Simulation getestet. Bei der Überprüfung sind alle Testfälle erfolgreich abgeschlossen worden. Anschließend sollten die Regelungen im Online-Modell getestet werden. Bei einer Fehlersuche im Online-Modell hat sich herausgestellt, dass die Geschwindigkeitserfassung auf Grund eines Hardwarefehlers nicht richtig ermittelt wird, sodass die Längsregelung nicht getestet werden könnte. Da eine korrekte Regelung der Geschwindigkeit zu diesem Zeitpunkt nicht möglich war, konnte die Querregelung durch eine Fahrt des Fahrzeugs auf der Rundstrecke nicht getestet werden.

Wartung und Instandhaltung des mechanischen Antriebs

Durch eine Inspizierung des Antriebstrangs des Carolo Cup Fahrzeugs ist aufgefallen, dass die Mechanik deutliche Laufgeräusche aufwies. Daraufhin wurde das Getriebe und die Mechanik auseinandergebaut und entsprechende Stellen geschmiert. Nach dem Zusammenbau, wurde der Antriebsstrang mit dem Motor getestet und die Laufgeräusche des Fahrzeugs waren deutlich leiser.

Wartung und Instandhaltung der Lenkung

Ein weiterer Punkt der bei einer Inspizierung aufgefallen war ist die mechanische Einstellung der Lenkung am Fahrzeug. Dies bedeutet, dass wenn kein Lenkeingriff an der Fernbedienung erfolgte, die Räder des Fahrzeugs nicht auf Nullstellung (parallel zur Fahrtrichtung) standen. Daraufhin wurde sowohl die Mechanik der Lenkung neu eingestellt, als auch mit einem Trimmrad an der Fernbedienung, die Nullstellung neu kalibriert. Dies führt zu dem gewünschten Ergebnis.

Analyse und Anpassung des Famo-Moduls

In dem Famo-Modul ist aufgefallen, dass die Auswahl der Soll-Vorgabe der Geschwindigkeit zur Startzeit des Programms festgelegt wird und im Verlauf nicht mehr geändert werden kann. Um die Möglichkeit zu bieten, diese Vorgabe zur Laufzeit zu ändern, wurde das Modul im Teil um designet, sodass die Vorgabe über einen Parameter auf dem CCF_Bus gesteuert werden kann.

Literaturverzeichnis

Link zum Quelltext in WiKi

Bei Längsreglung

Bei Querreglung

Link zum Quelltext in SVN


→ zurück zum Gruppenartikel: SDE-Team_2020/21
→ zurück zum Hauptartikel: SDE Praktikum Autonomes Fahren