Softwarearchitektur des Fahrzeugs: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(30 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
== Einleitung ==
== Einleitung ==


In diesem Artikel "Softwarearchitektur des Fahrzeugs" geht es um Beschreibung der Softwarearchitektur des Fahrzeugs CaroloCup. Im Kapitel Parameterdateien wird auf die Parameter eingegangen, die gebraucht werden, um Simulinkmodell einzuführen. Im nächsten Hauptkapitel werden beide Modi des Fahrzeugs beschrieben. Die Modi sind Offline-Modus und Online-Modus.
In diesem Artikel "Softwarearchitektur des Fahrzeugs" geht es um Beschreibung der Softwarearchitektur des Fahrzeugs CaroloCup. Zuerst wird allgemein über die Softwarearchitektur erläutert, danach im Kapitel Parameterdateien wird auf die Parameter eingegangen, die gebraucht werden, um Simulinkmodell einzuführen. Im nächsten Hauptkapitel werden beide Modi des Fahrzeugs beschrieben. Die Modi sind Offline-Modus und Online-Modus.
Um die Simulation durchzuführen, muss zuerst die Datei [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/start.m/ "start.m"] gestartet werden. Die Datei beinhaltet einige Parameter, die das Verhalten des Fahrzeugs und der Simulation festlegen.  
Um die Simulation durchzuführen, muss zuerst die Datei [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/start.m/ "start.m"] gestartet werden. Die Datei beinhaltet einige Parameter, die das Verhalten des Fahrzeugs und der Simulation festlegen.


== Anforderungen ==
== Anforderungen ==
Zeile 18: Zeile 18:


== Allgemeins ==
== Allgemeins ==
Sie werden unter: [[Softwarearchitektur des Fahrzeugs#Parameterdateien|Parameter]] beschrieben.
Softwarearchitektur will erreichen, dass das Anwendungssystem die Anforderungen erfüllt. Die Abbildung 3 zeigt den allgemeinen Datenfluss von dem autonomen Fahrzeug.
Die Abbildung 3 zeigt den allgemeinen Datenfluss von dem autonomen Fahrzeug.
<br>[[Datei:allgemein.jpg|1200px|thumb|none|Abbildung 3: Allgemeine Übersicht des Datenflusses vom Fahrzeug]]<br>
<br>[[Datei:allgemein.jpg|1200px|thumb|none|Abbildung 3: Allgemeine Übersicht des Datenflusses vom Fahrzeug]]<br>
Dieser Datenfluss zeigt die Architektur, die aus Wahrnehmung von Sensoren, Sensorendaten Fusion, Verhaltensentscheidung und Bewegungsmanagment besteht. Die Lokalisierung ist Verantwortlich für die Schätzung des Status des Autos. Bei der Erkennung von Objekte und Spur werden statische Objekte wie beispielweise Fahrbahn und dynamische Objekte erkannt. Dann werden die von Sensoren gesammelten Daten(Position, Objekt und Fahrbahn) fusioniert. Fusion bezieht sich auf Information mit denselben Attributen zu verschmelzen. Mit dieser Information analysiert Verhaltensentscheidung die Umgebung des Fahrzeugs und prognostiziert, was als nächstes passieren könnte. Wenn Objekte in der Fahrbahn erkannt werden, werden die aktuelle Position der Objekte und Verlauf seines Pfades verfolgt. Mit dem Verlauf kann den zukünftige Pfade der dynamischen Objekte vorhersagt werden. Damit das Fahrzeug Entscheidungen treffen kann, um Kollisionen mit potenziell sich bewegenden Objekte zu vermeiden. Außerdem plant sie die vernünftig Pfad, um das Ziel zu erreichen. Bei dem Bewegungsmanagment umfasst Längs- und Querreglung. Längsreglung steuert die Geschwindigkeit, während Querreglung Lenkwinkel ausgibt.  
Dieser Datenfluss zeigt die Architektur, die aus Wahrnehmung von Sensoren, Sensorendaten Fusion, Verhaltensentscheidung und Bewegungsmanagment besteht. Die Lokalisierung ist verantwortlich für die Schätzung des Status des Autos. Bei der Erkennung von Objekte und Spur werden statische Objekte und dynamische Objekte erkannt. Dann werden die von Sensoren gesammelten Daten(Position, Objekt und Fahrbahn) fusioniert. Fusion bezieht sich auf Information mit denselben Attributen zu verschmelzen. Mit dieser Information analysiert Verhaltensentscheidung die Umgebung des Fahrzeugs und prognostiziert, was als nächstes passieren könnte. Wenn Objekte in der Fahrbahn erkannt werden, werden die aktuelle Position der Objekte und Verlauf seines Pfades verfolgt. Mit dem Verlauf kann den zukünftige Pfade der dynamischen Objekte vorhersagt werden. Damit das Fahrzeug Entscheidungen treffen kann, um Kollisionen mit potenziell sich bewegenden Objekte zu vermeiden. Außerdem plant sie die vernünftig Pfad, um das Ziel zu erreichen. Bei dem Bewegungsmanagment umfasst Längs- und Querreglung. Längsreglung steuert die Geschwindigkeit, während Querreglung Lenkwinkel ausgibt.  


=== Übersicht der Online-und Offline Modus ===         
=== Übersicht der Online-und Offline Modus ===         
Zeile 27: Zeile 26:
Nachdem [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/start.m/ "start.m"] gestart wurde, kann jetzt der Simulationstyp (Offline oder Online) gewählt werden. Es wird dadurch gewählt, den Parameter "Schalter_offline" mit 0 (Online-Modell) oder mit 1 (Offline-Modell) festzulegen. Detaillierte Beschreibung ist unter: [[Softwarearchitektur des Fahrzeugs#Parameterdateien|Parameter]] beschrieben.<br>
Nachdem [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/start.m/ "start.m"] gestart wurde, kann jetzt der Simulationstyp (Offline oder Online) gewählt werden. Es wird dadurch gewählt, den Parameter "Schalter_offline" mit 0 (Online-Modell) oder mit 1 (Offline-Modell) festzulegen. Detaillierte Beschreibung ist unter: [[Softwarearchitektur des Fahrzeugs#Parameterdateien|Parameter]] beschrieben.<br>
'''Das Online-Modus''' ist jenes Modus, welches für Verarbeitung sämtlicher Daten während der Laufzeit des Fahrzeuges (also beim Fahren auf der Strecke) verantwortlich ist. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden.
'''Das Online-Modus''' ist jenes Modus, welches für Verarbeitung sämtlicher Daten während der Laufzeit des Fahrzeuges (also beim Fahren auf der Strecke) verantwortlich ist. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden.
Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 4
Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 4.
<br>[[Datei:CCF online Modell.PNG|1200px|thumb|none|Abbildung 4: Simulation des Fahrzeugs im Online-Modus]]<br>
<br>[[Datei:CCF online Modell.PNG|1200px|thumb|none|Abbildung 4: Simulation des Fahrzeugs im Online-Modus]]<br>
Hier sind die Module gezeigt, die im Online-Modus durchgeführt werden.<br>
Hier sind die Module gezeigt, die im Online-Modus durchgeführt werden.<br>
Folgendes ist die Abbildung 5 ein Datenfluss für Online-Modell.
Folgendes ist die Abbildung 5 ein Datenfluss für Online-Modell.
<br>[[Datei:Online update2.jpg|1200px|thumb|none|Abbildung 5: Datenfluss im Online-Modell]]<br>
<br>[[Datei:Online update2.jpg|1200px|thumb|none|Abbildung 5: Datenfluss im Online-Modell]]<br>
Das Online-Modell dient verantwortlich zur Laufzeit des Fahrzeugs. Aus diesem Datenfluss ist zu ersehen, dass in dem Sensoren Block in den verschiedenen Blöcken die Signale vom Kamera, Längsgeschwindigkeit, Gierrate, Fernbediengung, Abstandsensorik und Taster werden, die die Sensoren an die DSpace-Karte liefern in das Programm eingelesen. In dem Block Signalaufbereitung werden die Signal des Gyro-Sensors bearbeitet und Informationen fusioniert und die Spurkoeffizienten gefiltert, damit das Fahrzeug die richtige Entscheidung trifft. Bei der Bewegungsmanagement geht es um 4 Modus. Mit dem Modell Bahn- und Spurführung wird. Die Längsregelung des Fahrzeugs eine exakte Bestimmung der Sollgeschwindigkeit erfordert. Die Querregelung wird verglichen, welche Bahn das Auto fahren würde (Istgröße) und welche Bahn das Auto fahren soll (Sollgröße). Beim autonomen Einparken werden eine passende Parklücke finden ,vermessen und anschließend anhalten oder einparken. Das Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Es gibt drei Möglichkeiten: Es kann unabhängig von einander die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls genutzt werden oder die Sollwerte können manuell festgelegt werden. In dem Aktoren-Block werden die PWM-Signale für den Lenkwinkel und die Geschwindigkeit an die RTI-Blöcke weitergeleitet. Zusätzlich wird das Signal für die blaue LED, die den Eingriff und die Fahrt im RC-Modus signalisiert, auf den entsprechenden Anschluss an der DSpace Karte übertragen. Zähler und Zeitstrahl sind Timer. Im Block Geschwindigkeit gibt es Hallsensoren, die zurückgelegt Strecke ermittelt. Die beiden Blöcke ist unabhängig voneinander und werden nicht verbinden.<br>
Das Online-Modell dient zur Laufzeit des Fahrzeugs. Aus diesem Datenfluss ist zu ersehen, dass in dem Sensoren Block die Signale vom Kamera, Längsgeschwindigkeit, Gierrate, Fernbediengung, Abstandsensorik und Taster geleitet werden, und die Sensoren an die DSpace-Karte liefern in das Programm eingelesen. In dem Block Signalaufbereitung werden die Signal des Gyro-Sensors bearbeitet und Informationen fusioniert und die Spurkoeffizienten gefiltert, damit das Fahrzeug die richtige Entscheidung trifft. Bei der Bewegungsmanagement geht es um 4 Modus. Die Längsregelung des Fahrzeugs erfordert eine exakte Bestimmung der Sollgeschwindigkeit . Die Querregelung wird verglichen, welche Bahn das Auto fahren würde (Istgröße) und welche Bahn das Auto fahren soll (Sollgröße). Beim autonomen Einparken werden eine passende Parklücke finden ,vermessen und anschließend anhalten oder einparken. Das Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Es gibt drei Möglichkeiten: Es kann unabhängig von einander die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls genutzt werden oder die Sollwerte können manuell festgeleget werden. In dem Aktoren-Block werden die PWM-Signale für den Lenkwinkel und die Geschwindigkeit an die RTI-Blöcke weitergeleitet werden. Zusätzlich wird das Signal für die blaue LED, die den Eingriff und die Fahrt im RC-Modus signalisiert, auf den entsprechenden Anschluss an der DSpace Karte übertragen. Zähler und Zeitstrahl sind Timer. Im Block Geschwindigkeit gibt es Hallsensoren, die zurückgelegt Strecke zu ermitteln. Die beiden Blöcke ist unabhängig voneinander und werden nicht verbinden.<br>


'''Das Offline-Modus''' ist jenes Modus, welches ein realistisches Abbild des Online-Modus an jedem PC bereit stellt. Hiermit können neue Software-Stände im Modultest getestet werden und bei erfolgreichem Arbeiten auf das Online-Modus übertragen werden. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden.  
'''Das Offline-Modus''' ist jenes Modus, welches ein realistisches Abbild des Online-Modus an jedem PC bereit stellt. Hiermit können neue Software-Stände im Modultest getestet werden und bei erfolgreichem Arbeiten auf das Online-Modus übertragen werden. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden.  
Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 6
Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 6.
<br>[[Datei:Offline Simulinkmodell.PNG|1200px|thumb|none|Abbildung 6: Simulation des Fahrzeugs im Offline-Modell]]<br>
<br>[[Datei:Offline Simulinkmodell.PNG|1200px|thumb|none|Abbildung 6: Simulation des Fahrzeugs im Offline-Modell]]<br>
Mit dem Bild sind die Simulinkmodule im Offline-Modus zu sehen.<br>
Mit dem Bild sind die Simulinkmodule im Offline-Modus zu sehen.<br>
Folgende Abbildung 7 zeigt den Datenfluss vom Offline-Modell.
Folgende Abbildung 7 zeigt den Datenfluss vom Offline-Modell.
<br>[[Datei:Offline update2.jpg|1200px|thumb|none|Abbildung 7: Datenfluss im Offline-Modell]]<br>
<br>[[Datei:Offline update2.jpg|1200px|thumb|none|Abbildung 7: Datenfluss im Offline-Modell]]<br>
Das Offline-Modell steht ein realistisches Abbild des Online-Modells an jedem PC zur Verfügung. Der vorliegende Datenfluss basiert auf Online-Modell, aber nach dem Aktoren gibt es 2 Modelle auszuwählen, Für das autonome Einparken wird ein Kinematik- und für den Rundkurs ein Einspurmodell genutzt. Sie werden durch den Schalter gestätigt. Der Block Darstellung lässt den Rundkurs und die Fahrspur anzeigen. FromWorkspace Block dient zum Einladen der Messdaten. Außer Zähler und Zeitstrahl als Timer werden Darstellung und FromWorkspace Block mit Block Sensoren verbunden.
Das Offline-Modell steht ein realistisches Abbild des Online-Modells an jedem PC zur Verfügung. Der vorliegende Datenfluss basiert auf Online-Modell, aber nach dem Aktoren gibt es 2 Modelle auszuwählen, Für das autonome Einparken wird ein Kinematik- und für den Rundkurs ein Einspurmodell genutzt. Sie werden durch den Schalter betätigt. Der Block Darstellung lässt den Rundkurs und die Fahrspur anzeigen. FromWorkspace Block dient zum Einladen der Messdaten. Außer Zähler und Zeitstrahl als Timer werden Darstellung und FromWorkspace Block mit Block Sensoren verbunden.
<br>
<br>


Zeile 110: Zeile 109:
=== Parameter im Online-Modus ===
=== Parameter im Online-Modus ===


In dem Kapitel geht es um die Parameter, die nur im Online-Modus benötigt sind
In dem Kapitel geht es um die Parameter, die nur im Online-Modus benötigt sind.


==== param_AKT_online ====
==== param_AKT_online ====
Zeile 118: Zeile 117:
==== param_SEN_online ====
==== param_SEN_online ====


Durch Hilfe von den Parametern in der Datei werden die aus den Sensoren (z.B. Infrarotsensor, Gierratensensor und Geschwindigkeitssensorik) gelieferten Spannungen im Online-Modus in notwendige Daten (Distanz, Geschwindigkeit) umgerechnet. Die Parameter befinden sich in der Datei : "param_SEN_online under" : "\Software\CaroloCupFahrzeug\parameter" in SVN. Die Datei hat viele Parameter, die in Simulink benötigt sind. Als Beispiel zeigt die Abbildung 2.1.2, wie und wo der Parameter "PAR_SenGier_UmrechFaktor_K_f64" eingesetzt werden.
Durch Hilfe von den Parametern in der Datei werden die aus den Sensoren (z.B. Infrarotsensor, Gierratensensor und Geschwindigkeitssensorik) gelieferten Spannungen im Online-Modus in notwendige Daten (Distanz, Geschwindigkeit) umgerechnet. Die Parameter befinden sich in der Datei : "param_SEN_online under" : "\Software\CaroloCupFahrzeug\parameter" in SVN. Die Datei hat viele Parameter, die in Simulink benötigt sind. Als Beispiel zeigt die Abbildung 8, wie und wo der Parameter "PAR_SenGier_UmrechFaktor_K_f64" eingesetzt werden.
<br><br>
<br><br>
[[Datei:PAR SenGier UmrechFaktor K f64.png|1200px|thumb|none|Abbildung 2.1.2: Der benutzte Parameter "PAR_SenGier_UmrechFaktor_K_f64" in Simulink]]
[[Datei:PAR SenGier UmrechFaktor K f64.png|1200px|thumb|none|Abbildung 8: Der benutzte Parameter "PAR_SenGier_UmrechFaktor_K_f64" in Simulink]]
<br>
<br>


Zeile 128: Zeile 127:


==== param_SEN_offline ====
==== param_SEN_offline ====
Das Ziel der Datei [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/parameter/param_SEN_offline.m/ param_SEN_offline] ist die Simulation der Sensoren. Indem zuerst die Fahrbahntype ausgewählt wird, danach werden die Positionen und Dimensionen der parkenden Fahrzeuge für das autonome Einparken und die Straßendimension für die Bahn- und Spurführung erstellt. Folgende ist ein Datenfluss, der eine Struktur des Sensoren im Offline zeigt.
Das Ziel der Datei [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/CaroloCupFahrzeug/parameter/param_SEN_offline.m/ param_SEN_offline] ist die Simulation der Sensoren. Indem zuerst die Fahrbahntype ausgewählt wird, danach werden die Positionen und Dimensionen der parkenden Fahrzeuge für das autonome Einparken und die Straßendimension für die Bahn- und Spurführung erstellt.  


 
Die Abbildung 9 zeigt den Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink.
Die Abbildung 8 zeigt den Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink.
<br>[[Datei:PAR SenKam Stoplinien f64.png|1200px|thumb|none|Abbildung 9: Der Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink]]<br><br>
<br>[[Datei:PAR SenKam Stoplinien f64.png|1200px|thumb|none|Abbildung 8: Der Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink]]<br><br>


==== param_ESM_offline ====
==== param_ESM_offline ====
Zeile 176: Zeile 174:


==== SEN-Online ====
==== SEN-Online ====
Der Block "SEN-Sensoren-online" dient dem Einlesen der Sensoren, die im Fahrzeut eingesetzt sind. In der Abbildung 3.1.1 ist der Block SEN zu sehen.
Der Block "SEN-Sensoren-online" dient zum Einlesen der Sensoren, die im Fahrzeut eingesetzt sind. In der Abbildung 10 ist der Block SEN zu sehen.
<br>[[Datei:Sensoren online.jpg|1200px|thumb|none|Abbildung 3.1.1: Der Block SEN-Sensoren-online im Simulink]]<br>
<br>[[Datei:Sensoren online.jpg|1200px|thumb|none|Abbildung 10: Der Block SEN-Sensoren-online im Simulink]]<br>
Das Modell besteht aus mehreren Blöcken. Jeder Block rechnet die Werte und wandelt die um, um seine Messungen danach in nächsten Modellen weiterzuarbeiten.  
Das Modell besteht aus mehreren Blöcken. Jeder Block rechnet die Werte und wandelt die um, um seine Messungen danach in nächsten Modellen weiterzuarbeiten.  
Die Abbildung 3.1.1a zeigt den Block SenVx-Laengsgeschwindigkeit.  
Die Abbildung 11 zeigt den Block SenVx-Laengsgeschwindigkeit.  
<br>[[Datei:Sensoren online Laengsgeschwindigkeit.jpg|1200px|thumb|none|Abbildung 3.1.1a: Der Block SenVx-Laengsgeschwindigkeit in SEN-Sensoren-online]].  
<br>[[Datei:Sensoren online Laengsgeschwindigkeit.jpg|1200px|thumb|none|Abbildung 11: Der Block SenVx-Laengsgeschwindigkeit in SEN-Sensoren-online]].  
In dem Block SenVx-Laengsgeschwindigkeit werden die drei Phasen der Hall-Sensoren eingelesen und Geschwindigkeit mit PT1-Verhalten berechnet.
In dem Block SenVx-Laengsgeschwindigkeit werden die drei Phasen der Hall-Sensoren eingelesen und Geschwindigkeit mit PT1-Verhalten berechnet.


Zeile 187: Zeile 185:
Im diese Modell werden von DSpace-Karte liefernde Signale in Function Call Subsystem weiterleitet, indem Hall-Sensoren, Distanz und Geschwindigkeit verarbeitet.
Im diese Modell werden von DSpace-Karte liefernde Signale in Function Call Subsystem weiterleitet, indem Hall-Sensoren, Distanz und Geschwindigkeit verarbeitet.


[[Datei:SEN-Geschwindigkeit.jpg]]


<br>[[Datei:SEN-Geschwindigkeitt.jpg|1200px|thumb|none|Abbildung 12: SEN-Geschwindigkeit]].
<br>[[Datei:Online_Sensor_aktor_test_Sen_Geschwindigkeit3.jpg|1200px|thumb|none|Abbildung 12: FunktionCallSubsystem]].
<br>[[Datei:builder1.jpg|1200px|thumb|none|Abbildung 12: Builder1]].
<br>[[Datei:Builder.jpg|1200px|thumb|none|Abbildung 12: Builder]].


==== AKT-Online ====
==== AKT-Online ====
Zeile 239: Zeile 243:


=== Gemeinsame Modulle in beiden Modi ===
=== Gemeinsame Modulle in beiden Modi ===
==== Zähler ====
 
==== SAB ====
==== OSE ====
==== BSF ====
==== AEP ====
==== FAMO ====
==== FAMO ====
Folgende ist ein Datenfluss für den Fahrtmodus.
Folgende ist ein Datenfluss für den Fahrtmodus.
Zeile 250: Zeile 250:


Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Für jede Quelle gibt 3 Möglichkeit die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls oder die Sollwerte können manuell durch eine Variable festgelegt werden. Indem sie durch den Schalten mit den Quellen verbinden. Es gibt jedoch die Möglichkeit aus dem AEP Modul durch Lenkwinkelschalter während der Fahrt zwischen dem Sollenkwinkel des BSF Moduls auf den des AEP Moduls umzuschalten. Diese Variable wird über den Bus vom AEP Modul in das FAMO Modul übergeben.
Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Für jede Quelle gibt 3 Möglichkeit die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls oder die Sollwerte können manuell durch eine Variable festgelegt werden. Indem sie durch den Schalten mit den Quellen verbinden. Es gibt jedoch die Möglichkeit aus dem AEP Modul durch Lenkwinkelschalter während der Fahrt zwischen dem Sollenkwinkel des BSF Moduls auf den des AEP Moduls umzuschalten. Diese Variable wird über den Bus vom AEP Modul in das FAMO Modul übergeben.
==== Zähler ====
==== SAB ====
==== OSE ====
==== BSF ====
==== AEP ====


== Zusammenfassung ==
== Zusammenfassung ==
Die Softwarearchitektur ist für die andere Gruppe ein besseres Verständnis vom autonomen Fahrzeug verantwortlich, aber nach dem Gespräch wird dieses Thema von anderem Thema ersetzt, leider ist nicht alles fertig.
Die Softwarearchitektur ist für die andere Gruppe ein besseres Verständnis vom autonomen Fahrzeug verantwortlich, aber nach dem Gespräch wird dieses Thema von anderem Thema ersetzt, leider ist nicht alles fertig.

Aktuelle Version vom 12. Juli 2022, 15:25 Uhr

Autor:

M.Anas Habbaba (Diskussion) 18:42, 28. April. 2020 (CET)

Lihui Liu (Diskussion) 18:42, 28. April. 2020 (CET)

Einleitung

In diesem Artikel "Softwarearchitektur des Fahrzeugs" geht es um Beschreibung der Softwarearchitektur des Fahrzeugs CaroloCup. Zuerst wird allgemein über die Softwarearchitektur erläutert, danach im Kapitel Parameterdateien wird auf die Parameter eingegangen, die gebraucht werden, um Simulinkmodell einzuführen. Im nächsten Hauptkapitel werden beide Modi des Fahrzeugs beschrieben. Die Modi sind Offline-Modus und Online-Modus. Um die Simulation durchzuführen, muss zuerst die Datei "start.m" gestartet werden. Die Datei beinhaltet einige Parameter, die das Verhalten des Fahrzeugs und der Simulation festlegen.

Anforderungen


Die Abbildung 1 zeigt REQ10.3250 Modellierung der System- und Softwarearchitektur.

Abbildung 1: REQ10.3250



Für das Pflichtenheft wurden folgende Anforderung erstellt. Es ist in der Abbildung 2 zu sehen.


Abbildung 2: Pflichtenheft für REQ10.3250


Allgemeins

Softwarearchitektur will erreichen, dass das Anwendungssystem die Anforderungen erfüllt. Die Abbildung 3 zeigt den allgemeinen Datenfluss von dem autonomen Fahrzeug.


Abbildung 3: Allgemeine Übersicht des Datenflusses vom Fahrzeug


Dieser Datenfluss zeigt die Architektur, die aus Wahrnehmung von Sensoren, Sensorendaten Fusion, Verhaltensentscheidung und Bewegungsmanagment besteht. Die Lokalisierung ist verantwortlich für die Schätzung des Status des Autos. Bei der Erkennung von Objekte und Spur werden statische Objekte und dynamische Objekte erkannt. Dann werden die von Sensoren gesammelten Daten(Position, Objekt und Fahrbahn) fusioniert. Fusion bezieht sich auf Information mit denselben Attributen zu verschmelzen. Mit dieser Information analysiert Verhaltensentscheidung die Umgebung des Fahrzeugs und prognostiziert, was als nächstes passieren könnte. Wenn Objekte in der Fahrbahn erkannt werden, werden die aktuelle Position der Objekte und Verlauf seines Pfades verfolgt. Mit dem Verlauf kann den zukünftige Pfade der dynamischen Objekte vorhersagt werden. Damit das Fahrzeug Entscheidungen treffen kann, um Kollisionen mit potenziell sich bewegenden Objekte zu vermeiden. Außerdem plant sie die vernünftig Pfad, um das Ziel zu erreichen. Bei dem Bewegungsmanagment umfasst Längs- und Querreglung. Längsreglung steuert die Geschwindigkeit, während Querreglung Lenkwinkel ausgibt.

Übersicht der Online-und Offline Modus

Nachdem "start.m" gestart wurde, kann jetzt der Simulationstyp (Offline oder Online) gewählt werden. Es wird dadurch gewählt, den Parameter "Schalter_offline" mit 0 (Online-Modell) oder mit 1 (Offline-Modell) festzulegen. Detaillierte Beschreibung ist unter: Parameter beschrieben.
Das Online-Modus ist jenes Modus, welches für Verarbeitung sämtlicher Daten während der Laufzeit des Fahrzeuges (also beim Fahren auf der Strecke) verantwortlich ist. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden. Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 4.


Abbildung 4: Simulation des Fahrzeugs im Online-Modus


Hier sind die Module gezeigt, die im Online-Modus durchgeführt werden.
Folgendes ist die Abbildung 5 ein Datenfluss für Online-Modell.


Abbildung 5: Datenfluss im Online-Modell


Das Online-Modell dient zur Laufzeit des Fahrzeugs. Aus diesem Datenfluss ist zu ersehen, dass in dem Sensoren Block die Signale vom Kamera, Längsgeschwindigkeit, Gierrate, Fernbediengung, Abstandsensorik und Taster geleitet werden, und die Sensoren an die DSpace-Karte liefern in das Programm eingelesen. In dem Block Signalaufbereitung werden die Signal des Gyro-Sensors bearbeitet und Informationen fusioniert und die Spurkoeffizienten gefiltert, damit das Fahrzeug die richtige Entscheidung trifft. Bei der Bewegungsmanagement geht es um 4 Modus. Die Längsregelung des Fahrzeugs erfordert eine exakte Bestimmung der Sollgeschwindigkeit . Die Querregelung wird verglichen, welche Bahn das Auto fahren würde (Istgröße) und welche Bahn das Auto fahren soll (Sollgröße). Beim autonomen Einparken werden eine passende Parklücke finden ,vermessen und anschließend anhalten oder einparken. Das Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Es gibt drei Möglichkeiten: Es kann unabhängig von einander die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls genutzt werden oder die Sollwerte können manuell festgeleget werden. In dem Aktoren-Block werden die PWM-Signale für den Lenkwinkel und die Geschwindigkeit an die RTI-Blöcke weitergeleitet werden. Zusätzlich wird das Signal für die blaue LED, die den Eingriff und die Fahrt im RC-Modus signalisiert, auf den entsprechenden Anschluss an der DSpace Karte übertragen. Zähler und Zeitstrahl sind Timer. Im Block Geschwindigkeit gibt es Hallsensoren, die zurückgelegt Strecke zu ermitteln. Die beiden Blöcke ist unabhängig voneinander und werden nicht verbinden.

Das Offline-Modus ist jenes Modus, welches ein realistisches Abbild des Online-Modus an jedem PC bereit stellt. Hiermit können neue Software-Stände im Modultest getestet werden und bei erfolgreichem Arbeiten auf das Online-Modus übertragen werden. Das Modus ist nach dem EVA-Prinzip aufgebaut und verarbeitet die eingehenden Sensorikdaten durch eine Logik, welche anschließend wieder in Aktorikbefehle gewandelt werden. Nach der Festlegung des Parameters mit 0, ist "Run" zu drücken. Dann erscheint die Abbildung 6.


Abbildung 6: Simulation des Fahrzeugs im Offline-Modell


Mit dem Bild sind die Simulinkmodule im Offline-Modus zu sehen.
Folgende Abbildung 7 zeigt den Datenfluss vom Offline-Modell.


Abbildung 7: Datenfluss im Offline-Modell


Das Offline-Modell steht ein realistisches Abbild des Online-Modells an jedem PC zur Verfügung. Der vorliegende Datenfluss basiert auf Online-Modell, aber nach dem Aktoren gibt es 2 Modelle auszuwählen, Für das autonome Einparken wird ein Kinematik- und für den Rundkurs ein Einspurmodell genutzt. Sie werden durch den Schalter betätigt. Der Block Darstellung lässt den Rundkurs und die Fahrspur anzeigen. FromWorkspace Block dient zum Einladen der Messdaten. Außer Zähler und Zeitstrahl als Timer werden Darstellung und FromWorkspace Block mit Block Sensoren verbunden.

Parameterdateien

Die Parameterdateien befinden sich in Ordner parameter . In den Parameterdateien handelt sich um die Parameter, die für Realisierung der Funktionen des Fahrzeugs benötigt sind. In diesem Kapital werden die Parameter in drei Unterkapitel eingeteilt. Parameter in Online-Modus, Offlinemodus und gemeinsame Parameter. In "start.m" gibt es drei wesentliche Parameter, die die Form der Simulation ändern.

Name des Parameters Aufgabe des Parameters Parameterwert Funktion des Parameters beim Wert
Schalter_offline Auswahl des Simulationstyps 0 Aktivieren von Simulink Online (Modell für die dSPACE-Karte)
Schalter_offline Auswahl des Simulationstyps 1 Aktivieren von Simulink Online
PAR_Modi_Schalter_Fahrbahn_int Laden verschiedener Fahrbahnformen 3 Rundkurs ohne Kreuzung mit Stopplinie
PAR_Modi_Schalter_Fahrbahn_int Laden verschiedener Fahrbahnformen 2 Rundkurs mit Kreuzung, Start direkt vor S-Kurve
PAR_Modi_Schalter_Fahrbahn_int Laden verschiedener Fahrbahnformen 1 Rundkurs mit Kreuzung
PAR_Modi_Schalter_Fahrbahn_int Laden verschiedener Fahrbahnformen 0 Rundkurs ohne Kreuzung
Simulinkmodus Auswahl des Simulinkmodus 4 BSF incl. Objekt auf der Fahrbahn
Simulinkmodus Auswahl des Simulinkmodus 3 AEP (Lücke suchen, vermessen und einparken)
Simulinkmodus Auswahl des Simulinkmodus 2 AEP (Lücke suchen, vermessen und anschließend anhalten)
Simulinkmodus Auswahl des Simulinkmodus 1 BSF

Name des Parameters ist der Name des Parameters, der in start.m ist. Aufgabe des Parameters zeigt, wofür der Parameter eingesetzt wird. Parameterwert ist der Wert, mit dem der Parameter versehen wird, damit eine bestimmte Funktion oder Form durchgeführt wird. Die Funktion ist mit Funktion des Parameters beim Wert gekennzeichnet.


Parameter im Online-Modus

In dem Kapitel geht es um die Parameter, die nur im Online-Modus benötigt sind.

param_AKT_online

param_AKT_online ist für AKT-Aktoren-Online. Die Parameterdatei stellt die Parameter zur Ansteuerung der Aktoren. Die Parameter führen zur Steuerung des Lenkwinkels, Gaspedals sowie zum Schutz des Fahrzeugs im Online-Modus.


param_SEN_online

Durch Hilfe von den Parametern in der Datei werden die aus den Sensoren (z.B. Infrarotsensor, Gierratensensor und Geschwindigkeitssensorik) gelieferten Spannungen im Online-Modus in notwendige Daten (Distanz, Geschwindigkeit) umgerechnet. Die Parameter befinden sich in der Datei : "param_SEN_online under" : "\Software\CaroloCupFahrzeug\parameter" in SVN. Die Datei hat viele Parameter, die in Simulink benötigt sind. Als Beispiel zeigt die Abbildung 8, wie und wo der Parameter "PAR_SenGier_UmrechFaktor_K_f64" eingesetzt werden.

Abbildung 8: Der benutzte Parameter "PAR_SenGier_UmrechFaktor_K_f64" in Simulink


Parameter im Offline-Modus

Die Parameterdateien, die sich unter dem Kapitel "Parameter im Offline-Modus" befinden, werden nur im Offline-Modus verwendet.

param_SEN_offline

Das Ziel der Datei param_SEN_offline ist die Simulation der Sensoren. Indem zuerst die Fahrbahntype ausgewählt wird, danach werden die Positionen und Dimensionen der parkenden Fahrzeuge für das autonome Einparken und die Straßendimension für die Bahn- und Spurführung erstellt.

Die Abbildung 9 zeigt den Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink.


Abbildung 9: Der Parameter PAR_SenKam_Stoplinien_f64 aus der Datei param_ESM_offline in Simulink



param_ESM_offline

Die Parameter der Datei dienen zur Simulation des Moduls Einspurmodell im Offline-Modus. Diese Parameter bestimmen die Länge, Breite und die Masse des Fahrzeugs sowie Informationen über Reifen und Aktordynamik. Die Parameter haben Wirkungen auf die Geschwindigkeit und die Stabilität des Fahrzeugs. Mit den Daten kann der Schwerpunkt des Fahrzeugs berechnet werden. Unter [1] sind einige Parameter, die im Einspurmodell benutzt werden, zu sehen. Die Parameter kommen aus der Datei param_ESM_offline, die sich unter folgendem Pfad param_ESM_offline befinden.

param_VIS_offline

Die Datei ist für die Visualisierung der Offline-Simulation. Sie bestimmt, wie oft die Anzeige erneut geplottet wird. In dem Fall wird die gefahrene Bahn je 100 Schritte geplottet. Die Datei param_VIS_offline befindet sich unter: param_VIS_offline

param_AKT_offline

Die Datei param_AKT_offline beinhaltet keine Parameter und ist zurzeit leer. Die Datei befindet sich unter: param_AKT_offline

Gemeinsame Parameter

Die Parameterdateien, die sich unter dem Kapitel "Gemeinsame Parameter" befinden, werden sowohl im Online-Modus als auch im Offline-Modus verwendet.

param_CAR

Die Parameter der Datei sind für die Bestimmung der Dimensionen und der Masse vom Fahrzeug sowie Sensorpositionen im körperfesten Koordinatensystem. Hinweis: Einige Parameter, die hier festgelegt werden, werden in der Datei param_ESM_offline verwendet. Die Datei befindet sich unter: param_CAR

param_AEP

Diese Parameterdatei ist für die Funktion des automen Einparkens bereit gestellt. Hier werden zum Einen die zu fahrenden Geschwindigkeiten während des Einparkvorgangs, zum Anderen aber auch der maximal erlaubte Einparkwinkel definiert. Vorerst wird die maximal notwendige Größe der Parklücke vor Durchführung des Vorgangs berechnet. Es werden ein seitlicher Abstand zu den Hindernissen von 8cm angenommen und die Maße des Fahrzeug aus param_CAR verwendet. Die Datei befindet sich unter: param_AEP

param_BSF

Bei dieser Parameterdatei "param_BSF" handelt es sich um die Parameter für die Bahn- und Spurführung. Diese sind zum Beispiel die Anteile der Längs- und Querregelung, Lenkwinkelbegrenzung und eine Lookuptabelle für die Geschwindigkeit über den Lenkwinkel. Die Datei befindet sich unter: param_BSF

param_OSE

Die Datei ist leer und beinhaltet keine Daten und keine Parameter. Die Datei wurde trotzdem angelegt und befindet sich unter: param_OSE.

param_SAB

Bei der Signalaufbereitung werden die Parameter für die Gierratensensor (z.B. Zeitverzögerung für Gyrokalibrierung) eingesetzt. Die Parameter in der Datei sind auch dafür zuständig, Rauschen von dem Gierratensensor und der Kamera zu filtern. Die Datei befindet sich unter: param_SAB

Simulinkmodelle

In dem Kapitel wird auf die Simulinkmodelle von dem CaroloCupFahrzeug eingegangen. Es wird beschrieben, welche Aufgaben die Blöcke haben und wie die Zusammenhänge zwischen den Blöcken sind. Wie o.g. gibt es zwei Modi. Manche Blöcke sehen an den Modi unterschiedlich aus, deshalb werden hier Blöcke im Online-Modus, Offline-Modus erläutert. Der Rest ist im Unterkapitel "Gemeinsame Modulle in beiden Modi", da die Blöcke in beiden Modi gleich sind.

Online-Modus

SEN-Online

Der Block "SEN-Sensoren-online" dient zum Einlesen der Sensoren, die im Fahrzeut eingesetzt sind. In der Abbildung 10 ist der Block SEN zu sehen.


Abbildung 10: Der Block SEN-Sensoren-online im Simulink


Das Modell besteht aus mehreren Blöcken. Jeder Block rechnet die Werte und wandelt die um, um seine Messungen danach in nächsten Modellen weiterzuarbeiten. Die Abbildung 11 zeigt den Block SenVx-Laengsgeschwindigkeit.


Abbildung 11: Der Block SenVx-Laengsgeschwindigkeit in SEN-Sensoren-online

.

In dem Block SenVx-Laengsgeschwindigkeit werden die drei Phasen der Hall-Sensoren eingelesen und Geschwindigkeit mit PT1-Verhalten berechnet.

SEN-Geschwindigkeit

Im diese Modell werden von DSpace-Karte liefernde Signale in Function Call Subsystem weiterleitet, indem Hall-Sensoren, Distanz und Geschwindigkeit verarbeitet.



Abbildung 12: SEN-Geschwindigkeit

.

Abbildung 12: FunktionCallSubsystem

.

Abbildung 12: Builder1

.

Abbildung 12: Builder

.

AKT-Online

Offline-Modus

SEN-Offline

Hier ist ein Datenfluss für SEN-Offline. Eine genauer Sicht ist hier. offline.vsd

Kamera dient zur Objekt- und Spurkennung und die Koordinatentransformation. Indem zuerst durch das Schalter die Kamerasensor ein oder ausschalten, dann werden Position und Winkel des Fahrzeugs von Weltkoordinaten in Koordinatensystem transformiert. Diese Eingaben sind im Matlabfunction berechnet, und gibt die Spure A,B,C aus. Die Ein- und Ausgänge aus ersten Block werden alle als Eingänge im Block von der Stopplinienerkennung.Es gibt auch ein Function, falls Stopplinie auf Fahrspur erkannt, wird das Stoppflag gesetzt und Abstande zur kreuzenden Stopplinie berechnet. Bei der Längesgeschwindigkeit wird der Bus mit dem LookupTabel verbunden und gibt die Sollgeschwindigkeit aus. Im Block Lenkwinkel sind Sensorlenkwinkel und Bus die Eingänge, der durch Gain die Signal vom Solllenkwinkel verstärkt. Abstandsensorik dient zur Messung des Abstandes zwischen einem Objekt und einem Bezugspunkt oder von Längenänderungen. Objektliste stellt die parkenden Hindernisse dar, Schalter ist verantwortlich dafür, dass die Abstandsensorik aktivieren. Die Breite und Länge des Fahrzeug wird benötigt, denn durch das Matlabfunction werden Berechnungen für alle Objekte der Objektliste jeweils für den vorderen Sensor (VR, vorn rechts) sowie den hinteren Sensor (HR, hinten rechts) durchgeführt. Im Block von Gierrate ist die Signal von der Abstandsensorik den Eingang, mit dem Bus werden die Dreh-Winkel weitergeleitet, die Ausgaben werden mittels Gain die Signal verstärkt. Die Taster werden im Sensoren-Block als feste Variablen implementiert, welche zu Beginn der Offline-Simulation passend nach Moduswahl auf eins gesetzt werden und somit einer Schalterbetätigung entsprechen. Block Init ist verantwortlich für die Initialisierung der Fahranzeige. Block LIDAR ist ähnlich wie Kamera, dadurch, dass Schalter LIDAR aktiviert wird. Position und Winkel des Fahrzeugs aus Einspurmodell von Weltkoordinaten in Koordinatensystem transformiert. Zähler zeigt auf, wie oft das Programm schon aufgerufen wurde. Sie sind mit Objektliste im Matlabfunction verwendet und realisiert die Funktion der Erkennung.

AKT-Offline

Hier zeigt den Datenfluss vom Aktoren im Offline-Betrieb

Die Eingänge vom AKT-Offline verbinden mit dem Bus und die Ausgänge vom Fahrtmodus. Bus wird direkt mit dem Ausgang verbunden. Solllenkwinkel und Sollgeschwindigkeit aus Fahrtmodus steuern die Fahrsignalanzeige vom LED durch den Schalter , Ausgänge des LED sind Links - und Rechtsblinker, Bremslicht und Rückfahrlicht.

ESM

Datenfluss für Einspurmodell finden Sie folgende.

In der aktuellen Konfiguration werden Lenkwinkel und Geschwindigkeit als Eingangsgröße in das Einspurmodell geführt. Sie sind mit der Parameter aus Einspurmodell_offline verbunden und in dem Blöcken „Vorderreifen“ , „Hinterreifen“ und Schwimmwinkel weitergeleitet. In dem Block „Summe der Kräfte im Schwerpunkt“ werden die Längskräfte zusammen mit den Querkräften zu den resultierenden Kräften im Schwerpunkt des Fahrzeuges in Y-Richtung des Körperkoordinatensystems umgerechnet. In dem Block „Gierdynamik Schwerpunktsatz im Bahnsystem“ wird aus dieser Kraft und der Masse des Fahrzeuges die aktuelle Beschleunigung in dem Körperkoordinatensystem bestimmt. Sie verbinden mit dem Block Geschwindigkeiten und gibt Position der Dreh-Winkel des Fahrzeugs aus.

Kinematikmodell

Das Kinematikmodell ist ein vereinfachtes Einspurmodell, welches die Bewegungsgleichung des Fahrzeugs unter Vernachlässigung der auf das Fahrzeug wirkenden Kräfte beschreibt.

Folgende ist ein Datenfluss des Kinematikmodells.

Ziel des Kinematikmodells ist es aus der Sollgeschwindigkeit und aus dem Sollenkwinkel des Fahrzeugs alle benötigten Variablen zur Beschreibung der Bewegungsgleichung zu bestimmen. Kinematikmodells besteht aus 3 Hauptblöcke:PSI bestimmen, BETA bestimmen und Transformation. Indem Geschwindigkeit und Lenkwinkel als Eingänge sind. Beim Block PSI-Berechnung hängig Winkels Ψ von Geschwindigkeit, Lenkwinkel δ und Achsabstand ab. Die Rückgabewerte der PSI-Berechnung ist die Winkelgeschwindigkeit Ψ und der Winkel Ψ , der sich durch das integrieren von Ψ ergibt. Der Schwimmwinkel β ist abhängig von dem Achsabstand, dem Abstand von der hinteren Achse bis zum Fahrzeugschwerpunkt und von dem Lenkwinkel. Als Rückgabewerte der BETA-Berechnung sind Winkelgeschwindigkeit und Winkel. Die Rückgabewerte aus PSI bestimmen, BETA bestimmen verbinden mit Transformation, die die Koordinatentransformation aus dem Fahrzeugkoordinatensystem in das Intertialkoordinatensystem beschreibt. Die Ausgabewerte des Funktionblocks „Koordinatentransformation“ sind die gefahrene Strecke und die Geschwindigkeit in X- und Y-Richtung.

ToWorkspace

Darstellung

Gemeinsame Modulle in beiden Modi

FAMO

Folgende ist ein Datenfluss für den Fahrtmodus.

Fahrtmodus legt fest aus welcher Quelle das Fahrzeug die aktuelle Sollgeschwindigkeit und den Solllenkwinkel wählt. Für jede Quelle gibt 3 Möglichkeit die Geschwindigkeit und der Lenkwinkel des BSF und des AEP Moduls oder die Sollwerte können manuell durch eine Variable festgelegt werden. Indem sie durch den Schalten mit den Quellen verbinden. Es gibt jedoch die Möglichkeit aus dem AEP Modul durch Lenkwinkelschalter während der Fahrt zwischen dem Sollenkwinkel des BSF Moduls auf den des AEP Moduls umzuschalten. Diese Variable wird über den Bus vom AEP Modul in das FAMO Modul übergeben.


Zähler

SAB

OSE

BSF

AEP

Zusammenfassung

Die Softwarearchitektur ist für die andere Gruppe ein besseres Verständnis vom autonomen Fahrzeug verantwortlich, aber nach dem Gespräch wird dieses Thema von anderem Thema ersetzt, leider ist nicht alles fertig.