diff --git a/doc/architecture/Systemarchitektur.xml b/doc/architecture/Systemarchitektur.xml index 712c43f275130d957e03bc465c47a1f0a7a0372d..382ac460f93a25691e627fb90da27d6e2153ce91 100644 --- a/doc/architecture/Systemarchitektur.xml +++ b/doc/architecture/Systemarchitektur.xml @@ -1 +1 @@ -<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5" version="7.8.6" editor="www.draw.io" type="device"><diagram id="9f62706e-8f0e-7e16-4d66-530f6a245af1" name="Page-1">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</diagram></mxfile> \ No newline at end of file +<mxfile userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6" version="8.0.6" editor="www.draw.io" type="device"><diagram id="9f62706e-8f0e-7e16-4d66-530f6a245af1" name="Page-1">5Vpdc+I2FP01PCZj2cg2j5BN0plu2p0hnW0fhS1sNcJiZBEgv74SlrBlmZQuJpRNHjLS1fc59x59mEFwt9g8crTMn1iK6cD30s0g+DLw/RH05H9l2FYGCGFlyDhJKxOoDVPyhrVRt8tWJMWlVVEwRgVZ2saEFQVOhGVDnLO1XW3OqD3qEmXYMUwTRF3rd5KKvLLGZlnK/gsmWW5GBp4umaHkJeNsVejxBn4w3/1VxQtk+tL1yxylbN0wBfeD4I4zJqrUYnOHqYLWwFa1ezhQup83x4U4pkFQNXhFdKWXPl4JpucmtgYPOc2lSq4W9IGjhUxO1jkReLpEibKvpRdIWy4WVOaATM4JpXeMMi7zBStUizkrhKYayIVOECVZITOJnCuW9Sbu5PV6XjEXeNMw6cU8YrbAgm9lFV1qcN3a2XVNYmhseYPAINZGpB0n2/dcgycTGr9uLKGD5e8pZ7L0atEMIhvOyIXTDzvg9L0e4AwdOKfPT1eM5b9DCc8FZRw5uOFUCp7OMi5ylrEC0fvaOtmpGFY9eDaAeEPEn8p8C3XuL11JosO3VVEUmrwqBLeeb/LfMCdyBQpX3SgdK8mW2RllyctzTorK/ECoGfNvLMRWU4SUQgWTetZfGVsacltMVutWiz0okNpUshVPdK1YbzmIZ1g0vNEll2OKBHm1ez+JKsfrH3GZ5GtSpCR7wUSUNwM/pHJWk5S8ymSmkiUuSunQukCO0ShzqLeJ/X9GCwjtcAkCN15Al5KHPYTLyOHgiQkF7xUCGVwQxzj+cNnxA3DFumOOv03hgR8kPGbshtf/KvdTjq7T7aNL+v3oAtvtqOX3AF6T45tL3iUc3zhX7fh/UMGR3HURpZ9it4XggtECznM4bcbKLbSjZSTHbERLo/wCsdLBXCt8TggC3fQbI3KIg+oIohaPVWzqVs3ng1ZHfhS/31EV0E5HO5/Yr+c4N+n3MFE7gxcHn8kZ5ArQtlFhqbgp32c57sldgsj/KHeJ3IvUVNK5q9RyIymSwvYOjkvyhma7Cop4jZGsDScD+KVLhZXYkgTRsS5YkDTduSBFM0wn+2dBo+71w+AhV3Dke//cqWc22D9vWV4Tvyv1N94t8Mx7gKbhRnd/oqqYbva9tnpg83mJT+U1dl8sv38d/3YWbQC2LgSXEYZSBoXo6n5X0Bjgx45e/vDoo5fmWSokhGGLa+80F+rVR8ySmrEv8ArzZeL4ydW8H0atmzx0j2hRxwkNgD4uNL4DaL8Bd57w8a1LkrwTeUM7osODEX3uoINHB92JohxC2238ITzXlhu7YdcpzT/XflvFxjtiOYxMtBgK+tltRy0F9s+w23Z806q+D3rFz6OkYPSBUhq5j8sPKOeoLEkpcPF2RLSUgrMX3AbOxfL4mOniyVbrtqru8nqS/gECOmg6yMmwfcUIXU6GnZ/Hetjd3JfPcVluJR2LjsefZ47JDB/7+vM52AMBvBh7I5c992xSHzASqkItaQlRS3UarwP7E4J5dD1+w29u7qNu/Br4dH38hSeeqjc2RGb/Mbfw/3p9B62zxLD9/PfDZwmZrX/zUlWvf1cU3P8D</diagram></mxfile> \ No newline at end of file diff --git a/doc/mainDocument/husiegel_bw.eps b/doc/mainDocument/husiegel_bw.eps new file mode 100644 index 0000000000000000000000000000000000000000..ce0ad6200cfa15b38f9968f9e8e8e4a1b43bcb40 Binary files /dev/null and b/doc/mainDocument/husiegel_bw.eps differ diff --git a/doc/mainDocument/img/SystemArchitektur.png b/doc/mainDocument/img/SystemArchitektur.png index 4aa659af130ff0c088508400edc17a0040dc1e83..4c8bec262359f28f7bbe189b0e4199094237c4dd 100644 Binary files a/doc/mainDocument/img/SystemArchitektur.png and b/doc/mainDocument/img/SystemArchitektur.png differ diff --git a/doc/mainDocument/mainDocument.tex b/doc/mainDocument/mainDocument.tex index 7c257b9c263dff730698cecbf34a9520d9dddf85..b6e222e359c1f6820d783fb5ab3ec82d4c0e5f6b 100644 --- a/doc/mainDocument/mainDocument.tex +++ b/doc/mainDocument/mainDocument.tex @@ -15,11 +15,14 @@ \usepackage{float} %used to allow the [H] option for tables, etc. \usepackage{verbatim} %makes multiline comments possible via \begin{comment}\end{comment} \usepackage{ifthen, tikz, xstring, calc, pgfopts} % required for tikz-uml +\usepackage{listings} \usepackage{../tikz-uml} - +\usepackage{dirtree} \usepackage{geometry} \usepackage{pdflscape} %\geometry{scale = 0.5} %for class diagram??? +\usepackage{listings} +\usepackage{xcolor} %%% GLOSSARY %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \input{../glossary.tex} @@ -44,6 +47,34 @@ \setcounter{tocdepth}{2} %exclude subsubsections from table of contents +\lstset{ % + %backgroundcolor=\color{}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument + basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the code + breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace + breaklines=true, % sets automatic line breaking + captionpos=b, % sets the caption-position to bottom + %commentstyle=\color{mygreen}, % comment style + %deletekeywords={...}, % if you want to delete keywords from the given language + escapeinside={\%*}{*)}, % if you want to add LaTeX within your code + extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 + %frame=single, % adds a frame around the code + keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible) + keywordstyle=\color{blue}, % keyword style + language=Python, % the language of the code + %morekeywords={*,...}, % if you want to add more keywords to the set + numbers=left, % where to put the line-numbers; possible values are (none, left, right) + numbersep=5pt, % how far the line-numbers are from the code + numberstyle=\tiny,%\color{mygray}, % the style that is used for the line-numbers + %rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) + showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' + showstringspaces=false, % underline spaces within strings only + showtabs=false, % show tabs within strings adding particular underscores + stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered + stringstyle=\color{mymauve}, % string literal style + tabsize=2, % sets default tabsize to 2 spaces + title=\lstname % show the filename of files included with \lstinputlisting; also try caption instead of title +} + %%% COMMANDS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\tabHead}[1]{\parbox{0.14\textwidth}{\medskip\textbf{#1}\medskip}} \newcommand{\tabBody}[1]{\parbox{0.81\textwidth}{\medskip #1 \medskip}} @@ -54,19 +85,40 @@ %%% META INFORMATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{Hochautomatisiertes Fahren} -\subtitle{Lastenheft} +\subtitle{Dokumentation} \author{Gruppe A} %%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} - -\maketitle +\begin{titlepage} + \begin{flushright} + \includegraphics[width=4cm]{husiegel_bw.eps} + \end{flushright}\vspace{1cm} + \begin{center} + {\LARGE\bfseries Semesterprojekt Hochautomatisiertes Fahren}\\[2ex] + {\large\bfseries Dokumentation}\\[1.5ex] + \vfill + Gruppe A + \vfill + \vfill + Humboldt-Universität-zu-Berlin \\ + Mathematisch Naturwissenschaftliche Fakultät\\ + Institut für Informatik\\ + Betreuer: Prof. Holger Schlingloff, Prof. Verena Hafner\\ + Wintersemester 2017/2018\\ + \vfill +% Bottom of the page + \noindent Berlin, den \today + \end{center} +\end{titlepage} \tableofcontents +\clearpage \subfile{sections/projektbeschreibung} \subfile{sections/organisation} \subfile{sections/ausbaustufen} \subfile{sections/usecases} +\subfile{sections/kommunikation} \subfile{sections/architektur} \subfile{sections/modspez} \subfile{sections/test} @@ -83,4 +135,4 @@ \addcontentsline{toc}{section}{Bibliography} \printbibliography -\end{document} \ No newline at end of file +\end{document} diff --git a/doc/mainDocument/sections/architektur.tex b/doc/mainDocument/sections/architektur.tex index fc9b43446bd1a00dc77fac9d7297dd3194681434..fa1a65a0b2788db1cfcba4f03534289757ac530d 100644 --- a/doc/mainDocument/sections/architektur.tex +++ b/doc/mainDocument/sections/architektur.tex @@ -1,29 +1,63 @@ \documentclass[../mainDocument.tex]{subfiles} \begin{document} - \section{Architektur und Integrationstests} + \section{Architektur} + \subsection{Systemarchitektur} + Abbildung \ref{fig:hardware-sys} zeigt, welche Systemkomponenten in welcher Umgebung laufen und welche Kommunikationswege es zwischen den einzelnen Komponenten gibt. Zur Verf\"ugung steht uns ein Fahrzeug, welches mit einer Kamera, einem Ultraschallsensor, einem Motor, vier R\"adern, einem STM-Board und einem ODROID-Board ausger\"ustet ist.\\ + Auf dem STM-Board laufen die Treiber f\"ur die direkte Steuerung des Motors und der R\"ader. Die gesamte Software des STM-Boards wird von Assystem geliefert und unser Team muss sich lediglich darum k\"ummern, die entsprechenden Befehle vom ODROID-Board an das STM-Board zu schicken.\\ + Auf dem ODROID-Board laufen die Module zum Berechnen des Fahrverhaltens, sowie der Kommunikation mit dem STM-Board und anderen Fahrzeugen. Die Kamera und der Ultraschallsensor sind mit dem ODROID verbunden. + \\\\ + Bis auf die einzelnen Module im ODROID ist die Architektur so von Assystem vorgegeben, da sie die Software f\"ur das STM liefern und auch den Bau der Fahrzeuge leiten. - \subsection{ODROID} + \begin{landscape} - \begin{figure}[h] + \begin{figure}[h] \begin{center} \includegraphics[scale=0.5]{SystemArchitektur} \end{center} \caption{Systemarchitektur} \label{fig:hardware-sys} \end{figure} + \end{landscape} + + \subsection{ODROID} + Abbildung \ref{fig:ODROID-sys} zeigt, welche Module auf dem ODROID laufen, welche Module miteinander kommunizieren und welche Datenfl\"usse es gibt. + + \paragraph*{MAVLINK} + Die Kommunikationsschnittstelle zwischen dem ODROID und dem STM. Schickt L\"angsgeschwindigkeit vom Cruise Control an das STM. Schickt Lenkwinkel vom Lanekeeping an das STM. Bekommt vom STM die Eigengeschwindigkeit des Fahrzeugs. + \paragraph*{Lanekeeping} + Berechnet die Lenkbefehle, damit das Fahrzeug die Spur beim Fahren h\"alt. Braucht die Daten von der Kamera. + \paragraph*{Cruise Control} + Berechnet die zu fahrende Geschwindigkeit, um den Kolonnenabstand bzw. den Sicherheitsabstand zu halten. + \paragraph*{Platoon Controller} + K\"ummert sich um die Verwaltung des Kolonnenstatus. Braucht die Car2Car Nachrichten des Netzwerks. Braucht den Abstand nach vorne vom Egomotion-Model. + \paragraph*{Egomotion-Modell} + Speichert die Daten, die das Environment Modul berechnet. + \paragraph*{Environment} + Berechnet den Abstand nach vorne. Braucht die Daten des Ultraschallsensors und der Kamera. + \paragraph*{Bildverarbeitung} + + \paragraph*{Medianfilter} + + \paragraph*{Logging} + Speichert alle aktuellen Daten des Sensors, der Kamera, die Eigengeschwindigkeit, die berechnete L\"angsgeschwindigkeit, den berechneten Lenkwinkel und die Daten des Platoon Controllers. + \paragraph*{Netzwerk} + K\"ummert sich um das Empfangen und das Versenden von Nachrichten \"uber ein WLAN. + + \begin{landscape} \begin{figure}[h] \begin{center} - \includegraphics[scale=0.45]{Odroid} + \includegraphics[scale=0.45]{ODROID} \end{center} \caption{ODROID-System} \label{fig:ODROID-sys} \end{figure} - \end{landscape} \subsection{Object Oriented Analysis} - \begin{figure}[h] + In Abbildung \ref{fig:ooa} ist das UML-Klassendiagramm f\"ur die Module des ODROIDs. + + \begin{figure}[H] \begin{tikzpicture} \begin{umlpackage}{Car} \begin{umlpackage}{ODROID} @@ -201,6 +235,14 @@ \end{figure} \subsection{Softwarearchitektur} + Zur Unterst\"utzung in der Entwicklung des Systems benutzen wir die Tools des Robot Operating System (ROS) in der Version Lunar Loggerhead. ROS ist ein beliebtes Framework im Robotik-Bereich und ist durch das Messaging-System zwischen einzelnen ROS-Modulen auf Verteilbarkeit und Modularit\"at ausgerichtet. Weiterhin sind die Module, die uns Assystem liefert, bereits als ROS-Nodes implementiert. Daher ist es sinnvoll, dass wir selbst ROS benutzen, um so die Kompatibilit\"at mit Assystem zu gew\"ahren. ROS unterst\"utzt die Programmiersprachen Python und C++. Da unser System sehr zeitkritisch ist, haben wir uns entschieden, das gesamte System in C++ zu implementieren. Auf dem Odroid l\"auft Ubuntu 16.04. + + Anstatt ROS-Nodes zu nutzen, haben wir uns jedoch entschieden, auf Nodelets umzusteigen. Diese sind vom Konzept her ähnlich. ROS-Nodes kommunizieren untereinander \"uber TCP, was eventuell zu einem h\"oheren Zeitaufwand f\"uhrt. Im Gegensatz dazu kommunizieren Nodelets untereinander über shared pointer. + + Das Lanekeeping wird bereits als ROS-Node von Assystem geliefert. Die Kamera und der Ultraschallsensor erhalten jeweils eigene Nodelets, da sie nur damit besch\"aftigt sein werden, ihre Daten aufzunehmen und an ihr rostopic zu publishen. Das Environment Modul ist ein eigener Nodelet, da es die hochfrequenten Daten der Kamera und des Ultraschallsensors lesen und verarbeiten muss. Das MAVLINK Modul ist ein eigener Nodelet, da dessen Aufgabe das Versenden und Empfangen von Nachrichten \"uber das MAVLINK Protokoll ist. + + PlatoonController, CruiseControl, Netzwerk, Logging und Egomotion laufen zusammen in einem Nodelet. Das liegt daran, dass beim Designentwurf noch davon ausgegangen wurde, dass ROS-Nodes benutzt werden. Durch das Gruppieren mehrerer Module innerhalb des gleichen ROS-Nodes erhofften wir uns einen Performance-Gewinn, da Daten nicht node-\"ubergreifend \"uber TCP verschickt werden m\"ussen, sondern innerhalb des Nodes durch Getter bereitgestellt werden können. Durch die Verwendung von Nodelets k\"onnte es jedoch sein, dass es im Vergleich zur Alternative - die Module PlatoonController, CruiseControl, Netzwerk, Logging und Egomotion auf einzelne Nodelets zu verteilen - zu keinem Performance-Gewinn kommt. Aus Zeitmangel wollten wir aber das Design nicht mehr \"andern. + \begin{landscape} \begin{figure}[h] \begin{center} @@ -210,6 +252,38 @@ \caption{Softwarearchitektur} \label{fig:sw-arch} \end{figure} + \end{landscape} + + \subsection{Ordnerstruktur} + \dirtree{% + .1 catkin\textunderscore ws. + .2 src. + .3 NetworkingLib \DTcomment{Library um TCP und UDP zu nutzen}. + .3 PC \DTcomment{Programm des Steuerrechners}. + .3 PC2CarLib \DTcomment{Kommunikation zwischen Steuerrechner und Fahrzeug}. + .3 PlatoonProtocolLib \DTcomment{Kommunikation zwischen den Fahrzeugen}. + .3 car \DTcomment{Fahrzeugmodule}. + .4 include. + .5 camera. + .5 environment. + .5 lanekeeping. + .5 logging. + .5 mainNode. + .5 mavLink. + .5 ultrasonic. + .4 launch. + .4 msg. + .4 plugins. + .4 src. + .5 camera. + .5 environment. + .5 lanekeeping. + .5 logging. + .5 mainNode. + .5 mavLink. + .5 ultrasonic. + .4 test. + } %uml-tikz stub TODO \begin{comment} @@ -315,6 +389,5 @@ \end{umlpackage} \end{tikzpicture} \end{comment} - \end{landscape} \end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/auswertung.tex b/doc/mainDocument/sections/auswertung.tex index 7d49f40a239706891c5afcbb88c99e7e41c54cc1..c555b188d52df9b642b11a3053fcf7dd43beb94b 100644 --- a/doc/mainDocument/sections/auswertung.tex +++ b/doc/mainDocument/sections/auswertung.tex @@ -2,4 +2,4 @@ \begin{document} \section{Auswertung} -\end{document} \ No newline at end of file +\end{document} diff --git a/doc/mainDocument/sections/kommunikation.tex b/doc/mainDocument/sections/kommunikation.tex new file mode 100644 index 0000000000000000000000000000000000000000..fd224ba1fa0eebb97ebb1369d9dad7b1ae0e2258 --- /dev/null +++ b/doc/mainDocument/sections/kommunikation.tex @@ -0,0 +1,63 @@ +\documentclass[../mainDocument.tex]{subfiles} + +\colorlet{punct}{red!60!black} +\definecolor{background}{HTML}{EEEEEE} +\definecolor{delim}{RGB}{20,105,176} +\colorlet{numb}{magenta!60!black} + +\lstdefinelanguage{json}{ + basicstyle=\normalfont\ttfamily, + numbers=left, + numberstyle=\scriptsize, + stepnumber=1, + numbersep=8pt, + showstringspaces=false, + breaklines=true, + frame=lines, + backgroundcolor=\color{background}, + literate= + *{0}{{{\color{numb}0}}}{1} + {1}{{{\color{numb}1}}}{1} + {2}{{{\color{numb}2}}}{1} + {3}{{{\color{numb}3}}}{1} + {4}{{{\color{numb}4}}}{1} + {5}{{{\color{numb}5}}}{1} + {6}{{{\color{numb}6}}}{1} + {7}{{{\color{numb}7}}}{1} + {8}{{{\color{numb}8}}}{1} + {9}{{{\color{numb}9}}}{1} + {:}{{{\color{punct}{:}}}}{1} + {,}{{{\color{punct}{,}}}}{1} + {\{}{{{\color{delim}{\{}}}}{1} + {\}}{{{\color{delim}{\}}}}}{1} + {[}{{{\color{delim}{[}}}}{1} + {]}{{{\color{delim}{]}}}}{1}, +} + +\begin{document} + \section{Kommunikation} + In diesem Abschnitt werden die Protokolle f\"ur die Fahrzeugkommunikation spezifiziert. + + \subsection{PC-2-Car} + Ein Fahrzeug soll mit einem PC kommunizieren k\"onnen. Der PC fungiert dabei als Steuer-PC, der Befehle an das Fahrzeug senden kann und Daten vom Fahrzeug auslesen kann. Die Nachrichten vom Steuer-PC sollen im JSON-Format an das Fahrzeug \"uber WLAN gesendet werden.\\ +\begin{lstlisting}[language=json,firstnumber=1] +{"PC2Car": { + "command": "integer", + "value": "integer", +}} +\end{lstlisting} + + \begin{center} + \begin{tabular}{|l|p{6cm}|l|l|} + \hline + Name & Beschreibung & Command & Value \\ \hline + enableLogging & Loggingfunktion f\"ur dieses Fahrzeug ein- bzw. ausschalten. & 0x01 & boolean \\ \hline + enablePlatoon & Dieses Fahrzeug versucht so lange enablePlatoon true ist, ein Platoon zu erstellen bzw. einem Platoon beitreten. & 0x02 & boolean \\ \hline + enableRCMode & RC f\"ur dieses Fahrzeug ein- bzw. ausschalten aktivieren. & 0x03 & boolean \\ \hline + setIPD & IPD auf den Wert setzen. & 0x04 & float \\ \hline + setPS & PS auf den Wert setzen. & 0x05 & float \\ \hline + setSpeed & Geschwindigkeit f\"ur dieses Fahrzeug auf den Wert \"andern. & 0x06 & float \\ + \hline + \end{tabular} + \end{center} +\end{document} diff --git a/doc/mainDocument/sections/modspez.tex b/doc/mainDocument/sections/modspez.tex index eb2c4c5d0e49314dd23406b3184a8ff424529d35..4a4dcd9cc16a2067f6dcdd68a3480c53943ac8df 100644 --- a/doc/mainDocument/sections/modspez.tex +++ b/doc/mainDocument/sections/modspez.tex @@ -1,5 +1,5 @@ \documentclass[../mainDocument.tex]{subfiles} \begin{document} \section{Modulspezifikationen} - + \input{../modules/cruiseControl/docCACC-content} \end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/organisation.tex b/doc/mainDocument/sections/organisation.tex index 79fa1b7b1c08b19bbf16d1d67a5837f0506f3ce0..f03600dbbbcf627f0b7a43de77a01dc2a55fe7d5 100644 --- a/doc/mainDocument/sections/organisation.tex +++ b/doc/mainDocument/sections/organisation.tex @@ -1,18 +1,7 @@ \documentclass[../mainDocument.tex]{subfiles} \begin{document} \section{Organisation} - Besagtes Projekt 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. + Die verantwortliche Person des Projektes ist Professor Dr. Holger Schlingloff mit Unterst\"utzung durch den Lehrstuhl f\"ur adaptive Systeme von Professor Dr. Verena Hafner. Zu Anfang wurden die Studenten in drei Gruppen der Gr\"o{\ss}e sechs bis sieben eingeteilt. Alle drei Gruppen entwickeln unabh\"angig voneinander das System zum automatisierten Fahren. Innerhalb der Gruppen sollen die Studenten sich eigenst\"andig um das Management des Projektes k\"ummern und Professor Schlingloff gibt lediglich Feedback zum Fortschritt. W\"ahrend des Wintersemesters 2017/18 finden w\"ochentliche Treffen mit allen drei Gruppen und Professor Schlingloff statt. Jeder Gruppe ist ein Modellauto zugeordnet. Die Autos werden von den einzelnen Gruppenmitgliedern mit Hilfe von Assystem zusammen gebaut. Ein viertes Modellauto wird zus\"atzlich als Ersatz gebaut. \subsection{Stakeholder} %wichtige Personen hier aufführen. Verantwortliche von Assystem u.a. @@ -98,9 +87,9 @@ \end{itemize} \changelocaltocdepth{2} + \begin{comment} \subsection{Aufbau des Dokuments} %V Bild von Franz - %\begin{comment} \begin{tikzpicture} \node[draw,circle,fill=gray,text=white,label=right:{3. Zielvorstellungen/Ausbaustufen}] (AS) at (0,0) {}; \node[draw,circle,fill=gray,text=white,label=right:{4. Use-Cases}] (UC) at (1,-2) {}; @@ -115,6 +104,6 @@ \draw[->,draw=blue] (ModSpez) to (Test); \draw[->,draw=blue] (Test) to (Auswertung); \end{tikzpicture} - %\end{comment} + \end{comment} \end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/projektbeschreibung.tex b/doc/mainDocument/sections/projektbeschreibung.tex index a041417fd971602deec1f3d61edfbc26340361e9..b50515d480b00f03c812dc62b391b66ff567af3b 100644 --- a/doc/mainDocument/sections/projektbeschreibung.tex +++ b/doc/mainDocument/sections/projektbeschreibung.tex @@ -1,8 +1,11 @@ \documentclass[../mainDocument.tex]{subfiles} \begin{document} \section{Projektbeschreibung} - Das Projekt soll in Zusammenarbeit mit der Firma Assystem eine Fahrerassistenzfunktion für automatisiertes Kolonnenfahren entwickelt werden. Diese soll dann an Modellfahrzeugen erprobt werden. + Das Projekt ``Hochautomatisiertes Fahren" ,ist ein Semesterprojekt der Humboldt-Universit\"at zu Berlin f\"ur Bachelor Studenten der Informatik. - Die Konstruktion und der Aufbau der Modellautos (Hardware und Basis-Software) richtet sich nach Entwürfen des industriellen Partners. + In Zusammenarbeit mit der Firma Assystem und Fraunhofer FOKUS sollen die Studenten eine Fahrassistenzfunktion f\"ur das automatisierte Fahren von Fahrzeugen entwickeln. Die Besonderheit des Systems besteht darin, dass es neben Sensordaten zus\"atzlich Daten von anderen Fahrzeugen bekommt, damit es bessere Berechnungen f\"ur das Fahrverhalten durchf\"uhren k\"ann. + Dazu werden den Studenten drei Modellautos zur Verf\"ugung gestellt, auf denen das System ausgef\"uhrt wird. Die Konstruktion und der Aufbau der Modellautos (Hardware und Basis-Software) richtet sich nach Entw\"urfen des industriellen Partners. + + Ziel soll es sein, dass das System mehreren Fahrzeugen erm\"oglicht eigenst\"andig in einer Kolonne zu fahren. Was das genau bedeutet wird im weiteren Verlauf dieses Dokumentes erl\"autert. \end{document} \ No newline at end of file diff --git a/doc/mainDocument/sections/test.tex b/doc/mainDocument/sections/test.tex index d900277ebe7a4978c26177f2450c862730c99506..28ff4f77ca964055a4df2b9b26bc9d297d48bc0c 100644 --- a/doc/mainDocument/sections/test.tex +++ b/doc/mainDocument/sections/test.tex @@ -11,5 +11,9 @@ \input{../testplan/FunktionsTestPlan.tex} \clearpage \input{../testplan/AkzeptanzTestPlan.tex} + \clearpage + \input{../testplan/Testergebnisse.tex} + +% \nameref{tab:HT - 01 Odroid testen} -\end{document} \ No newline at end of file +\end{document} diff --git a/doc/mainDocument/sections/usecases.tex b/doc/mainDocument/sections/usecases.tex index e82d18f7bdaf6fa65654fb562edb163ca6785aee..4649da61ea915b98d554eaf16f2a6332087cd647 100644 --- a/doc/mainDocument/sections/usecases.tex +++ b/doc/mainDocument/sections/usecases.tex @@ -1,9 +1,26 @@ \documentclass[../mainDocument.tex]{subfiles} \begin{document} - \section{Use-Cases} + \section{Use-Cases} + Dieser Abschnitt basiert auf \cite{CrESt} und den darin verwendeten Bezeichnungen und beschriebenen Use-Cases. + Während der Entwicklung sollte auf größtmögliche Konformität mit dem + bestehenden Projekt der Assystem geachtet werden. + \begin{figure} + \caption{Use Case Diagramm 1. Version} \input{tikzImgs/uc_diagram.tex} - + \end{figure} + \begin{figure} + \caption{Use Case Diagramm 2. Version} + \input{tikzImgs/uc_diagram_2.tex} + \end{figure} + \clearpage + Um die Anzahl der Use Cases zu reduzieren: + \begin{itemize} + \item UC - Kolonne erstellen ist kein eigenständiger UC, sondern ist nun in UC - Kolonne beitreten miteinbegriffen + \item UC - Kolonne auflösen ist kein eigenständiger UC, sondern ist nun in UC - Kolonne verlassen miteinbegriffen + \item UC - Abstand halten und UC - Fahrbahn folgen sind nun in UC - Kolonnenfahren miteinbegriffen + \end{itemize} + Es wurde noch überlegt, einen Use Case hinzuzufügen, der die Fahrmodi (ACC, CACC(LV), CACC(FV), RC) repräsentiert. %TO DO Reihenfolge ändern ??? \subsection*{UC - 10 Status ausgeben}\label{UC:showStatus} @@ -64,7 +81,7 @@ \addcontentsline{toc}{subsection}{\nameref{UC:createPlatoon}} Dieser Use-Case dient dazu, eine Kolonne zu erstellen. - Mehrere Fahrzeuge ( mind. 2 ) erkennen sich gegenseitig und beginnen zu kommunizieren. + Mehrere Fahrzeuge (mind. 2) erkennen sich gegenseitig und beginnen zu kommunizieren. Weitere Informationen sind in Tabelle~\ref{tab:UC:createPlatoon} zu finden. \begin{table}[H] \centering @@ -462,12 +479,13 @@ \tabBody{} \\ \hline \tabHead{Akteure} & - \tabBody{} \\ \hline + \tabBody{Operator, \gls{LV}} \\ \hline \tabHead{Ablauf} & \tabBody{ \begin{enumerate}[leftmargin=*] - \item + \item Operator sendet neue IPD und PS Werte an das \gls{LV}. + \item Die Kolonne f\"ahrt mit den \"ubermittelten IPD und PS Werten. \end{enumerate} } \\ \hline @@ -505,12 +523,13 @@ \tabBody{} \\ \hline \tabHead{Akteure} & - \tabBody{} \\ \hline + \tabBody{Operator, ein nicht \gls{FV}} \\ \hline \tabHead{Ablauf} & \tabBody{ \begin{enumerate}[leftmargin=*] - \item + \item Operator sendet eine neue Sollgeschwindigkeit an das Fahrzeug. + \item Das Fahrzeug passt seine Geschwindigkeit an die Sollgeschwindigkeit an, sofern der Sicherheitsabstand nach vorne eingehalten wird. \end{enumerate} } \\ \hline diff --git a/doc/mainDocument/tikzImgs/uc_diagram_2.tex b/doc/mainDocument/tikzImgs/uc_diagram_2.tex new file mode 100644 index 0000000000000000000000000000000000000000..8d73b452964c58a0eb7eb286eeb164979981c1e1 --- /dev/null +++ b/doc/mainDocument/tikzImgs/uc_diagram_2.tex @@ -0,0 +1,40 @@ +\begin{tikzpicture} + \begin{umlsystem}[x=4, y=0, fill=black!15]{CACC/Platooning} + \umlusecase[x=0, y=0, width=18mm, fill=green!30]{\nameref{UC:showStatus}} + \umlusecase[x=5, y=-5, width=18mm, fill=blue!20]{\nameref{UC:runPlatoon}} + \umlusecase[x=5, y=-15, width=18mm, fill=blue!40]{\nameref{UC:joinPlatoon}} + \umlusecase[x=1, y=-11, width=18mm, fill=blue!40]{\nameref{UC:leavePlatoon}} + \umlusecase[x=1, y=-5, width=28mm, fill=green!30]{\nameref{UC:changePlatoonData}} + \umlusecase[x=3, y=-17, width=34mm, fill=green!30]{\nameref{UC:changeSpeed}} + \end{umlsystem} + + \umlactor[x=0, y=-11]{Operator} + \umlcar[x=15, y=-10]{LV} + \umlcar[x=15, y=-5]{FV} + \umlcar[x=15, y=-15]{PFV} + \umlcar[x=15, y=1]{GV} + + \umlHVHinherit[arm2=16mm]{LV}{GV} + \umlHVHinherit[arm2=16mm]{FV}{GV} + \umlHVHinherit[arm2=16mm]{PFV}{GV} + + \umlassoc{Operator}{usecase-1} + \umlassoc{Operator}{usecase-4} + \umlassoc{Operator}{usecase-5} + \umlassoc{Operator}{usecase-9} + \umlassoc{Operator}{usecase-10} + + \umlassoc{LV}{usecase-3} + \umlassoc{LV}{usecase-4} + \umlassoc{LV}{usecase-5} + \umlassoc{LV}{usecase-9} + + \umlassoc{FV}{usecase-3} + \umlassoc{FV}{usecase-5} + + \umlassoc{PFV}{usecase-4} + \umlassoc{PFV}{usecase-10} + + \umlassoc{GV}{usecase-1} + +\end{tikzpicture} diff --git a/doc/softwareSetup/createAdhocNetwork.sh b/doc/softwareSetup/createAdhocNetwork.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f8f58d4940ebf6b8078ef8d0de787cbdabcd1ce --- /dev/null +++ b/doc/softwareSetup/createAdhocNetwork.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +ifconfig wlan0 down +iw wlan0 set type ibss +ifconfig wlan0 up +iw wlan0 ibss join test 2432 +ifconfig wlan0 10.42.43.1 diff --git a/doc/testplan/AkzeptanzTestPlan.tex b/doc/testplan/AkzeptanzTestPlan.tex index 838f75f6fb4c2f8b83e824b348cf8a0eb012f9db..39a5285f488a91e02f9cc5e26b8d310433ea2113 100644 --- a/doc/testplan/AkzeptanzTestPlan.tex +++ b/doc/testplan/AkzeptanzTestPlan.tex @@ -1,7 +1,7 @@ \subsection{Akzeptanztest} \subsubsection{Beschreibung} -Dieses Dokument spezifiert den Akzeptanztest f\"ur das Projekt Hochautomatisiertes Fahren. Die Szenarien f\"ur die Tests wurden schon teilweise im Lastenheft als Ausbaustufen beschrieben. Die erfolgreiche Durchf\"uhrung best\"atigt, dass die Software, die im Lastenheft spezifierten Anforderungen erf\"ullen. +Die Szenarien f\"ur die Tests wurden schon teilweise im Lastenheft als Ausbaustufen beschrieben. Die erfolgreiche Durchf\"uhrung best\"atigt, dass die Software, die im Lastenheft spezifierten Anforderungen erf\"ullen. \subsubsection{Besonderheiten} Der Akzeptanztest in diesem Projekt unterliegt der Besonderheit, dass auf jedem der drei Modellautos drei unterschiedliche Programme, entwickelt durch drei unabh\"angige Teams, zur Realisierung von Kolonnenfahren laufen. Ausserdem haben alle drei Fahrzeuge die exakt gleiche Hardware. @@ -31,6 +31,9 @@ F\"ur alle Tests gilt: Sollte etwas unvorhergesehenes passieren, z.B Hardwarefeh \tabHead{erwartetes Ergebnis} & \tabBody{Die Fahrzeuge fahren zusammen mit der nahezu gleichen Geschwindigkeit von 3m/s und im nahezu festen Abstand von 0,35m zueinander. Beim Erreichen des Hindernisses stoppen alle drei Fahrzeuge.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{AT - 01 Akzeptanztest Minimum} \label{tab:AT - 01 Akzeptanztest Minimum} \end{table} diff --git a/doc/testplan/FunktionsTestPlan.tex b/doc/testplan/FunktionsTestPlan.tex index a918d730096bf22389a3bc8af3e12f22ec4c23c7..5e1e7cc17302799143d6c4f1e85299475382f17f 100644 --- a/doc/testplan/FunktionsTestPlan.tex +++ b/doc/testplan/FunktionsTestPlan.tex @@ -1,7 +1,7 @@ \subsection{Funktionstest} \subsubsection{Beschreibung} -In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Lastenheft spezifizierten Usecases implementiert. Hierbei L\"auft auf allen drei Fahrzeugen dieselbe Software. +Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Lastenheft spezifizierten Usecases implementiert. Hierbei L\"auft auf allen drei Fahrzeugen dieselbe Software. \subsubsection{Testcases} \begin{table}[H] \centering @@ -19,6 +19,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Interne Daten (Geschwindigkeit, Position, Kolonnendaten) werden am Laptop angezeigt.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 01 Status ausgeben} \label{tab:FT - 01 Status ausgeben} \end{table} @@ -42,6 +45,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Das Fahrzeug f\"ahrt mit 5m/s. W\"ahrend der gesamten Fahrt bleibt das Fahrzeug innerhalb der Fahrbahn. Wenn die Sollgeschwindigkeit von 0m/s \"ubertragen wird, h\"alt das Fahrzeug an.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 02 Spur halten} \label{tab:FT - 02 Spur halten} \end{table} @@ -69,6 +75,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Beide Fahrzeuge fahren zun\"achst mit den ihnen \"ubertragenen Geschwindigkeiten. W\"ahrend der gesamten Fahrt bleiben die Fahrzeuge innerhalb der weißen Streifen. Wenn Fahrzeug 1 Fahrzeug 2 bis auf $???$m Sicherheitsabstand einholt, \"reduziert Fahrzeug 1 die Geschwindigkeit, um den Sicherheitsabstand konstant zu Fahrzeug 2 zu halten. Wenn Fahzeug 2 die Geschwindigkeit auf 0m/s setzt, f\"ahrt Fahrzeug 1 bis zum Sicherheitsabstand an Fahrzeug 2 an und h\"alt auch an. Nachdem Fahrzeug 2 von der Strecke entfernt wird, f\"ahrt Fahzeug 1 seine Sollgeschwindigkeit von 5m/s. Wenn die Sollgeschwindigkeit von 0m/s an Fahrzeug 1 gesendet wird, h\"alt Fahzeug 1 und der Test ist beendet.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 03 Adaptive Cruise Control} \label{tab:FT - 03 Adaptive Cruise Control} \end{table} @@ -92,6 +101,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Beide Fahrzeuge sind in einer Kolonne. Fahrzeug 1 ist Leader Vehicle und Fahrzeug 2 ist Follower Vehicle. Fahrzeug 1 hat eine Mitgliederliste der Kolonne, in der die IDs von Fahrzeug 1 und Fahrzeug 2 sind.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 04 Kolonne erstellen} \label{tab:FT - 04 Kolonne erstellen} \end{table} @@ -115,6 +127,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Alle drei Fahrzeuge sind in einer Kolonne. In der Mitgliederliste der Kolonne sind die IDs aller 3 Fahrzeuge.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 05 Kolonne beitreten} \label{tab:FT - 05 Kolonne beitreten} \end{table} @@ -135,6 +150,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Fahrzeuge 1 und 2 sind in einer Kolonne. In der Mitgliederliste der Kolonne sind die IDs von Fahrzeug 1 und 2. Fahrzeug 3 ist in keiner Kolonne. } \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 06 Kolonne verlassen} \label{tab:FT - 06 Kolonne verlassen} \end{table} @@ -155,6 +173,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Kolonne wird aufgel\"ost.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 07 Kolonne verlassen} \label{tab:FT - 07 Kolonne verlassen} \end{table} @@ -178,6 +199,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Siehe Akzeptanztest.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 08 CACC Minimum} \label{tab:FT - 08 CACC Minimum} \end{table} @@ -194,6 +218,9 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabHead{erwartetes Ergebnis} & \tabBody{Die Fahrzeuge fahren zusammen mit der nahezu gleichen Geschwindigkeit von 3m/s und im nahezu festen Abstand von 0,35m zueinander. Nachdem eine IPD von 0,8m an das Leader Vehicle gesendet wird, verlangsamen sich die hinteren beiden Fahrzeuge bis sie einen Abstand von 0.8m zum jeweiligen Vorg\"anger haben.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{FT - 09 CACC IPD} \label{tab:FT - 09 CACC IPD} \end{table} @@ -205,10 +232,13 @@ In diesem Dokument werden Tests spezifiziert, die \"uberpr\"ufen, ob das System \tabBody{FT - 10 CACC IPS} \\ \hline \tabHead{Ablauf} & - \tabBody{Siehe Akzeptanztest.} \\ \hline + \tabBody{-} \\ \hline \tabHead{erwartetes Ergebnis} & - \tabBody{Siehe Akzeptanztest.} \\ \hline + \tabBody{-} \\ \hline + + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline \end{tabularx} \caption{FT - 10 CACC IPS} \label{tab:FT - 10 CACC IPS} diff --git a/doc/testplan/HardwareGrundFktTestPlan.tex b/doc/testplan/HardwareGrundFktTestPlan.tex index a68aa92eaa722a12c9a9453135fbe296197f2c5c..3b27f270caec8e104991b5b4a39c6f2a74680cba 100644 --- a/doc/testplan/HardwareGrundFktTestPlan.tex +++ b/doc/testplan/HardwareGrundFktTestPlan.tex @@ -1,7 +1,7 @@ \subsection{Hardware- und Grundfunktionstest} \subsubsection{Beschreibung} -In diesem Dokument werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die korrekte Montierung, sowie grundlegende Funktionen, welche von Assystem zur Verf\"ugung gestellt werden, \"uberpr\"ufen sollen. +Hier werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die korrekte Montierung, sowie grundlegende Funktionen, welche von Assystem zur Verf\"ugung gestellt werden, \"uberpr\"ufen sollen. \subsubsection{Zu testende Features} \begin{itemize} @@ -22,9 +22,6 @@ In diesem Dokument werden Tests spezifiziert, die die Funktionsbereitschaft der \item PC-Steuerung \end{itemize} -\subsubsection{Vorbedingungen} -Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"otigt keine weitere Montierung. Die Software auf dem STM und und zum Auslesen der Ultraschall- und Kameradaten ist von Assystem zur Verf\"ugung gestellt worden. - \subsubsection{Testcases} \begin{table}[H] \centering \rowcolors{1}{light-gray}{white} @@ -41,6 +38,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Das Odroid ist erfolgreich gebootet} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 01 Odroid testen} \label{tab:HT - 01 Odroid testen} \end{table} @@ -61,6 +61,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Die Sensoren wurden erfolgreich eingeschaltet und sind einsatzbereit} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 02 Ultraschallsensoren testen} \label{tab:HT - 02 Ultraschallsensoren testen} \end{table} @@ -81,6 +84,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Die Kamera is eingeschaltet und einsatzbereit} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 03 Kamera testen} \label{tab:HT - 03 Kamera testen} \end{table} @@ -100,6 +106,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Das STM ist erfolgreich gebootet} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 04 STM testen} \label{tab:HT - 04 STM testen} \end{table} @@ -122,6 +131,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Das Auto beschleunigt, \"andert seine Richtung je nach L\"angsgeschwindigkeit und Lenkwinkel.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 05 Motor- und Reifensteuerung testen} \label{tab:HT - 05 Motor- und Reifensteuerung testen} \end{table} @@ -143,6 +155,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Das Auto beschleunigt, \"andert seine Richtung je nach RC Bedienung und bremst anschließend.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 06 RC testen} \label{tab:HT - 06 RC testen} \end{table} @@ -162,6 +177,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Das Odroid ist im Netzwerk sichtbar.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 07 WLAN testen} \label{tab:HT - 07 WLAN testen} \end{table} @@ -182,6 +200,9 @@ Die zu testende Hardware wurde vollst\"andig eingebaut und das Modellauto ben\"o \tabHead{erwartetes Ergebnis} & \tabBody{Menge von Messdaten zum Auswerten der Ungenauigkeiten sind verf\"ugbar.} \\ \hline + \tabHead{Ergebnis} & + \tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline + \end{tabularx} \caption{HT - 08 Ultraschallsensoren auf Ungenauigkeiten testen} \label{tab:HT - 08 Ultraschallsensoren auf Ungenauigkeiten testen} \end{table} diff --git a/doc/testplan/TestPlan.tex b/doc/testplan/TestPlan.tex deleted file mode 100644 index 0dc0724c2259adab6c841db844986ece37dc99f5..0000000000000000000000000000000000000000 --- a/doc/testplan/TestPlan.tex +++ /dev/null @@ -1,50 +0,0 @@ -\documentclass[fontsize=12pt,draft=false]{scrartcl} - -%%% PACKAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage[ngerman]{babel} -\usepackage[utf8]{inputenc} -\usepackage{amsmath, amssymb} -\usepackage[inline]{enumitem} -\usepackage[hidelinks]{hyperref} -\usepackage{tabularx} % used for better table formatting see: https://en.wikibooks.org/wiki/LaTeX/Tables#The_tabularx_package -\usepackage[table]{xcolor} -\usepackage{float} % used to allow the [H] option for tables, etc. -\usepackage{verbatim} % makes multiline comments possible via - -%%% SETTINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage{parskip} % makes end of paragraphs use an empty line -\setlength\parindent{0pt} % no indentation - -\def\arraystretch{1.0} % extra padding in tables - -\definecolor{light-gray}{gray}{0.85} - -%%% COMMANDS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand{\tabHead}[1]{\parbox{0.14\textwidth}{\medskip\textbf{#1}\medskip}} -\newcommand{\tabBody}[1]{\parbox{0.81\textwidth}{\medskip #1 \medskip}} - -%%% META INFORMATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\title{Hochautomatisiertes Fahren} -\subtitle{Testplan} -\author{Gruppe A} - -%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} - -\maketitle -\tableofcontents - -\clearpage - -\subsection{Beschreibung} -Dieses Dokument spezifiert den Akzeptanztest f\"ur das Projekt Hochautomatisiertes Fahren. Die Szenarien f\"ur die Tests wurden schon teilweise im Lastenheft als Ausbaustufen beschrieben. Die erfolgreiche Durchf\"uhrung best\"atigt, dass die Software, die im Lastenheft spezifierten Anforderungen erf\"ullen. - - -\input{HardwareGrundFktTestPlan.tex} -\clearpage - -\input{FunktionsTestPlan.tex} -\clearpage -\input{AkzeptanzTestPlan.tex} - -\end{document} \ No newline at end of file diff --git a/doc/testplan/Testergebnisse.tex b/doc/testplan/Testergebnisse.tex new file mode 100644 index 0000000000000000000000000000000000000000..3fac198de3932aa7b5cbb9234a440f03100df942 --- /dev/null +++ b/doc/testplan/Testergebnisse.tex @@ -0,0 +1,32 @@ +\subsection{Testergebnisse} + + \begin{center} + \begin{table}[H] + \begin{tabular}{| p{6cm} | l | l | l |} + \hline + Testcase & Ergebnis & Durchgef\"uhrt am & Kommentar\\ \hline + \nameref{tab:HT - 01 Odroid testen} & Ok & 8.1.2018 & \\ \hline + \nameref{tab:HT - 02 Ultraschallsensoren testen} & & & \\ \hline + \nameref{tab:HT - 03 Kamera testen} & & & \\ \hline + \nameref{tab:HT - 04 STM testen} & Ok & 31.1.2018 & \\ + & kaputt & 6.3.2018 & \\ \hline + \nameref{tab:HT - 05 Motor- und Reifensteuerung testen} & & & \\ \hline + \nameref{tab:HT - 06 RC testen} & & & \\ \hline + \nameref{tab:HT - 07 WLAN testen} & Ok & 8.1.2018 & \\ \hline + \nameref{tab:HT - 08 Ultraschallsensoren auf Ungenauigkeiten testen} & & & \\ \hline + \nameref{tab:FT - 01 Status ausgeben} & & & \\ \hline + \nameref{tab:FT - 02 Spur halten} & & & \\ \hline + \nameref{tab:FT - 03 Adaptive Cruise Control} & & & \\ \hline + \nameref{tab:FT - 04 Kolonne erstellen} & & & \\ \hline + \nameref{tab:FT - 05 Kolonne beitreten} & & & \\ \hline + \nameref{tab:FT - 06 Kolonne verlassen} & & & \\ \hline + \nameref{tab:FT - 07 Kolonne verlassen} & & & \\ \hline + \nameref{tab:FT - 08 CACC Minimum} & & & \\ \hline + \nameref{tab:FT - 09 CACC IPD} & & & \\ \hline + \nameref{tab:FT - 10 CACC IPS} & & & \\ \hline + \nameref{tab:AT - 01 Akzeptanztest Minimum} & & & \\ + \hline + \end{tabular} + \caption{Testergebnisse} \label{tab:Testergebnisse} + \end{table} + \end{center}