Skip to content
Snippets Groups Projects
Commit 274872cd authored by Hoop77's avatar Hoop77
Browse files

Merge branch 'master' of gitlab.informatik.hu-berlin.de:badenhop/Hochautomatisiertes-Fahren

parents f3601479 ba55194a
Branches
No related merge requests found
......@@ -119,10 +119,10 @@
\subfile{sections/organisation}
\subfile{sections/ausbaustufen}
\subfile{sections/usecases}
\subfile{sections/setup}
\subfile{sections/kommunikation}
\subfile{sections/architektur}
\subfile{sections/modspez}
\subfile{sections/projekt}
\subfile{sections/test}
\subfile{sections/auswertung}
%\subfile{sections/fkt_anf(archivert)}
......
......@@ -254,37 +254,6 @@
\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}
\begin{tikzpicture}
......
......@@ -2,4 +2,75 @@
\begin{document}
\section{Auswertung}
\subsection{R\"uckblick}
\subsubsection{Probleme}
\begin{itemize}
\item Kommunikation zwischen Komminukationsprotokolldesignern und Rest des Teams
\item Kommunikation zwischen Studenten und Industriepartner
\item Meinungsverschiedenheiten bei der Softwarearchitektur
\item Zu komplizierte Architektur entworfen
\item Auto erst zum Ende des Projektes abgeschlossen
\item Meilensteine stark verfehlt
\end{itemize}
\subsubsection{Lektionen}
\begin{itemize}
\item Erstmal leichter zu implementierendes System designen und sp\"ater Performance optimieren
\item Generell noch mehr Fokus aufs Design bevor mit der Implementierung angefangen wird
\end{itemize}
\subsection{Einzelleistung}
\subsubsection{Steven Lange}
\begin{itemize}
\item Team-Lead
\item Dokumentation
\item Autobau
\item Systemarchitektur Design
\item Software Design
\item Cruisecontrol Implementation
\item Platooncontroller Implementation
\item Medianfilter Implementation
\end{itemize}
\subsubsection{Franz Bethke}
\begin{itemize}
\item Dokumentation
\item Usecase
\item Systemarchitektur Design
\item Software Design
\item Cruisecontrol Implementation
\item Platooncontroller Implementation
\item EgoMotion Implementation
\item Medianfilter Implementation
\end{itemize}
\subsubsection{Phillip Badenhoop}
\begin{itemize}
\item Kommunikationsprotokoll Design
\item Kommunikationsprotokoll Implementation
\item Steuercomputer Implementation
\item Logging Implementation
\item Systemarchitektur Design
\item Software Design
\item MavLink
\end{itemize}
\subsubsection{Duc Anh Vu}
\begin{itemize}
\item Dokumentation
\item Usecase
\item Kommunikationsprotokoll Design
\item Systemarchitektur Design
\item Testplan Design
\item Ultraschallsensor Implementation
\end{itemize}
\subsubsection{Phuc Tran Truong}
\begin{itemize}
\item Dokumentation
\item Usecase
\item ODROID Installation und Konfiguration
\end{itemize}
\subsubsection{Noel Dan Le}
\begin{itemize}
\item Dokumentation
\item MavLink
\item ODROID Netzwerkkonfiguration
\end{itemize}
\end{document}
......@@ -2,4 +2,8 @@
\begin{document}
\section{Modulspezifikationen}
\input{../modules/cruiseControl/docCACC-content}
\subsection{Ultraschallsensor}
An den Fahrzeugen ist ein Ultraschallsensor vom Modell SRF02 angebaut.
\end{document}
\ No newline at end of file
\documentclass[../mainDocument.tex]{subfiles}
\begin{document}
\section{Setup}
\section{Projekt}
\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.
}
\subsection{Setup}
In diesem Abschnitt sollen die Schritte beschrieben werden, um das ODROID vollständig einzurichten. Auf das Speichermodul, die eMMC, muss das Betriebssystem Ubuntu 16.04 LTS gespielt werden. Das WLAN (eduroam) muss eingerichtet werden, um grundlegende Tools wie vim und git und die ROS Software Bibliotheken/Werkzeuge zu installieren und die Repositories der Gruppen zu klonen.
\subsection{ODROID und Ubuntu}
\subsubsection{ODROID und Ubuntu}
Um das ODROID nutzen zu können, müssen wir das Betriebssystem Ubuntu 16.04 LTS installieren. Dazu benötigen wir einen Computer, die eMMC und einen microSD-Adapter.
\begin{figure}
\begin{figure}[h]
\centering
\begin{minipage}{.4\textwidth}
\centering
......@@ -53,7 +86,7 @@ Dann sollte es booten.
Standardmäßig kann man sich mit dem Nutzernamen \textit{root} und dem Passwort \textit{odroid} anmelden.
Um das Passwort zu ändern, führt man den folgenden Befehl aus: \lstinline{sudo passwd}. Für das Semesterprojekt lautet das Passwort bei jedem fertig eingerichteten ODROID \glqq autonom1718\grqq.
\subsection{WLAN (eduroam)}
\subsubsection{WLAN (eduroam)}
Um eine WLAN-Verbindung herzustellen, benötigt man einen WLAN-Stick oder ein WLAN-Modul. Wir gehen an dieser Stelle davon aus, dass diese nach dem Plug-and-Play-Prinzip funktionieren und hier keine Einrichtung nötig ist.
Man kann mittels \lstinline{ifconfig} und \lstinline{iwconfig} überprüfen, ob die WLAN-Schnittstelle vorhanden ist und wie sie heißt. Wir gehen von nun an davon aus, dass die Schnittstelle \textit{wlan0} heißt. Andernfalls muss man den Namen der Schnittstelle im Folgenden immer anpassen.
......@@ -119,7 +152,7 @@ Beim nächsten Hochfahren des ODROIDs muss man, falls die Passwortzeile gelösch
Nun ist es möglich, das ODROID per \lstinline{ssh} zu steuern. Die IP-Adresse des ODROIDs erfährt man mit \lstinline{ifconfig wlan0}. Anschließend kann man sich mit \lstinline{ssh root@10.42.43.1} verbinden. Die IP-Adresse muss hier entsprechend angepasst werden. Mit \lstinline{scp} ist es außerdem möglich, Daten zu übertragen.
Bsp.: \lstinline{scp foobar.txt root@10.42.43.1:/some/remote/directory}
\subsection{Essentials}
\subsubsection{Essentials}
Nun da das ODROID eine Internetverbindung hat, sollte man es updaten: \lstinline{sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade}
Anschließend sollte \lstinline{git} installiert werden, damit die Repositories der Gruppen mit der Software geklont werden können: \lstinline{sudo apt install git-all}
......@@ -128,7 +161,7 @@ Der Befehl, um ein Repository zu klonen, sieht dann z.B. so aus:\\
\lstinline{git clone https://gitlab.informatik.hu-berlin.de/adapt/ws17-HF/Gruppe-A.git}\\
Beim Klonen, Pullen, Pushen usw. wird jedes Mal der Nutzername und das Passwort abgefragt.
\subsection{ROS}
\subsubsection{ROS}
Für das Semesterprojekt wird ROS (Robot Operating System) verwendet. Konkret wird die ROS Version Lunar Loggerhead verwendet. Eine ausführliche Anleitung zur Installation gibt es hier: \url{http://wiki.ros.org/lunar/Installation/Ubuntu}
Es empfiehlt sich, vorher auf einem Computer (mit GUI und Browser) ein Skript mit den folgenden Befehlen vorzubereiten und dieses Skript auf auf das ODROID zu kopieren, damit man dieses nur noch ausführen muss. Ansonsten muss man die Befehle manuell eintippen.
......@@ -151,7 +184,7 @@ Es empfiehlt sich, vorher auf einem Computer (mit GUI und Browser) ein Skript mi
Alle weiteren Schritte mit ROS werden in den ROS Tutorials beschrieben:\\
\url{http://wiki.ros.org/ROS/Tutorials}
\subsection{AdHoc Netzwerk}
\subsubsection{AdHoc Netzwerk}
Man kann die ODROIDs über ein gemeinsames WLAN-Netzwerk kommunizieren lassen. In einem Szenario, wo echte Autos in Kolonne fahren sollen, ist so ein WLAN-Netzwerk jedoch meist nicht vorhanden.
Für die drahtlose Kommunikation zwischen den ODROIDs verwenden wir daher ein AdHoc Netzwerk.
Dafür empfiehlt es sich, ein Skript zu erstellen.
......@@ -176,5 +209,7 @@ Nun kann man mit \lstinline{crontab} (\url{https://wiki.ubuntuusers.de/Cron/}) e
Dazu muss man nun \lstinline{crontab -e} ausführen und die folgende Zeile einfügen: \lstinline{@reboot /root/connectAdHoc.sh}. Eventuell ist noch folgender Schritt nötig, um crond automatisch beim Hochfahren zu starten: \lstinline{update-rc.d cron defaults}.
Falls das AdHoc Netzwerk steht, kann man sich mittels \lstinline{ssh root@10.42.43.1} mit dem ODROID verbinden.
\end{document}
Bei uns kam es vor, dass das AdHoc Netzwerk gelegentlich abgestürzt ist.
In \lstinline{crontab -e} kann man dann noch folgende Zeile einfügen, um das Adhoc Netzwerk alle 2 Minuten neuzustarten bzw., das entsprchende Skript auszuführen: \lstinline{*/2 * * * * /root/connectAdHoc.sh}.
\end{document}
\ No newline at end of file
......@@ -37,6 +37,3 @@ F\"ur alle Tests gilt: Sollte etwas unvorhergesehenes passieren, z.B Hardwarefeh
\end{tabularx}
\caption{AT - 01 Akzeptanztest Minimum} \label{tab:AT - 01 Akzeptanztest Minimum}
\end{table}
\subsubsection{Zeitplan}
Die Durchf\"uhrung des Tests wird voraussichtlich am Ende des Wintersemesters 2017/2018, also Mitte Februar 2018 stattfinden.
......@@ -37,7 +37,7 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\item Fahrbahn mit Kurven durch 2 weiße Streifen markieren.
\item Fahrzeug auf die Strecke stellen.
\item Fahrzeug booten.
\item Laptop mit Fahrzeug.
\item Laptop mit Fahrzeug verbinden.
\item Sollgeschwindigkeit von 5m/s an Fahrzeug \"ubertragen.
\item Nach 10s eine Sollgeschwindigkeit von 0m/s an Fahrzeug \"ubertragen und Test beenden.
\end{enumerate}} \\ \hline
......@@ -90,16 +90,12 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\tabHead{Ablauf} &
\tabBody{\begin{enumerate}[leftmargin=*]
\item Fahrzeug 1 hinstellen.
\item Fahrzeug 2 hinter Fahrzeug 1 stellen
\item Fahrzeuge booten.
\item Laptop mit Fahrzeug 1 und 2 verbinden.
\item Create-Platoon Befehl an beide Fahrzeuge senden.
\item Status beider Fahrzeuge auslesen.
\item Kolonnenprogramm auf zwei Rechnern laufen lassen.
\item Create Platoon auf beiden Programmen ausf\"uhren.
\end{enumerate}} \\ \hline
\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
\tabBody{Beide Programme sind in einer Kolonne. Ein Programm ist dabei Leader und das andere Follower.} \\ \hline
\tabHead{Ergebnis} &
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
......@@ -116,12 +112,8 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\tabHead{Ablauf} &
\tabBody{\begin{enumerate}[leftmargin=*]
\item Mit 2 Fahrzeugen den Test ``Kolonne erstellen'' durchf\"uhren.
\item Fahrzeug 3 hinter die ersten beiden Fahrzeuge stellen.
\item Fahrzeug 3 booten.
\item Fahrzeug 3 mit Laptop verbinden.
\item Join-Platoon Befehl an Fahrzeug 3 senden.
\item Status der Fahrzeuge auslesen.
\item Kolonnenprogramm auf zwei Rechnern laufen lassen.
\item
\end{enumerate}} \\ \hline
\tabHead{erwartetes Ergebnis} &
......@@ -161,30 +153,7 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\rowcolors{1}{light-gray}{white}
\begin{tabularx}{\textwidth}{|c|X|} \hline
\tabHead{Id} &
\tabBody{FT - 07 Kolonne verlassen} \\ \hline
\tabHead{Ablauf} &
\tabBody{\begin{enumerate}[leftmargin=*]
\item Mit 2 Fahrzeugen den Test ``Kolonne erstellen'' durchf\"uhren.
\item Leave-Platoon Befehl an Fahrzeug 2 senden.
\item Status der Fahrzeuge auslesen.
\end{enumerate}} \\ \hline
\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}
\begin{table}[H] \centering
\rowcolors{1}{light-gray}{white}
\begin{tabularx}{\textwidth}{|c|X|} \hline
\tabHead{Id} &
\tabBody{FT - 08 CACC Minimum} \\ \hline
\tabBody{FT - 07 CACC Minimum} \\ \hline
\tabHead{Ablauf} &
\tabBody{\begin{enumerate}[leftmargin=*]
......@@ -203,14 +172,14 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
\end{tabularx}
\caption{FT - 08 CACC Minimum} \label{tab:FT - 08 CACC Minimum}
\caption{FT - 07 CACC Minimum} \label{tab:FT - 07 CACC Minimum}
\end{table}
\begin{table}[H] \centering
\rowcolors{1}{light-gray}{white}
\begin{tabularx}{\textwidth}{|c|X|} \hline
\tabHead{Id} &
\tabBody{FT - 09 CACC IPD} \\ \hline
\tabBody{FT - 08 CACC IPD} \\ \hline
\tabHead{Ablauf} &
\tabBody{Siehe Akzeptanztest.} \\ \hline
......@@ -222,14 +191,14 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
\end{tabularx}
\caption{FT - 09 CACC IPD} \label{tab:FT - 09 CACC IPD}
\caption{FT - 8 CACC IPD} \label{tab:FT - 08 CACC IPD}
\end{table}
\begin{table}[H] \centering
\rowcolors{1}{light-gray}{white}
\begin{tabularx}{\textwidth}{|c|X|} \hline
\tabHead{Id} &
\tabBody{FT - 10 CACC IPS} \\ \hline
\tabBody{FT - 09 CACC IPS} \\ \hline
\tabHead{Ablauf} &
\tabBody{-} \\ \hline
......@@ -241,5 +210,5 @@ Hier werden die Tests spezifiziert, die \"uberpr\"ufen, ob das System die im Las
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
\end{tabularx}
\caption{FT - 10 CACC IPS} \label{tab:FT - 10 CACC IPS}
\caption{FT - 09 CACC IPS} \label{tab:FT - 09 CACC IPS}
\end{table}
......@@ -56,10 +56,11 @@ Hier werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die
\item Ultraschallsensoren mit Odroid verbinden.
\item Odroid booten.
\item Ultraschallsensoren einschalten.
\item Sensor ansteuern und Messung in cm initialisieren.
\end{enumerate}} \\ \hline
\tabHead{erwartetes Ergebnis} &
\tabBody{Die Sensoren wurden erfolgreich eingeschaltet und sind einsatzbereit} \\ \hline
\tabBody{Der Ultraschallsensor gibt die Entfernung zum n\"achsten Hindernis in cm aus.} \\ \hline
\tabHead{Ergebnis} &
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
......@@ -79,10 +80,11 @@ Hier werden Tests spezifiziert, die die Funktionsbereitschaft der Hardware, die
\item Kamera mit Odroid verbinden.
\item Odroid booten.
\item Kamera einschalten.
\item Bilddaten auslesen.
\end{enumerate}} \\ \hline
\tabHead{erwartetes Ergebnis} &
\tabBody{Die Kamera is eingeschaltet und einsatzbereit} \\ \hline
\tabBody{Die Kamera ist eingeschaltet und Bilder konnten ausgelesen werden.} \\ \hline
\tabHead{Ergebnis} &
\tabBody{siehe \nameref{tab:Testergebnisse}} \\ \hline
......
......@@ -2,29 +2,27 @@
\begin{center}
\begin{table}[H]
\begin{tabular}{| p{6cm} | l | l | l |}
\begin{tabular}{| p{5cm} | p{5cm} | 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} & & & \\
Testcase & Ergebnis & Durchgef\"uhrt am \\ \hline
\nameref{tab:HT - 01 Odroid testen} & Ok & 8.1.2018 \\ \hline
\nameref{tab:HT - 02 Ultraschallsensoren testen} & Ok. Reichweite in cm ausgegeben & 20.4.2018 \\ \hline
\nameref{tab:HT - 03 Kamera testen} & & \\ \hline
\nameref{tab:HT - 04 STM testen} & Ok & 31.1.2018 \\ \hline
\nameref{tab:HT - 05 Motor- und Reifensteuerung testen} & Ok. R\"ader konnten angesteuert werden und haben sich gedreht. & 20.4.2018 \\ \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} & Konstante Messwerte bei Messung gegen eine Wand. Starke Varianz bei nicht statischen Objekten z.B. Papier vorhalten oder Gardinen. & 20.4.2018 \\ \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} & Ok & 13.04.2018 \\ \hline
\nameref{tab:FT - 05 Kolonne beitreten} & & \\ \hline
\nameref{tab:FT - 06 Kolonne verlassen} & & \\ \hline
\nameref{tab:FT - 07 CACC Minimum} & & \\ \hline
\nameref{tab:FT - 08 CACC IPD} & & \\ \hline
\nameref{tab:FT - 09 CACC IPS} & & \\ \hline
\nameref{tab:AT - 01 Akzeptanztest Minimum} & & \\
\hline
\end{tabular}
\caption{Testergebnisse} \label{tab:Testergebnisse}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment