document update'
authorMart Lubbers <mart@martlubbers.net>
Wed, 16 Dec 2015 10:14:50 +0000 (11:14 +0100)
committerMart Lubbers <mart@martlubbers.net>
Wed, 16 Dec 2015 10:14:50 +0000 (11:14 +0100)
marsrover/document/Makefile
marsrover/document/evaluation.tex [moved from marsrover/document/dev.tex with 100% similarity]
marsrover/document/map.tex [deleted file]
marsrover/document/marsrover.bib [new file with mode: 0644]
marsrover/document/marsrover.tex
marsrover/document/requirements.tex [moved from marsrover/document/req.tex with 100% similarity]
marsrover/document/robot.tex [new file with mode: 0644]

index 47cf1a5..8dd1783 100644 (file)
@@ -1,6 +1,7 @@
 LATEX:=latex
+BIBTEX:=bibtex
 DOCUMENT:=marsrover
-SOURCES:=map.tex req.tex dev.tex
+SOURCES:=requirements.tex robot.tex evaluation.tex
 
 .SECONDARY: $(addsuffix .fmt,$(DOCUMENT))
 .PHONY: clean
@@ -10,9 +11,11 @@ all: $(DOCUMENT).pdf
 %.pdf: %.dvi
        dvipdfm $<
 
-%.dvi: %.tex %.fmt $(SOURCES)
+%.dvi: %.tex %.fmt %.bib $(SOURCES)
        $(LATEX) $(basename $@)
        $(LATEX) $(basename $@)
+       $(BIBTEX) $(basename $@)
+       $(LATEX) $(basename $@)
 
 %.fmt: preamble.tex
        $(LATEX) -ini -jobname="$(basename $@)" "&$(LATEX) $<\dump"
diff --git a/marsrover/document/map.tex b/marsrover/document/map.tex
deleted file mode 100644 (file)
index 686e483..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-\section{Robot architecture}
-\subsection{Mapping of the sensors and actuators}
-The actuators are all plugged into the master brick to achieve the maximum
-safety in case the \emph{Bluetooth} connection fails between the master and the
-slave and one of the actuators is moving. All the safety-critical sensors for
-movement are placed on the master brick too. All other sensors are placed on
-the slave brick. Any increased latency on those sensors will not danger the
-safety. The final mapping is described in \autoref{tab:mapping}.
-
-\begin{table}[H]
-       \centering
-       \begin{tabular}{lll}
-               \toprule
-                       & Master Brick & Slave Brick\\
-               \midrule
-               \multirow{2}{*}{Actuators} & Left motor\\
-                       & Right motor & \\
-                       & Measurement motor\\
-               \midrule
-               \multirow{4}{*}{Sensors} & Left light sensor & Color sensor\\
-                       & Right light sensor & Front ultrasone sensor\\
-                       & Back ultrasone sensor & Left touch sensor\\
-                       & Gyro sensor & Right touch sensor\\
-               \bottomrule
-       \end{tabular}
-       \caption{Proposed mapping of the sensors and actuators}\label{tab:mapping}
-\end{table}
-
-\subsection{Design patterns}
diff --git a/marsrover/document/marsrover.bib b/marsrover/document/marsrover.bib
new file mode 100644 (file)
index 0000000..7dc3519
--- /dev/null
@@ -0,0 +1,22 @@
+
+@article{brooks_robust_1986,
+       title = {A robust layered control system for a mobile robot},
+       volume = {2},
+       url = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1087032},
+       number = {1},
+       urldate = {2015-12-16},
+       journal = {Robotics and Automation, IEEE Journal of},
+       author = {Brooks, Rodney},
+       year = {1986},
+       pages = {14--23},
+       file = {01087032.pdf:/home/mart/.zotero/zotero/ofn8ivnf.default/zotero/storage/RRTSK9H5/01087032.pdf:application/pdf}
+}
+
+@misc{lejos_team_lejos_2015,
+       title = {{LeJOS} {EV}3 {API} {Documentation}},
+       url = {http://www.lejos.org/ev3/docs/},
+       urldate = {2015-12-16},
+       author = {LeJOS Team},
+       month = nov,
+       year = {2015}
+}
\ No newline at end of file
index 17addd5..0ca8aef 100644 (file)
@@ -3,7 +3,9 @@
 \maketitle
 \tableofcontents
 \newpage
-\input{req.tex}
-\input{map.tex}
-\input{dev.tex}
+\input{requirements.tex}
+\input{robot.tex}
+\input{evaluation.tex}
+\bibliographystyle{ieeetr}
+\bibliography{marsrover}
 \end{document}
diff --git a/marsrover/document/robot.tex b/marsrover/document/robot.tex
new file mode 100644 (file)
index 0000000..5140b15
--- /dev/null
@@ -0,0 +1,64 @@
+\section{Robot architecture}
+\subsection{Tools}
+\emph{LeJOS}\cite{lejos_team_lejos_2015}
+
+\subsection{Design patterns}
+\subsubsection{Leader-Follower}
+Ultimately we want to only program one robot. The fact that the one robot
+contains multiple control bricks is something that needs to be abstracted away
+from. As will be discussed in Section~\ref{sec:mapping} the first brick, from
+now on \textit{Leader}, has the direct control over all the motors. However the
+second brick, from now on \textit{Follower}, controls no motors. Both the
+\textit{Leader} and the \textit{Follower} control $4$ sensors. Because of this
+configuration the \textit{Follower} only needs to send its sensor data to the
+\textit{Leader}. There is no need to communicate anything back since the
+\textit{Follower} can not respond in any physical way. An option could be to
+distribute the processing power but due to the strength of the bricks and the
+limitation of the bluetooth this is very hard or even impossible to achieve.
+
+\subsubsection{Subsumption}
+As the higher level architecture we use a slightly adapted version of the
+subsumption architecture first described by Brooks\cite{brooks_robust_1986}.
+We use the pre-implemented architecture from the \emph{LeJOS} where with the
+use of a \texttt{suppressed} flag in every behaviour we can start and interrupt
+the behaviour. Our version is a little bit adapted from the original
+subsumption behaviour because in our implementation the robot can finish the
+designated task even if the behaviour does not want control anymore. For
+example when the left light sensor detects that the robot is driving of the
+planet a right turn of $90$ degrees may be initiated. This right turn will be
+completed even when the left light sensor is not detecting a dangerous value.
+The suppressed flag can take three states. \texttt{IDLE}, \texttt{IN\_ACTION}
+and \texttt{SUPPRESSED}. By default all behaviours have the \texttt{IDLE}
+state. When a behaviour is started the state will change to \texttt{IN\_ACTION}
+and when a behaviour finished the state will be reset to \texttt{IDLE}. When a
+behaviour needs to be interrupted the state is set to \texttt{SUPPRESSED} and
+since the behaviour is always monitoring the state it will shutdown as soon as
+possible and reset the state.
+
+\subsection{Mapping of the sensors and actuators}\label{sec:mapping}
+The actuators are all plugged into the master brick to achieve the maximum
+safety in case the \emph{Bluetooth} connection fails between the master and the
+slave and one of the actuators is moving. All the safety-critical sensors for
+movement are placed on the master brick too. All other sensors are placed on
+the slave brick. Any increased latency on those sensors will not danger the
+safety. The final mapping is described in \autoref{tab:mapping}.
+
+\begin{table}[H]
+       \centering
+       \begin{tabular}{lll}
+               \toprule
+                       & Master Brick & Slave Brick\\
+               \midrule
+               \multirow{2}{*}{Actuators} & Left motor\\
+                       & Right motor & \\
+                       & Measurement motor\\
+               \midrule
+               \multirow{4}{*}{Sensors} & Left light sensor & Color sensor\\
+                       & Right light sensor & Front ultrasone sensor\\
+                       & Back ultrasone sensor & Left touch sensor\\
+                       & Gyro sensor & Right touch sensor\\
+               \bottomrule
+       \end{tabular}
+       \caption{Proposed mapping of the sensors and actuators}\label{tab:mapping}
+\end{table}
+