-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKapitel2.tex
220 lines (218 loc) · 21.6 KB
/
Kapitel2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
\section{Parameterschätzung}
Um die unbekannten Parameter eines Modells schätzen zu können, wird zunächst ein valides Modell und einen Experimentierstand benötigt. Das Modell wird dem Bericht oTToCAR \cite[Seite 12]{VikAnd} entnommen, welches dort auch schon auf seine grundlegende physikalische Korrektheit mit Simulationen überprüft wurde. Das gegebene Modell besitzt dabei zwei Arten von Parametern. Zum einen sind es direkt bestimmbare Parameter, zum anderen sind es Parameter die nur durch modellbasierte Schätzverfahren ermittelt werden können. Um die Simulation mit dem realen Fahrzeug in seinem Verhalten vergleichen zu können, werden dabei Messungen von allen Zuständen benötigt. Da diese Experimente jedoch nicht immer einfach zu realisieren sind und um den technischen Aufwand der Messungen so gering wie möglich zu halten, sollten die zu messenden Zustände beschränkt und so gewählt werden, dass:
\begin{itemize}
\item sie charakteristisch für das Verhalten sind
\item durch sie andere Zustände bestimmt werden können
\item die wichtigsten Regelgrößen auch direkt gemessen werden
\end{itemize}
\subsection{Direkte Messmethoden}
Die direkte Bestimmung von Parametern erfolgt weitgehend durch die Messung der selbigen, oder deren einfache Berechnung durch weitere messbare Größen. Im Falle der Eingangsgröße $u_{1}$, dem Einschlagwinkel der Räder, musste zum Beispiel das Ansteuerungssignal des Servomotors in einen Winkel für die Räder umgerechnet werden. Das Ansteuerungssignal ist hierbei ein 256-stufiges PWM-Signal, welches in eine Winkelangabe umgerechnet werden muss. Für die Versuchsanordnung wurde das Fahrzeug zuerst so erhöht, dass die Räder nicht mehr auf dem Boden auflagen. Diese Vorgehensweise war nötig, da bei Kontakt der Räder mit dem Boden bei einem stehenden Fahrzeug der Haftwiderstand so hoch ist, dass sich nur eine kleinere Winkeländerung ergeben und die Messung verfälschen würde. Denn bei schneller Fahrt verringert sich dieser Widerstand auf nahezu Null und kann somit vernachlässigt werden. Für die Messung wurde längs an das linke Vorderrad eine Verlängerung befestigt und für jede Servoeinstellung eine Winkelauslenkung gemessen und die Kalibrierung des Servomotors vorgenommen.
\begin{figure}[H]
\centering
\includegraphics[width=5cm]{Bilder/u1Messung.png}
\caption[Messung der Relation PWM-Stufe Servo zu Einschlagwinkel Räder]
{Messung der Relation PWM-Stufe des Servos zum Einschlagwinkel der Räder (aus \cite{TT01} und \cite{Wim})}
\label{pict:u1Mess}
\end{figure}
Als Ergebnis dieses Experimentes kam heraus, dass die Erhöhung um eine PWM-Stufe des Servomotors konstant eine Drehung der Räder um 0.0028 rad entspricht. Andere Parameter konnten durch Recherche ermittelt werden, da sie sehr gebräuchliche Kenngrößen darstellen, wie z.B. die Dichte der Luft. Desweiteren wurde das Trägheitsmoment durch die Arbeit \cite{TimMar} mithilfe eines CAD-Modells vom Fahrzeug berechnet. In der Tabelle \ref{tab:Pardir} werden alle diese Größen diesbezüglich aufgeführt.
\begin{table}[H]
\centering
\begin{tabularx}{\columnwidth}{p{8cm}|p{4cm}|p{4cm}}
\textbf{Physikalische Größe} & \textbf{Exakter Wert}& \textbf{Einheit}\\\hline\hline
\rule{0pt}{1mm} & &\\
Dichte der Luft & $\rho_{L}=1,204$ & $[\text{kg s}^{-1} ]$\\
Erdbeschleunigung& $g=9,806$ & $[\text{m s}^{-2}]$\\
Masse& $m=2,8$ & $[\text{kg}]$\\
Radabstand& $l=0,257$ & $[\text{m}]$\\
Radius des Rades & $r=0,0335$ & $[\text{m}]$\\
Übersetzungsfaktor Drehzahl Motor $\rightarrow$ Räder & $\epsilon=5,52$ & $[\text{-}]$
\end{tabularx}
\caption{Direkt bestimmbare Parameter \label{tab:Pardir}}
\end{table}
\subsection{Indirekte Messmethoden}
Die verbliebenen zu ermittelnden Parameter erfordern weit umfangreichere Messungen, wie zum Beispiel die Parameter für den Rollwiderstand und die Schräglaufübersetzung der Räder, die sich auch nicht direkt messen lassen. Für die Suche nach geeigneten Parametersätzen wird dabei ein Schätzverfahren benötigt, das anhand von anderen direkt messbaren Größen die von den gesuchten Parametern abhängig sind, die zu bestimmenden Parameter indirekt ermitteln kann. Dabei sind die wohl charakteristischsten Messgrößen des Fahrzeuges seine Position und Geschwindigkeit. Anhand der gegebenen Zustandsgleichungen und aus logischen Überlegungen erkennt man eine starke Abhängigkeit zu allen gesuchten Parametern. In diesem Abschnitt wird sich mit der Frage beschäftigt, wie die Messung dieser Zustände umzusetzen ist und in der nächsten Passage wird erklärt, wie danach aus den gewonnen Messdaten die noch fehlenden Parametern bestimmt werden.
\subsubsection{Geschwindigkeitsmessung}
Die Geschwindigkeitsmessung wird hierfür intern vom Fahrzeug bereitgestellt. Sie wird dabei ähnlich wie an einem Fahrrad realisiert, indem Neodymmagnete auf alle Räder befestigt und durch Hall-Sensoren die Bewegungen der Magnete erfasst werden. Denn das Magnetfeld am Hall-Sensor ändert sich, sobald die Räder anfangen zu rotieren und die Änderung des Magnetfeldes kann schließlich direkt in eine Geschwindigkeit umgerechnet werden. Die Vorteile der Geschwindigkeitsmessung an jedem einzelnen Rad sind die höhere Auflösung, sowie eine bessere Messung der Geschwindigkeiten in Kurven. Da nämlich das Modellauto über ein Differentialgetriebe verfügt, bewegen sich die Räder in Kurvenfahrten unterschiedlich schnell, sodass die tatsächliche Geschwindigkeit des Fahrzeuges gemittelt werden muss.
\subsubsection{Entwicklung eines Tracking-Systems zur Positionsmessung}
Die Positionsbestimmung hingegen wird durch eine Kamera realisiert, die auf ein vorher definiertes Testfeld ausgelegt werden muss. Die technischen Anforderungen an das Tracking sind dabei ein ausreichend großes Testfeld, sowie eine geeignete Kamera. Die Größe des Parcours war jedoch durch die räumlichen Gegebenheiten stark begrenzt, sodass der Aufbau lediglich eine Fläche von 5$\times$5 Metern misst. Die Wahl der Kamera hängt dabei von verschiedenen Anforderungen ab, die vor einer Installation des Systems klar definiert werden müssen. In dem Fall eines sich schnell bewegenden Fahrzeuges ist die Bilderanzahl pro Sekunde einer Kamera sehr hoch zu gewichten, um Bewegungsunschärfe und fehlende Bewegungen zwischen zwei Bilder zu minimieren, welche die Messungen verfälschen können. Desweiteren spielt die Auflösung für Positionsgenauigkeit und die Schnittstellen der Kamera für hohe Datenraten und Netzwerkfähigkeit eine große Rolle. Nach dem Aufbau des Parcours und der Installation des Tracking-Systems, muss die Kamera kalibriert werden. Die Kalibrierung ist notwendig, um die Symmetrien die durch den "`Fischaugeneffekt"' der Linse und der perspektivischen Verzerrung entstehen wiederherzustellen. Ein gängiges Verfahren zur Beseitigung der Linsenkrümmung und der perspektivischen Verzerrung ist die Kalibrierung mittels Schachbrettmuster. Die Beseitigung des Effektes der Linsenkrümmung wird mittels einer Vorwärtstransformation der Pixel des entkrümmten Bildes in das gekrümmte realisiert \cite{Zhang}. Der Algorithmus dahinter funktioniert folgendermaßen:\par\medskip
\begin{enumerate}
\item Generierung der Kamera-Matrix K, oder auch Matrix der intrinsischen Parameter mithilfe der "`Camera Calibration Toolbox for Matlab"' \citep{Calib}. Dabei charakterisieren die Einträge $f_x$, $f_y$ die Brennweite und $c_x$, $c_y$ bilden den Mittelpunkt der Linse auf dem Kamerabild.
\begin{align*}
K = \begin{bmatrix}
f_x & 0 & c_x\\
0 & f_y & c_y\\
0 & 0 & 1
\end{bmatrix}
\end{align*}
\item Normierung der Kamera-Matrix (Koordinate z' entfällt):
\setcounter{MaxMatrixCols}{20}
\begin{gather*}
\begin{pmatrix} x'\\ y'\\ z' \end{pmatrix} = K^{-1} \cdot
\begin{bmatrix}
n_{h,1} & n_{h,1} & ... & n_{h,1} & n_{h,1} & n_{h,2} & ... & n_{h,2} & ... & n_{h,i}\\
n_{b,1} & n_{b,2} & ... & n_{b,j-1} & n_{b,j} & n_{b,1} & ... & n_{b,j} & ... & n_{b,j}\\
1 & 1 & ... & 1 & 1 & 1 & ... & 1 & ... & 1\\
\end{bmatrix} \\[1mm] \text{mit} \\[1mm]
\begin{matrix}
n_{h} = 1,2,3,..., \text{Höhe der Kameraauflösung}\\
n_{b} = 1,2,3,..., \text{Breite der Kameraauflösung}
\end{matrix}
\end{gather*}
\item Anwendung eines nichtlinearen Modells für die radiale Linsenkrümmung, um die verzerrten Koordinaten abzubilden. Dabei stammen die Parameter $k_1$,$k_2$ (Koeffizienten der radialen Verzerrung) und $p_1$,$p_2$ (Koeffizienten der tangentialen Verzerrung) ebenfalls aus Schritt 1 und wurden mit \citep{Calib} berechnet.
\begin{gather*}
{x}'' = x'\cdot \left ( 1+k_1\cdot r + k_2\cdot r^2 \right )+2 p_1\cdot x'y'+p_2\cdot \left ( r+2{x}'^2 \right )\\
{y}'' = y'\cdot \left ( 1+k_1\cdot r + k_2\cdot r^2 \right )+2 p_2\cdot x'y'+p_1\cdot \left ( r+2{y}'^2 \right )\\[1mm] \text{mit} \\[1mm]
r=\sqrt{{x}'^2+{y}'^2}
\end{gather*}
\item Nun lassen sich die Projektionen \textit{u} und \textit{v} erstellen, durch deren Anwendung mittels einer linearer Interpolation auf das Originalbild ein entzerrtes Bild erstellt werden.
\begin{align*}
u = f_x \cdot {x}'' + c_x\\
v = f_y \cdot {y}'' + c_y
\end{align*}
\end{enumerate}
\begin{figure}[H]
$\begin{minipage}[b]{7cm}
\centering
\includegraphics[scale=0.3]{Bilder/VerzerrtesSchachbrett.png}
\caption{Rohdaten der Kamera}
\label{fig:verz}
\end{minipage}
\hspace{3cm}
\begin{minipage}[b]{7cm}
\centering
\includegraphics[scale=0.3]{Bilder/UnzerrtesSchachbrett.png}
\caption{Kamerabild nach der Entzerrung}
\label{fig:unverz}
\end{minipage}$
\end{figure}
Anschließend wird die perspektivische Ansicht in eine orthogonale Draufsicht projiziert. Dafür müssen die Ecken eines Rechtecks, bzw. die Ecken des Parcours (falls alle Winkel rechteckig) auf dem Bild markiert und eine homographische Matrix gebildet werden, damit ein sogenannter "`Top View"' des Bildes erstellt werden kann. Diese Vorgehensweise ist bekannt unter dem Namen "`Inverse Perspective Mapping"' (\cite{Galway} und \cite{Peter}):
\begin{enumerate}
\item Generierung der extrinsischen Matrix $T_{ext}$ mithilfe von \citep{Calib}. Die Einträge stehen hierbei für die Translation in die entsprechende Richtung.
\begin{align*}
T = \begin{bmatrix}
T_x \\
T_y \\
T_z
\end{bmatrix}
\end{align*}
\item Ermittlung der Eckpunkte $P_1$, $P_2$, $P_3$ und $P_4$ in Pixelkoordinaten des Rechtecks/Parcours und die Matrix der Seitenlängenverhältnisse in Pixeln oder Meter.
\begin{align*}
P =& \begin{bmatrix}
P_1 & P_2 & P_3 & P_4 \\
1 & 1 & 1 & 1
\end{bmatrix} \text{\quad mit \quad} P_n = \binom{ x }{ y }\\[1mm]
L =& \begin{bmatrix}
0 & 0 & d\left(P_1 \rightarrow P_2 \right) & d\left(P_3 \rightarrow P_4 \right)\\
0 & d\left(P_2 \rightarrow P_3 \right) & d\left(P_4 \rightarrow P_1 \right) & 0\\
0 & 0 & 0 & 0
\end{bmatrix}
\end{align*}
\item Rotation um den Winkel $\alpha$ und Translation der Bildpunkte relativ zur Kameraposition mit anschließender Normierung und der Projektion in die Zielkoordinaten.
\begin{align*}
R =& \begin{bmatrix}
\cos\left(\alpha \right) & -\sin\left(\alpha \right) & 0 \\
\sin\left(\alpha \right) & \cos\left(\alpha \right) & 0 \\
0 & 0 & 1
\end{bmatrix} \\[1mm]
X_{rt} =& R \cdot L + T * \begin{bmatrix}
1 & 1 & 1 & 1
\end{bmatrix} \\[1mm]
X_{Target} =& K \cdot X_{rt}^{-1} \cdot \begin{bmatrix}
X_{rt|3,1} & ... & X_{rt|3,4} \\
X_{rt|3,1} & ... & X_{rt|3,4} \\
X_{rt|3,1} & ... & X_{rt|3,4}
\end{bmatrix}
\end{align*}
\item Mit der gewonnenen Projektion $X_{Target}$ lassen sich mit MATLAB unter der Verwendung von der Funktion \textit{homography2d} \cite{Peter}, \textit{maketform} und \textit{imtransform} \cite{Steve} das Bild im Anschluss perspektivisch entzerren.
\end{enumerate}
\begin{figure}[H]
$\begin{minipage}[b]{7cm}
\centering
\includegraphics[scale=0.26]{Bilder/PerspektiveCar.png}
\caption{Perspektivische Ansicht des Parcours}
\label{fig:Pers}
\end{minipage}
\hfill
\begin{minipage}[b]{7cm}
\centering
\includegraphics[scale=0.35]{Bilder/NonPerspektiveCar.png}
\caption{Top-View Projektion des Parcours}
\label{fig:NonPers}
\end{minipage}$
\end{figure}
Nach der Kalibrierung der Kamera stellt sich die Frage nach der Art der Positionserfassung. Die erste Lösung war eine Farberkennung, in der zwei Scheiben mit jeweils einer anderen Farbe auf den vorderen und hinteren Teil des Fahrzeuges befestigt wurden. Dadurch können die Ausrichtung und der Mittelpunkt des Fahrzeuges bestimmt werden. Diese Methode war jedoch anfällig für Farbreflexionen auf der Fahrbahn, sodass die Farbwiedergabe, Belichtungszeit und Raumbeleuchtung mitunter vom Stand der Sonne abhängig war und ständig Neueinstellungen nach sich zog. Als zweite Lösung wurde im Team die Positionsbestimmung durch Infrarot-LEDs erarbeitet. Dabei wurde die Kamera um einen Filter erweitert der nur noch infrarotes Licht durchlässt. Am Fahrzeug wurden am Vorderteil zwei und hinten eine Infrarot-LED angebracht und deren Position im Bild bestimmt. Durch diese Vorgehensweise wird der Rechenaufwand für die Bildverarbeitung auf ein Drittel reduziert, da keine Farbinformationen mehr gespeichert werden. Denn vorher waren die Farbinformationen in einer B$\times$H$\times$3 Matrix kodiert, welche sich durch eine Schwarz-Weiß-Kodierung auf eine B$\times$H$\times$1 Matrix reduzierte. Zudem ist dieses Verfahren weniger störanfällig, da die einzigen infraroten Lichtquellen die LEDs sind. Somit entfällt auch der Aufwand für die Neueinstellungen der Kamera. Es hat sich sogar gezeigt, dass die Kamera dadurch eine geringere Belichtungszeit benötigt um die LEDs zu erkennen, was wiederum die Anzahl der Bilder pro Sekunde erhöhte.
%\begin{figure}[H]
%\centering
%\includegraphics[scale=0.4]{Bilder/NonPerspektiveCarLight.png}
%\caption{Top-View Projektion des Parcours mit Infrarot-Filter}
%\label{fig:NonPersIR}
%\end{figure}
\subsubsection{Synchronisierung interner und externen Messdaten}
Nach der Aufnahme der externen und internen Messwerte, müssen diese für die Parameterschätzung aufbereitet werden. Die Aufnahme der Messungen erfolgt dabei durch das Framework ROS (für Robot Operating System), welches alle Messungen über einen Server koordiniert und den Zeitpunkte einer jeder Messung protokolliert. Da die externen Positionsdaten der Kamera einen Takt von 50 Hz und die internen Sensoren der Geschwindigkeitsmessungen mit einem Takt von 100 Hz laufen, sind diese nicht koexistent. Um diese Daten miteinander zu synchronisieren wurde die Methode der linearen Approximation gewählt, um zu jedem Zeitpunkt Messdaten vorrätig zu haben. Dies ermöglicht einen unkomplizierten Umgang der Daten im Schätzverfahren und sorgt für eine bessere Vergleichsbasis zwischen realen und simulierten Zustände. \\
\begin{figure}[H]
\centering
\includegraphics[scale=0.65]{Bilder/Workflow.png}
\caption{Workflow des Tracking-Systems}
\label{fig:Track}
\end{figure}
\subsection{Schätzverfahren}
Unter der Verwendung der gemessenen Zustände $y_{mess} = \left \{x_1, x_2, \phi, \dot{\phi}, v \right \}$ mit $x_1, x_2$ für die Position, $\phi, \dot{\phi}$ für die Winkelauslenkung und die Winkelgeschwindigkeit, sowie $v$ für die Geschwindigkeit des Fahrzeuges im Weltkoordinatensystem, lassen sich durch die Wahl einer geeigneten Kostenfunktion und Optimierungsverfahrens die gesuchten Parameter identifizieren. Als Kostenfunktion wurde die Differenz aus gemessenen und simulierten Zustände mit entsprechenden Gewichtungen gewählt und diese zusätzlich quadriert, um die Kostenfunktion annähernd parabolisch darzustellen. Die simulierten Zustände werden anhand dem Modell aus \cite{VikAnd} und mit einem ODE Solver, basierend auf einem expliziten Runge-Kutta-Verfahren (\textit{ode45}) in Matlab ermittelt und in dem Vektor $y_{sim} = \left \{x_{sim|1}, x_{sim|2}, \phi_{sim}, \dot{\phi}_{sim}, v_{sim} \right \}$ zusammengefasst. Mit den synchronisierten Daten aus den Messreihen lassen sich einzelne Zeitpunkte extrahieren und diese in der Simulation explizit angeben, sodass zu den ausgewählten Zeitpunkten in der Simulation auch reale Messwerte existieren. Die Gewichtungen $q_k$ für jeden Zustand wurden dabei so gewählt, dass die Güte eines simulierten Zustandes zu gleichen Teilen in die folgende Kostenfunktion mit einfließt:
\begin{align*}
J = \sum_{t=0}^{t_{end}}\sum_{k = 1}^{5} q_k\cdot \left (y_{mess, k}\left ( t \right ) - y_{sim, k}\left ( t \right ) \right )^2
\end{align*}
\begin{wrapfigure}{r}{8.5cm}
\pgfplotstableread[col sep=comma]{Plotdaten/GenerationLokal.dat} \GenerationLokal
\centering
\begin{tikzpicture}
\begin{axis}[
xlabel={Generation},
ylabel={Gütemaß},
width=0.4\paperwidth, height=0.2\paperheight,
xmin=1, xmax=20,
ymin=0
]
\foreach \yindex in {1,...,100}{
\addplot+[mark=none] table [x index=0,y index=\yindex] from \GenerationLokal;
}
\end{axis}
\end{tikzpicture}
\caption{Verlauf der Kostenfunktion für alle Partikel}
\label{pict:PSOallePart}
\end{wrapfigure}
Zur Optimierung wurden zwei Ansätze verfolgt um ein Optimum gewährleisten zu können. Zum einen wurde die Matlab interne Funktion \textit{fmincon} und zum anderen ein selbst entwickelter Partikel-Schwarm-Algorithmus nach \cite{PSO} verwendet. Dabei galt es den zu schätzende Parametervektor $p=\left \{ \gamma, f_R, C_{\alpha}, T_V\right \}$, bestehend aus dem Verhältnis der Kraftübertragung zwischen Vorder- und Hinterräder $\gamma$, dem Rollwiderstand $f_R$, der Schräglaufübersetzung $C_{\alpha}$ und der zeitlichen Verzögerung des Lenkeinschlages $T_V$ zu bestimmen. Um die Dimension des Vektors zu reduzieren, wurde schon in \cite{VikAnd} angedacht den Rollwiderstand allein durch eine Geradeausfahrt zu schätzen, da die anderen Parameter lediglich Einfluss auf die Zustände während Kurvenfahrten besitzen. Diese Trennung der Parameterschätzung ermöglichte es, ein optimales $f_R$ zu finden, sodass in den Kurvenfahrten alle weiteren Parameter bestimmt werden konnten und beide Optimierungsverfahren stets in das gleiche Optimum liefen. In Abbildung \ref{pict:PSOallePart} wurde als Beispiel ein solcher Optimierungsaufruf durch den Partikel-Schwarm-Algorithmus dargestellt. Zu sehen ist der Verlauf der Kostenfunktion über jede neue Generation von Partikeln bei einer Geradeausfahrt für den Parameter $f_R$. Dabei wird sehr gut die Konvergenz vom Algorithmus ersichtlich.
\subsection{Ergebnisse}
In der Anwendung der Schätzverfahren revidierten sich einige der Annahmen aus \cite{VikAnd} und es mussten teilweise neue getroffen werden, um bessere Ergebnisse zu erreichen. Zum Beispiel wurde die Annahme getroffen, dass die Schräglaufübersetzung $C_{\alpha}$ von Vorder- und Hinterräder gleich ist. Jedoch ergaben sich bei einer Trennung der Schräglaufübersetzung von Vorder- und Hinterräder eindeutig bessere Ergebnisse. Zudem musste der Eingang des Motordrehmomentes um ein weiterer Parameter $\eta_M$ erweitert werden, um den Wirkungsgrad des Drehmomentes zu beschreiben, welches vom Motor erzeugt und auf die Räder geleitet wird. Somit ergaben sich folgende Parameter, die das Modell mit einer ausreichenden Genauigkeit beschreiben:
\begin{table}[H]
\centering
\begin{tabularx}{\columnwidth}{m{7cm}|m{4cm}|X}
\textbf{Physikalische Größe} & \textbf{Exakter Wert}& \textbf{Einheit}\\\hline\hline
\rule{0pt}{1mm} & &\\
Kraftverteilung Vorder- zu Hinterrad& $\gamma=0,5$ & $[\text{-}]$\\
Reibungskoeffizient& $f_R=1,857$ & $[\text{-}]$\\
Schräglaufübersetzung hinten& $C_{h,\alpha}=0,93$ & $[\text{-}]$\\
Schräglaufübersetzung vorn& $C_{v,\alpha}=1,1$ & $[\text{-}]$\\
Wirkungsgrad Drehmoment Motor $\rightarrow$ Räder& $\eta_M=0,55$ & $[\text{-}]$\\
Zeitl. Verzögerung von $u_{1}$& $T_{V}=0,1$ & $[\text{s}]$
\end{tabularx}
\caption{Ergebnisse der geschätzten Parameter \label{tab:ParSch}}
\end{table}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\node [anchor=south west,inner sep=0] at (0,0) {\includegraphics[scale=0.5]{Bilder/Schaetzung.png} };
\node[draw] at (11,8)
{
\setlength{\extrarowheight}{3pt}
\begin{tabular}{b{1cm}m{4.5cm}}
%\multicolumn{2}{c}{\tikz\draw [bblue,-,line width=0.3mm] (0,0) -- (1,0);} & Gemessene Positionsdaten \\
%\multicolumn{2}{c}{\tikz\draw [yyelow,dashed,line width=0.3mm] (0,0) -- (1,0);} & Simulierte Positionsdaten \\
\tikz\draw [bblue,-,line width=0.3mm] (0,0) -- (1,0); & Positionen des Fahrzeuges \\
\tikz\draw [yyelow,dashed,line width=0.3mm] (0,0) -- (1,0); & Simulierte Fahrt \\
\end{tabular}
};
\end{tikzpicture}
\caption{Reale Messwerte und simulierte Zustände im direkten Vergleich}
\label{fig:RealSim}
\end{figure}
In Abbildung \ref{fig:RealSim} wurden die Simulationsdaten mit den real gemessen Positionsdaten direkt gegenübergestellt. Die Fahrt einer Linkskurve wurde dabei mit einer Endgeschwindigkeit von $2\frac{\text{m}}{\text{s}}$ und einem konstanten Lenkeinschlag von ungefähr $15^\circ$ durchgeführt. Die Ergebnisse scheinen auf den ersten Blick nicht zufriedenstellend zu sein, da nach ungefähr drei Metern die Abweichung beider Kurven größer als die Fahrspurbreite wird. Die Gründe sind zum einen, dass das Modell die Realität nur unzureichend beschreibt und zum anderen das bei einer numerischen Berechnung eines nichtlinearen Differentialgleichungssystems stets Berechnungsfehler gemacht werden. Jedoch unter Berücksichtigung der Tatsache, dass im autonomen Fahrmodus die Kamera maximal zwei Meter voraus blicken kann, relativiert sich die Güte des Modells zu einer sehr guten Vorhersage für einen begrenzten Horizont. Da in jedem Schritt das Fahrzeug wieder auf die Trajektorie platziert wird, summiert sich somit der gemachte Fehler nur bis zum nächsten Messzeitpunkt und wird danach wieder auf Null zurückgesetzt. \\ \\
In einer zukünftigen Version vom "`oTToCar"' ist die Spurerkennung nicht mehr allein durch die Kamera-Wahrnehmung gegeben. Zusätzlich soll sich das Auto in einer Weltkarte zurechtfinden und die Pfade entlang der Fahrbahn weit im Voraus berechnet werden. Für dieses Verfahren reicht das Modell und die Parameter jedoch nicht mehr aus und müsste weiter verbessert werden.