Stopplinien-Verhalten: Unterschied zwischen den Versionen
Zeile 28: | Zeile 28: | ||
== Anforderungen == | == Anforderungen == | ||
Im Lastenheft des Projets Carolo Cup wird die Steuerung des Verhaltens des Fahrzeugs an der Stopplinie genau so wie in der folgenden Abbildung gefordert:<br> | Im Lastenheft des Projets Carolo Cup wird die Steuerung des Verhaltens des Fahrzeugs an der Stopplinie genau so wie in der folgenden Abbildung gefordert:<br> | ||
<gallery mode = "traditional" widths=500px heights=150px> | <gallery mode = "traditional" widths=500px heights=150px> | ||
File:Anforderungen.JPG|Abb. 1: | File:Anforderungen.JPG|Abb. 1: Lastenheft | ||
</gallery> | </gallery> | ||
Es entstand demnach das untere Pflichtenheft: <br> | Es entstand demnach das untere Pflichtenheft: <br> | ||
<gallery mode = "traditional" widths=1250px heights=230px> | <gallery mode = "traditional" widths=1250px heights=230px> | ||
File:Pflichtenheft Heuer Kruse MS2.png|Abb. | File:Pflichtenheft Heuer Kruse MS2.png|Abb. 2: Pflichtenheft | ||
</gallery> | </gallery> | ||
Version vom 29. Mai 2020, 14:27 Uhr
→ zurück zur Übersicht: SDE-Team_2019/20
→ zurück zur Übersicht: SDE-Team_2020/21
Bearbeiter: Yanick Christian Tchenko
Autoren: Hagen Heuer, Tim Kruse
Betreuer: Prof. Schneider
Aufgabe
Bearbeiten Sie nachfolgende Aufgaben bis zum Abgabetermin und stellen Sie Ihre Lösung Prof. Schneider vor. Gehen Sie systematisch in den in SDE vermittelten Schritten
- Einleitung
- Anforderungen
- Funktionaler Systementwurf / Technischer Systementwurf
- Komponentenspezifikation
- Programmierung
- Komponententest
- Zusammenfassung
- Link zum Quelltext in SVN
vor.
Einleitung
In dieser Aufgabestellung ist die Zielsetzung, das Verhalten des Fahrzeugs an Stopplinien entsprechend den Anforderungen im Lastenheft zu implementieren. Das Fahrzeug muss nach dem Lastenheft im Falle der Erkennung einer Haltelinie immer langsamer fahren. Befindet sich es an der Stopplinie, dann muss es zwei Sekunden halten und dann weiterfahren
Anforderungen
Im Lastenheft des Projets Carolo Cup wird die Steuerung des Verhaltens des Fahrzeugs an der Stopplinie genau so wie in der folgenden Abbildung gefordert:
-
Abb. 1: Lastenheft
Es entstand demnach das untere Pflichtenheft:
-
Abb. 2: Pflichtenheft
Zu den Anforderungen wurden die in der unteren Tabelle zusammengefassten Arbeitspunkte arrangiert.
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum | |
---|---|---|---|---|---|---|
1 | Trifft das Fahrzeug bei seiner Rundfahrt an eine Stopp-Kreuzung so muss es 10cm vor der Stopplinie anhalten. | Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 | |
2 | Änderung des Faktors ( BSFVx_Faktor_i8 ) in Abhängigkeit des gemessenen Abstands.
|
Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 | |
3 | Das Fahrzeug muss 2 Sekunden an der Stopplinie anhalten. | Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 | |
4 | Das Fahrzeug muss vor der Stopplinie immer langsamer fahren. | Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 | |
4 | Wird keine Stopplinie erkannt, dann muss das Fahrzeug weiterfahren | Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 | |
5 | Die Programmierung erfolgt in MATLAB/Simulink | Christian Tchenko | 25.10.2019 | Prof. Schneider | 08.11.2019 |
Funktionaler Systementwurf / Technischer Systementwurf
Im Rahmen der bisherigen Aufgaben wird das Verhalten hauptsächlich aufs Geradefahrszenario berücksichtigt. Es wird im Verhältnis zu den ermittelten Informationen über die Präsenz einer Stopplinie sowie deren Abstand zu Fahrzeug ein Geschwindigkeitsänderungsfaktor als Resultat gelifert.
Das Modell wird, beruht auf einer Funktion Stopplinien_Verhalten
, in der das Verhalten des Fahrzeug an und vor und an den Stopplinien bestimmt wird (Siehe Abb. 1).
Konzept
Als Aufgabenstellung ein MATLAB/Simulink-Block für das Verhalten an Stopplinien gemäß Lastenheft zu entwickeln. Dieser Block muss in Simulation und im realen Fahrzeug lauffähig sein.
Eingänge:
SenKam_StoplinieFlag_bit
SenKam_StoplinieAbst_f64
Ausgang:
BSFVx_Faktor_i8
(Siehe Abb. 1)
Die Präfixen(SenKam, BSFVx)und Suffix (bit, f64, i8)in der Namenstruktur entsprechend an der Stelle den Bezechnungen zum einen für die passenden Gruppen und zum anderen für die Datentypen oder Variablenkonvention in jenen Gruppen. Die Bezeichnung "bit" zum Beispiel am Ende derVariiable SenKam_StoplinieFlag_bit
bedeutet, dass es sich bei dieser Variable um einen booleschen Wert handelt.
Im Fall einer Stopplinienerkennung, wobei sich das Fahrzeug noch nicht an der Stopplinie befindet, wird die Geschwindigkeit wie folgend berechnet.
- Der Zustand des Fahrzeugs genauso wie der maximale Abstand, die eine Zeitvariable und der Faktor werden im ersten Programmdurchlauf initialisieren. Der Zustand wird an der Stelle als Fahren-Zustand durch durch die Bezeichnung
halten = false
gesetzt.
- Im Falle einer Objekt- bzw. Stopplinienerkenung, also
SenKam_StoplinieFlag_bit
gesetzt, dann wird bei der ersten Bitsetztung der geliferte SenKam_StoplinieAbst_f64 als maximaler Abstand festgelegt. Bei weiteren Bitsetzungen ändert sich die Geschwindigkeit proportional zu dem Faktor. Letzterer lässt sich wie folgend bestimmen:
- Faktor = Abstand/Abstandmax und
- Geschwindigkeit = Faktor x Soll_Geschwindigkeit
- Bei einer Annäherung bis zu einem Abstand von 15 cm, wird der Faktor zu Null gesetzt, und der Zustand entsprechend, wie folgt, geändert
halten = true
. An der Stelle kommt die Zeitvariable in Frage. Es wird für eine Ausführung der Fortfahrtfunktion eine Periode von ca. 0,005s, also 5 ms, gebraucht. Im Falle einer Haltung erfolgen c.a 400 Ausführungen, bei denen die Faktor und entsprechend die Geschwindigkeit auf Null gesetzt werden. Dies bedeutet, dass das Fahrzeug während einer Dauer von ca. 400 x 0,005s = 2s hält.(Genauso wie in Abb. 2 zu erkennen ist)
- Das Bit
SenKam_StoplinieFlag_bit
aktiviert den Simulink Block. - Vor der Stopplinie wird
BSFVx_Faktor_i8
abhängig vonSenKam_StoplinieAbst_f64
linear von1
auf0
runtergeramt. - Standphase entsprechend des Lastenheftes.
- Überprüfung ob die Straße frei ist.
- Bei freier Straße
BSFVx_Faktor_i8=1
setzen.
Die allgemeine Vorgehensweise beim dem vorliegenden Projekt sieht genauso wie in Abb. 3 beschrieben aus.
Vorstellung
Für die Vorstellung des Ergebnisse wurde der 18.10.19 12:30 Uhr vereinbart.
Komponententest
Hier werden die verschiedenen entwickelten Komponente getestet. Die Testergebnisse ergaben nach bestimmten Eingaben die in der unteren Tabelle zu sehenden numerische Resultate.
ID | Testfallbeschreibung | Eingänge(SenKam_StoplinieAbst_f64 , SenKam_StoplinieFlag_bit )
|
Ausgang(BSFVx_Faktor_i8 )
|
Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
---|---|---|---|---|---|---|---|
1 | Das Fahrzeug fährt normal, wenn keine Stopplinie erkannt wurde. | SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64 = 0 | 1 | Vollgas | 1 | Tchenko (mit Zustimmung von Prof. Schneider) | 15.11.2019 |
2 | Trifft das Fahrzeug bei seiner Rundfahrt an eine Stopp-Kreuzung so muss es 10cm vor der Stopplinie anhalten | SenKam_StoplinienFlag_bit = 1, SenKam_StoplinienAbst_f64 <= 10% Max_Abstand | 0 | Fahrzeug Stoppt | 0 | Tchenko (mit Zustimmung von Prof. Schneider) | 15.11.2019 |
3 | Das Fahrzeug fährt weiter, wenn keine Stopplinie erkannt wurde. | SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64 existiert | 1 | Nicht plausibeler Fall. (Da keine Stopplinie erkannt wurde) | 1 | Tchenko (mit Zustimmung von Prof. Schneider) | 15.11.2019 |
4 | Das Fahrzeug muss im Bereich zwischen 0.1m und 1m vor der Stopplinie immer langsamer fahren. | SenKam_StoplinienFlag_bit = 1, 0<SenKam_StoplinienAbst_f64<=10 | 0<BSFVx_Faktor_i8 <1 (Linieare Änderung)
|
Bremsen | 0<BSFVx_Faktor_i8 <1 (Linieare Änderung)
|
Tchenko (mit Zustimmung von Prof. Schneider) | 15.11.2019 |
5 | Das Fahrzeug muss bei Srtopplinienerkennung im Bereich weiter als 1m weiter normal fahren. | SenKam_StoplinienFlag_bit = 0, SenKam_StoplinienAbst_f64>10 | BSFVx_Faktor_i8 = 1
|
Nicht unterbrochene Fahrt | BSFVx_Faktor_i8 = 1
|
Tchenko (mit Zustimmung von Prof. Schneider) | 15.11.2019 |
Die Abbildung "Simulationsergebnis unter Berücksichtigung unterschiedlicher Testfälle" steht ferner graphisch dar, wie sich die Werte des BSFVx_Faktor_i8
in Abhängigkeit der simulierten Werte für SenKam_StoplinienFlag_bit
und SenKam_StoplinienAbst_f64
verändert. Dies erfolgt unter Anwendung des entwickelten Moduls zur Steeurung des Fahrzeugsverhaltens an der Stopplinie. (Siehe Abb. 4)
Fazit
Das Modell ist fertig bearbeitet worden und funktioniert gemäß der Anforderungen einwandfrei. Die Entwicklung weiterer Algorithmen ist demmnach möglich, die im Zusammenhang mit dem modellierten Anteil arbeiten. Noch zu erledigen ist die Integration des Software ins reale Fahrzeug, wobei zur reisbungslosen Funktionalität des Modells zusammen mit den anderen Projektkompartimenten einige Anpassungen bezüglich der Kennlinienerkennung noch optimiert werden müssen! Dies umfasst eine der Hauptaufgaben des Teams zur Objekterkennung.
Beispielartikel
- Tipps zum Schreiben eines Wiki-Artikels
- Beispiel-Artikel von Prof. Göbel
- Beispiel-Artikel von Prof. Schneider
→ zurück zur Übersicht: SDE-Team_2019/20
→ zurück zur Übersicht: SDE-Team_2020/21