\documentclass[fontsize=12pt,draft=false]{scrartcl}

%%% PACKAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\usepackage[english]{babel}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage[inline]{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{parskip}  % makes end of paragraphs use an empty line

%%% GLOSSARY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[toc,xindy]{glossaries} % needs to be loaded after the inclusion of hyperref!
\newglossaryentry{Leading Vehicle}{
  name=LeadingVehicle,
  description={Modelauto an der Spitze einer bestehenden Kolonne}
}
\newacronym{LV}{LV}{\gls{Leading Vehicle}}

\newglossaryentry{Follower Vehicle}{
  name=FollowerVehicle,
  description={Modelauto in einer bestehenden Kolonne, welches aber nicht
               an erster Position fährt.}
}
\newacronym{FV}{FV}{\gls{Follower Vehicle}}

\newglossaryentry{Platoon-Speed}{
  name=PlatoonSpeed,
  description={Vom \gls{LV} vorgegebene Geschwindigkeit der Kolonne.}
}
\newacronym{PS}{PS}{\gls{Platoon-Speed}}

\newglossaryentry{Inner-Platoon-Distance}{
  name=InnerPlatoonDistance,
  description={Vom \gls{LV} vorgegebener Abstand zwischen Fahrzeugen
               innerhablb der Kolonne.}
}
\newacronym{IPD}{IPD}{\gls{Inner-Platoon-Distance}}

\makeglossaries % needs to be set after the inclusion of hyperref!
%%% BIBTEX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[ backend=bibtex,
             sorting=nty,
             maxbibnames=50,
             maxcitenames=8,
             style=alphabetic]{biblatex}
\bibliography{../literature.bib}
\DeclareFieldFormat{labelalpha}{\thefield{entrykey}}
\DeclareFieldFormat{extraalpha}{}

%%% SETTINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setlength\parindent{0pt} % no indentation

%%% META INFORMATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Hochautomatisiertes Fahren}
\subtitle{Lastenheft}
\author{Gruppe A}

%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
  
\maketitle
\tableofcontents

\section{Projektbeschreibung}
Das Projekt soll automatisches Kolonnenfahren für Modellautos realisieren

\subsection{Organisation}
Wird in drei Gruppen umgesetzt, welche hauptsächlich in 
paralleler, kooperativer Arbeit agieren. Die Gruppen werden mit
\textit{Gruppe A}, \textit{Gruppe B} und \textit{Gruppe C} bezeichnet.

Jeder Gruppe ist ein Modellauto zugeordnet, ein viertes Modellauto steht
als Ersatz zur Verfügung.

Dieses Dokument basiert auf \cite{CrESt} und den darin verwendetet Bezeichnungen
und beschriebenen Use-Cases.

Während der Entwicklung sollte auf größtmögliche Konformität mit dem
bestehenden Projekt der Assystem geachtet werden.

\subsection{Zielvorstellungen}
In diesem Abschnitt sollen Beispielszenarien beschrieben werden,
welche durch das fertige System durchlaufen werden können soll.
Dabei werden drei verschiedenen Ausbaustufen definiert.
\begin{enumerate} %% TODO this should be some kind of mico TOC
  \item Ausbaustufe 1 - minimal Szenario
  \item Ausbaustufe 2 - ??
  \item Ausbaustufe 3 - ??
\end{enumerate}

\subsubsection{Ausbaustufe 1 - minimal Szenario}
The three cars are placed on the start line standing in a line behind each other. All three cars are already members of the same platoon. The car standing at the front is already chosen as the leader of the platoon. There is exactly one straight lane and the platoon members are the only vehicles on the route. At some point the leader is given a remote signal to start driving. The whole platoon then starts driving collectively. That means everyone is driving in the same lane, the same direction and the same speed while maintaining constant distance between each other. Eventually an obstacle is placed in front of the platoon blocking the platoons path. Upon reaching the obstacle the whole platoon stops while still maintaining the constant distance between each other. 

\subsubsection{Ausbaustufe 2 - Leave Platoon}
The same scenario as 1 however before the platoon reaches the obstacle the last car is given a remote signal to leave the platoon. The last car will then brake. The other two cars keep driving as a platoon until they reach the obstacle.

\subsubsection{Ausbaustufe 3 - Join Platoon}
The same scenario as 1 however only two cars are the members of the platoon. They are also the only vehicles on the road. At some point the third car will be placed at the starting line and given a remote signal to drive. The third car drives faster than the platoon, eventually catching up to them. When it reaches the platoon it will join the platoon. Therefore it drives in the same lane, the same direction and the same speed as the platoon while maintaining constant distance to his precessor. Eventually the platoon consisting of now three members will reach the obstacle and stop.

\subsubsection{Ausbaustufe 4 - looped route}
The same as scenario 1 however the route is not a straight line but a circle.

\section{Meilensteinplanung}
Das Projekt sieht die folgenden grobe Meilensteine vor.

\begin{enumerate}
  \item Anfang Dezember
    \begin{itemize}
      \item Fertigstellung der Modellautos
      \item Fertigstellung des Platooning-Protokolls
    \end{itemize}
  \item Anfang Januar 
    \begin{itemize}
      \item Fertigstellung der Systemarchitektur
      \item 
    \end{itemize}
  \item Anfang Februar
    \begin{itemize}
      \item Fertigstellung der System
    \end{itemize}
\end{enumerate}


Nach dem erreichen eines Meilensteins durch alle
Gruppen, findet eine vergleichende Bewertung der Umsetzungen
zwischen den Gruppen statt. Im Sinne des Projektes können an Hand
dieser Vergleiche einzelne Komponenten, zwischen den Gruppen
ausgetauscht werden, bevor diese mit der Entwicklung fortfahren.

\section{Fachliche Anforderungen}
\subsection{Anforderungen an das allgemeine Fahrzeugverhalten (R-V-XX)}


\subsubsection{R-V-10 Emergency Stop}
Zu jedem Zeitpunkt muss das Fahrzeug in der Lage sein, aktuelle
Berechnungen und Aktionen abzubrechen und ein Nothalt durchzuführen.
Dabei soll das Fahrzeug schnellst möglich in den Stillstand versetzt
werden, ohne dabei Kollisionen zu verursachen.

Ein Emergency Stop muss sofort als Broadcast an alle Fahrzeuge
kommuniziert werden.

\subsubsection{R-V-20 Hindernis Erkennung}
Ein Fahrzeug muss vor sich befindliche Hindernisse (evtl. auch andere Fahrzeuge)
erkennen und deren relative Position und Geschwindigkeit bestimmen können.

\subsubsection{R-V-20 W-LAN Kommunikation}

\paragraph{R-V-21 Aufbau der Verbindung zu einem Steuercomputer}
Die Fahrzeuge müssen mit einem Steuercomputer verbunden werden können.
Der Steuercomputer dient dazu durch Auslesen von log-Dateien,
die Funktion der Fahrzeuge zu überwachen
und Nachrichten des Platooning-Protokolls in seinem Namen, oder
stellvertretend für jedes andere Fahrzeug zu verschicken.

\paragraph{R-V-22 Aufbau der Verbindung zu anderen Fahrzeugen}
Die Fahrzeuge müssen ihre Intention eine Kolonne zu bilden
umliegenden Fahrzeugen per W-LAN mitteilen können.


\subsection{Anforderungen an das \texorpdfstring{\gls{LV}}{LV} (R-LV-XX)}

\subsubsection{R-LV-10 Ermittlung/Festlegung der Kolonnengeschwindigkeit}
Das \gls{LV} muss aus den Abständen zu Hindernissen, oder voran fahrenden
Fahrzeugen eine Kolonnengeschwindigkeit ermitteln und diese allen \gls{FV}
mitteilen.
Wird ein festzulegender kritischer Grenzwert für die Geschwindigkeit
unterschritten, so wird das Emergency-Stop-Signal gebroadcasted.

\subsubsection{R-LV-10 Ermittlung/Festlegung des Kolonnenabstandes}
Das \gls{LV} muss aus der Kolonnengeschwindigkeit,
den Abständen zu Hindernissen, oder voran fahrenden
Fahrzeugen einen Kolonnenabstand ermitteln und diese allen \gls{FV}
mitteilen.
Wird ein festzulegender kritischer Grenzwert für die Abstände unterschritten,
so wird das Emergency-Stop-Signal gebroadcasted.

\subsection{Anforderungen an die \texorpdfstring{\gls{FV}}{FV} (R-FV-XX)}

\subsubsection{R-FV-10 Halten der Kolonnengeschwindigkeit}
Ein \gls{FV} muss in der Lage sein eine vom \gls{LV} vorgegebene
Geschwindigkeit zu halten.

Dabei müssen Ungenauigkeiten der Motoren
und Sensoren durch individuelle Korrekturen ausgeglichen werden.
Die Korrekturen werden gespeichert, bei erneuter Vorgabe einer
Geschwindigkeit automatisch angewendet und optimiert.

Wird nach Änderung der vom \gls{LV} vorgegebenen Geschwindigkeit
diese (innerhalb einer Toleranz) erstmalig für einen gewissen (kurzen)
Kontrollzeitruam gehalten, so wird die erfolgreiche
Umsetzung der Geschwindigkeitsänderung dem \gls{LV} mitgeteilt.

\subsubsection{R-FV-20 Halten des Kolonnenabstandes}
Ein \gls{FV} muss in der Lage sein ein vom \gls{LV} vorgegebenen
Abstand zu seinem voran fahrenden Fahrzeug einzurichten und zu halten.

Zum nachfolgenden Fahrzeug wird keine Abstandsprüfung vorgenommen.

Um eventuelle Korrekturen des Abstandes vorzunehmen darf das \gls{FV}
von der vorgegeben Kolonnengeschwindigkeit abweichen.
Je nach Ausbaustufe sollte eine möglichste glatte Funktion für die
Geschwindigkeitskorrektur gefunden werden, abhängig von den Parametern
\glqq eigene Geschwindigkeit\grqq,
\glqq Geschwindigkeit des voran fahrenden Fahrzeugs\grqq und
\glqq aktuellem Abstand \grqq.

Wird nach Änderung des vom \gls{LV} vorgegebenen Abstandes
dieser (innerhalb einer Toleranz) erstmalig für einen gewissen (kurzen)
Kontrollzeitruam gehalten, so wird die erfolgreiche
Umsetzung der Abstandsänderung dem \gls{LV} mitgeteilt.

\subsection{Anforderungen an das Platooning-Protokoll (R-PP-XX)}

\subsubsection{R-PP-10 Mitteilung: Emergency-Stop}

\subsubsection{R-PP-20 Auswahl der Kolonnenführung (\texorpdfstring{\gls{LV}}{LV}) }

\subsubsection{R-PP-30 Mitteilung zur Bereitschaft am Kolonnenfahren}

\subsubsection{R-PP-40 Mitteilung zur Austritt aus der Kolonne}
Case: Platoon-Leader verlässt die Kolonne!?



% Glossary
\glsaddall
\printglossaries
% Biblography
\phantomsection
\addcontentsline{toc}{section}{Bibliography}
\printbibliography
  
\subsubsection{R-PP-50 Mitteilung bei erfolgreicher Geschwindigkeitsänderung}
\subsubsection{R-PP-60 Mitteilung bei erfolgreicher Abstandsänderung}
Case: Platoon-Leader verlässt die Kolonne!?



% Glossary
\glsaddall
\printglossaries
% Biblography
\phantomsection
\addcontentsline{toc}{section}{Bibliography}
\printbibliography
  
\end{document}
