diff --git a/doc/lastenheft/lastenheft.tex b/doc/lastenheft/lastenheft.tex index e0a2b06fba7588fe318ff381e79163707e9deaa2..72a92e26a9079adeae7f49c35cfd9ddd6e18c383 100644 --- a/doc/lastenheft/lastenheft.tex +++ b/doc/lastenheft/lastenheft.tex @@ -55,7 +55,7 @@ bestehenden Projekt der Assystem geachtet werden. \subsection{Stakeholder} wichtige Personen hier aufführen. -Verantworliche von Assystem u.a. +Verantwortliche von Assystem u.a. \section{Zielvorstellungen / Ausbaustufen} In diesem Abschnitt sollen Beispielszenarien beschrieben werden, @@ -66,19 +66,19 @@ Dabei werden drei verschiedenen Ausbaustufen definiert. \addcontentsline{toc}{subsection}{\nameref{AB:min}} \underline{Required Use-Cases:} \begin{itemize} - \item + \item \nameref{UC:createPlatoon} + \item \nameref{UC:runPlatoon} + \item \nameref{UC:showStatus} \end{itemize} 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. +The customer places an obstacle somewhere on the route and starts the whole scenario by sending a remote signal to the leader to start driving. +The whole platoon then starts driving collectively, i.e. everyone is driving in the same lane, the same direction and the same speed while maintaining constant \gls{IPD}. +Upon reaching the obstacle on the route the whole platoon stops while still maintaining the \gls{IPD}. -%bei schweren Störungen immer Emergency-Stop +Any kind of disruption, e.g. communication issues or other technical issues, causes an emergency-stop. %bei schweren Störungen immer Emergency-Stop \subsection*{Ausbaustufe - Setup-Distance}\label{AB:setupDist} \addcontentsline{toc}{subsection}{\nameref{AB:setupDist}} @@ -87,6 +87,9 @@ Upon reaching the obstacle the whole platoon stops while still maintaining the c \item \end{itemize} Anfangsabstand and Kolonnenabstand sind unterschiedlich + +Same as \nameref{AB:min}, but the initial distance between the cars differs from the set \gls{IPD}. + \subsection*{Ausbaustufe - Stop-Last-Car}\label{AB:stopCar} \addcontentsline{toc}{subsection}{\nameref{AB:stopCar}} \underline{Required Use-Cases:} @@ -96,39 +99,40 @@ Anfangsabstand and Kolonnenabstand sind unterschiedlich Fahrzeuge bleiben in Kolonne, 1 bleibt zurück (schert aus): Durch Signal von Kunde hält das letzte Fahrzeug an -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 same scenario as \nameref{AB:min} however before the platoon reaches the obstacle the customer sends a remote signal to the last car to leave the platoon. +The last car will then brake and halt. The other two cars keep driving as a platoon until they reach the obstacle. \subsection*{Ausbaustufe - Asynchronous-Start }\label{AB:asynStart} \addcontentsline{toc}{subsection}{\nameref{AB:asynStart}} \underline{Required Use-Cases:} \begin{itemize} - \item + \item \nameref{UC:joinPlatoon} \end{itemize} Kunde startet 3 Fahrzeuge nacheinander, diese bilden eine Kolonne -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. +The same scenario as \nameref{AB:min} however the customer starts each car one after another by sending remote signals. Before reaching the obstacle on the route the car at the front and the car in the middle create a platoon, establishing the former as the \gls{LV} and the latter as the \gls{FV}, and the last car then joins the platoon. +%The same scenario as 1 however only two cars are 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 predecessor. +Eventually the platoon - now consisting of three members - will reach the obstacle and stop. \subsection*{Ausbaustufe - Circle-Path}\label{AB:circle} \addcontentsline{toc}{subsection}{\nameref{AB:circle}} \underline{Required Use-Cases:} \begin{itemize} - \item + \item \nameref{UC:laneKeeping} \end{itemize} Alternative: Kreisstrecke! beliebig lange Fahrt Hindernis taucht dynamisch auf -The same as scenario 1 however the route is not a straight line but a circle. -%Organisation (Platton-creating/-running/-joining) während der Fahrt (dynamische Organisation) -%keine Feste Konfiguration, d.h. \gls{LV} abhängig von der Situation fesetgelegt +The same as scenario \nameref{AB:asynStart} however the route is not a straight line but circular allowing for an arbitrary long drive and the customer places the obstacle on the route at some point during the drive. The role of \gls{LV} is given to any one of the cars depending on the situation. +%Organisation (Platoon-creating/-running/-joining) während der Fahrt (dynamische Organisation) +%keine Feste Konfiguration, d.h. \gls{LV} abhängig von der Situation festgelegt \subsection*{Ausbaustufe - Change-\gls{IPD}}\label{AB:changeDist} \addcontentsline{toc}{subsection}{\nameref{AB:changeDist}} @@ -137,13 +141,24 @@ The same as scenario 1 however the route is not a straight line but a circle. \item \end{itemize} Kunde kann den Kolonnenabstand während der Fahrt ändern + +The same as scenario \nameref{AB:min} however the customer can change the \gls{IPD} during the drive. + \subsection*{Ausbaustufe - Turn-On-After-Start}\label{AB:asynStart-2} \addcontentsline{toc}{subsection}{\nameref{AB:asynStart-2}} \underline{Required Use-Cases:} \begin{itemize} - \item + \item \nameref{UC:joinPlatoon} \end{itemize} 2 Fahrzeuge fahren in Kolonne. Kunde bootet und startet 3. Fahrzeug, 3. Fahrzeug schließt sich der Kolonne an + +The same scenario as \nameref{AB:min} however only two cars are members of the platoon. +They are also the only vehicles on the road. +At some point the customer places the third car at the starting line, boots it and starts it. The third car drives faster than the platoon, eventually catching up to them. +Upon reaching 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 predecessor. +Eventually the platoon - now consisting of three members - will reach the obstacle and stop. + \subsection*{Ausbaustufe - Manual-Speed}\label{AB:changeSpeed} \addcontentsline{toc}{subsection}{\nameref{AB:changeSpeed}} \underline{Required Use-Cases:} @@ -154,14 +169,25 @@ Kunde kann die Geschwindigkeit von Fahrzeug 1, 2 und 3 bestimmen, so lange sie nicht in Kolonne fahren. Der Kunde kann Fahrzeug x in die Kolonne bringen. Wenn es in der Kolonne ist, reagiert es nicht mehr auf Geschwindigkeitsänderungswünsche… + +The same scenario as \nameref{AB:asynStart} however the customer can change the speed of each car as long as they are not driving in a platoon. The customer can bring each car into the platoon. As soon as a car becomes a member of the platoon, it ignores any request to change the speed by the customer. + \subsection*{Ausbaustufe - RC-Control}\label{AB:RCcontrol} \addcontentsline{toc}{subsection}{\nameref{AB:RCcontrol}} \underline{Required Use-Cases:} \begin{itemize} - \item + \item \nameref{UC:createPlatoon} + \item \nameref{UC:runPlatoon} + %\item \nameref{UC:followLV} ??? + \item \nameref{UC:showStatus} \end{itemize} 1 Fahrzeug wird ferngesteuert. Die anderen Fahrzeuge folgen. +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. +The platoon members are the only vehicles on the route. +The \gls{LV} is remote controlled with the rest of the platoon following its path. %Möglichkeit einem ferngesteuerten Auto zu folgen (bei fester Organisation)? %zwei spuren + ausweichen von Hindernissen auf einer Spur durch Spurwechsel @@ -216,8 +242,8 @@ Wenn es in der Kolonne ist, reagiert es nicht mehr auf Geschwindigkeitsänderung \item \nameref{RQ:leaveMsg} \end{itemize} -\subsection*{\texorpdfstring{\gls{UC}}{UC} - Kolonne auflösen}\label{UC:deltePlatoon} -\addcontentsline{toc}{subsection}{\nameref{UC:deltePlatoon}} +\subsection*{\texorpdfstring{\gls{UC}}{UC} - Kolonne auflösen}\label{UC:deletePlatoon} % in CrRST stand dissolvePlatoon +\addcontentsline{toc}{subsection}{\nameref{UC:deletePlatoon}} % in CrRST stand dissolvePlatoon \underline{Notwendig für Ausbaustufen:} \begin{itemize} \item @@ -238,7 +264,7 @@ Wenn es in der Kolonne ist, reagiert es nicht mehr auf Geschwindigkeitsänderung \item \end{itemize} -\subsection*{\texorpdfstring{\gls{UC}}{UC} - Kollonnenfahren}\label{UC:runPlatoon} +\subsection*{\texorpdfstring{\gls{UC}}{UC} - Kolonnenfahren}\label{UC:runPlatoon} \addcontentsline{toc}{subsection}{\nameref{UC:runPlatoon}} \underline{Notwendig für Ausbaustufen:} \begin{itemize} @@ -257,17 +283,27 @@ Wenn es in der Kolonne ist, reagiert es nicht mehr auf Geschwindigkeitsänderung \begin{itemize} \item \end{itemize} + 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. -Weitere Nachrichten des Platooning-Protokoll werden ab diesem Zeitpunkt +Weitere Nachrichten des Platooning-Protokolls werden ab diesem Zeitpunkt ignoriert. Ein Emergency-Stop muss sofort als Broadcast an alle Fahrzeuge kommuniziert werden. +%Englisch +The car must be able to stop its calculations and actions to execute an +emergency-stop at all times. +It should stop as fast as possible without causing a collision. + +From this point on any message of the platooning protocol will be ignored. + +An emergency-stop must be sent to all cars immediately via broadcast. + \subsubsection*{RQ - GV20 Hindernis Erkennung}\label{RQ:obstacleDetect} \addcontentsline{toc}{subsubsection}{\nameref{RQ:obstacleDetect}} \underline{Notwendig für Use-Cases:} @@ -277,6 +313,9 @@ kommuniziert werden. Ein Fahrzeug muss vor sich befindliche Hindernisse (evtl. auch andere Fahrzeuge) erkennen und deren relative Position und Geschwindigkeit bestimmen können. +%Englisch +A car must be able to detect obstacles (possibly other cars) and determine their relative position and speed. + %\subsubsection*{RQ - GV30 W-LAN Kommunikation} % %\paragraph{RQ - GV31 Aufbau der Verbindung zu einem Steuercomputer} @@ -306,7 +345,11 @@ mitteilen. Wird ein festzulegender kritischer Grenzwert für die Geschwindigkeitsänderung überschritten, so wird das Emergency-Stop-Signal gebroadcasted. -Eine Übertragung von Beschleuningungsinformationen ist nicht vorgesehen. +Eine Übertragung von Beschleunigungsinformationen ist nicht vorgesehen. + +% Englisch +The \gls{LV} must determine an appropriate \gls{PS} from the distances to obstacles +or leading cars and communicate it to all \gls{FV}. \subsubsection*{RQ - LV20 Ermittlung/Festlegung des \gls{IPD}}\label{RQ:setIPD} \addcontentsline{toc}{subsubsection}{\nameref{RQ:setIPD}} @@ -321,6 +364,12 @@ mitteilen. Wird ein festzulegender kritischer Grenzwert für die Abstände unterschritten, so wird das Emergency-Stop-Signal gebroadcasted. +% Englisch +The \gls{LV} must determine an appropriate \gls{IPD} from the distances to +obstacles or leading vehicles and communicate it to all \gls{FV}. +If any kind of distance falls below a to be determined critical limit, +the emergency-stop-signal is broadcasted. + \subsubsection*{RQ - LV30 Erkennen und Kommunizieren schwerer Störungen}\label{RQ:seeCritErr} \addcontentsline{toc}{subsubsection}{\nameref{RQ:seeCritErr}} \underline{Notwendig für Use-Cases:} @@ -345,16 +394,28 @@ 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 +Kontrollzeitraum gehalten, so wird die erfolgreiche Umsetzung der Geschwindigkeitsänderung dem \gls{LV} mitgeteilt. +% Englisch +A \gls{FV} must be able to keep the \gls{PS} set by the \gls{LV}. + +Inaccuracies by the motors or sensors must be compensated +through individual corrections. These corrections are saved +and are automatically applied when a new speed is specified. + +If the \gls{FV} is holding the new \gls{PS} set by the \gls{LV} +(within a tolerance) for the first time for a certain control +period, the successful execution of the speed change is +communicated to the \gls{LV}. + \subsubsection*{RQ - FV20 Halten der \gls{IPD}}\label{RQ:keepIPD} \addcontentsline{toc}{subsubsection}{\nameref{RQ:keepIPD}} \underline{Notwendig für Use-Cases:} \begin{itemize} \item \end{itemize} -Ein \gls{FV} muss in der Lage sein ein vom \gls{LV} vorgegebenen +Ein \gls{FV} muss in der Lage sein einen vom \gls{LV} vorgegebenen Abstand zu seinem voran fahrenden Fahrzeug einzurichten und zu halten. Zum nachfolgenden Fahrzeug wird keine Abstandsprüfung vorgenommen. @@ -369,9 +430,28 @@ Geschwindigkeitskorrektur gefunden werden, abhängig von den Parametern 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 +Kontrollzeitraum gehalten, so wird die erfolgreiche Umsetzung der Abstandsänderung dem \gls{LV} mitgeteilt. +% Englisch +A \gls{FV} must be able to implement and hold the \gls{IPD} set by the +\gls{LV} to the car in front of it. + +It does not monitor the distance to the car behind it. + +To allow for distance corrections the \gls{FV} +can deviate from the set \gls{PS}. +Depending on the expansion stage (Ausbaustufe?) a smooth as possible function for +the speed correction should be found, depending on the parameters +\glqq own speed\grqq, +\glqq speed of the preceding car\grqq und +\glqq current distance \grqq. + +If the \gls{FV} is holding the new \gls{IPD} set by the \gls{LV} +(within a tolerance) for the first time for a certain control +period, the successful execution of the distance change is +communicated to the \gls{LV}. + \subsubsection*{RQ- FV30 Erkennung von Drehungen des voran fahrenden Fahrzeugs}\label{RQ:seeTurn} \addcontentsline{toc}{subsubsection}{\nameref{RQ:seeTurn}} \underline{Notwendig für Use-Cases:} @@ -433,15 +513,15 @@ Umsetzung der Abstandsänderung dem \gls{LV} mitgeteilt. \subsection*{MS - Anfang Dezember}\label{MS:beginDez} \addcontentsline{toc}{subsection}{\nameref{MS:beginDez}} -Nach dem erreichen eines Meilensteins durch alle +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 +dieser Vergleiche einzelne Komponenten zwischen den Gruppen ausgetauscht werden, bevor diese mit der Entwicklung fortfahren. \begin{itemize} \item Fertigstellung der Modellautos - \item Fertigstellung des Platooning-Protokolls-Designs + \item Fertigstellung des Platooning-Protokoll-Designs \end{itemize} \subsection*{MS - vor Weihnachten}\label{MS:prevChrist} @@ -453,7 +533,7 @@ ausgetauscht werden, bevor diese mit der Entwicklung fortfahren. \subsection*{MS - Anfang Januar}\label{MS:beginJan} \addcontentsline{toc}{subsection}{\nameref{MS:beginJan}} \begin{itemize} - \item Fertigstellung der Platooning-Protokolls-Implementation + \item Fertigstellung der Platooning-Protokoll-Implementation \end{itemize}