preliminary plannig in report
authorMart Lubbers <mart@martlubbers.net>
Thu, 3 Dec 2015 13:13:01 +0000 (14:13 +0100)
committerMart Lubbers <mart@martlubbers.net>
Thu, 3 Dec 2015 13:13:01 +0000 (14:13 +0100)
marsrover/document/Makefile
marsrover/document/dev.tex
marsrover/document/map.tex [new file with mode: 0644]
marsrover/document/marsrover.tex
marsrover/document/prop.tex [deleted file]
marsrover/document/req.tex

index c2430d1..47cf1a5 100644 (file)
@@ -1,6 +1,6 @@
 LATEX:=latex
 DOCUMENT:=marsrover
-SOURCES:=prop.tex req.tex dev.tex
+SOURCES:=map.tex req.tex dev.tex
 
 .SECONDARY: $(addsuffix .fmt,$(DOCUMENT))
 .PHONY: clean
index db2be80..0ef4dd8 100644 (file)
@@ -3,65 +3,69 @@ The development plan is written following the spiral software development model
 in which all requirements are divided into small iterations. Each of the
 iterations will have an implementation phase, a testing phase, an analysis
 phase, and a design phase. Furthermore, each of the iterations will have goals
-and results. The iterations are listed in \autoref{tab:devit}.
-The deadline of the iterations are listed in \autoref{tab:deadli}.
-
+and results. The iterations and their deliverables are listed in
+\autoref{tab:devit}. The schedule for finishing iterations are listed in
+\autoref{tab:deadli}. On the 23rd of december the must should be finished and
+if they are we try to complete as many iterations as possible.
 \begin{table}[h!]
        \centering
-       \begin{tabu} to \linewidth{lX}
+       \begin{tabu} to \linewidth{llX}
                \toprule
-               Iteration & Description\\
+               Deadline & Iterations\\
                \midrule
-               1 & Create a basic DSL for MarsRover's missions to use available
-                       sensors and actuators.\\
-               2 & Test the DSL and make it works in MarsRover.\\
-               3 & Create a functionality to use motors for the movement. The actions
-                       are drive forward, drive backward, stop, turn left, and turn
-                       right.\\
-               4 & Create a functionality to use right sensor, left sensor, and back
-                       ultrasone sensor.\\
-               5 & Create a functionality to keep the MarsRover in the planet. This
-                       will combine the use of the motors for the movement and the most
-                       safety critical sensors.\\
-               6 & Implement a protocol for the communication between two bricks.\\
-               7 & Implement color sensor and create a functionality to find lakes by
-                       color.\\
-               8 & Implement front ultrasone sensor and create a functionality to find
-                       rocks.\\
-               9 & Implement functionality to avoid rocks.\\
-               10 & Implement measurement motor and create a functionality to measure
-                       lakes and rocks.\\
-               11 & Implement left and right touch sensors. Also, create a
-                       functionality to push rocks.\\
-               12 & Implement a functionality to be able to perform multiple missions
-                       in sequence.\\
-               13 & Implement Gyro sensor and create a functionality to park MarsRover
-                       in the corner.\\
-               14 & Implement a functionality to remember where the lakes are after
-                       the MarsRover found them.\\
-               15 & Implement a functionality to play a sound for the viewer's
-                       notification.\\
-               16 & Implement SLAM functionality and make the MarsRover be able to
-                       navigate with the map.\\
+               3 Dec 2015 & 1--2\\
+               9 Dec 2015 & 3--5\\
+               16 Dec 2015 & 6--9\\
+               23 Dec 2015 & 10--11\\
                \bottomrule
        \end{tabu}
-       \caption{Spiral model iterations}\label{tab:devit}
+       \caption{Deadlines}\label{tab:deadli}
 \end{table}
 \begin{table}[h!]
        \centering
-       \begin{tabu} to \linewidth{llX}
+       \begin{tabu} to \linewidth{rlXX}
                \toprule
-               Deadline & Iterations & General Outputs\\
+               It. & Req. & Description & Deliverables\\
                \midrule
-               9 Dec 2015 & Iteration 1--6 & MarsRover is able to wander and does not 
-                                                                               fall of the planet.\\
-               16 Dec 2015 & Iteration 7--10 & MarsRover is able to find and measure lakes 
-                                                                               and rocks. MarsRover is also able to avoid rocks.\\
-               23 Dec 2015 & Iteration 11--13 & MarsRover is able to push rocks and park in 
-                                                                               a garage.\\
-               6 Jan 2016 & Iteration 14--16 & MarsRover is able to play sound and navigate 
-                                                                               with the map.\\
+               1 & NR1 & Create a DSL for MarsRover's missions to use available
+                       sensors and actuators. & \texttt{TaskDSL.xtext}\\
+               2 & ER3 & Implement diagnostic functions that print on the \emph{LCD}.
+                       & A \emph{LCD} class that prints to the \emph{LCD} screen.\\
+               3 & - & Implement functions in the code generation for basic motor the
+                       motor actions: forward, backward, measure rock, measure lake and
+                       wait. & Code
+                       generation for motors\\
+               4 & - & Implement functions in the code generation for communicating
+                       the sensors from the slave to the master. & Functions in the master
+                       program to read the slave's sensors.\\
+               5 & - & Create functionality for sensor values and determine the
+                       treshholds manually. & Code generation for sensors and threshhold
+                       constants.\\
+               6 & CR1 & Create functionality to keep the MarsRover in the planet. &
+                       A generatable behaviour to stay on the planet.\\
+               7 & MR3 & Create functionality for not bumping into rocks. & A
+                       generatable behaviour to not bump into rocks.\\
+               8 & MR1 & Create functionality to find lakes. & A generatable mission
+                       to find lakes.\\
+               9 & MR6 & Create functionality to perform missions in sequence. & A
+                       generatable main program that performs missions.\\
+               10 & MR2, MR4& Create functionality to find rocks. & A generatable
+                       mission to find rocks.\\
+               11 & MR5 & Create functionality to push rocks and detect when the
+                       robots is pushing. & A generatable behaviour for pushing.\\
+               12 & MR7 & Create functionality to find the parking space. & A
+                       generatable behaviour that can find the parking space.\\
+               13 & MR8, ER1 & Create functionality to map the environment and to
+                       localize. & A generatable behaviour that can map while
+                       performing.\\
+               14 & ER2 & Create functionality to play sounds. & Add a generatable
+                       function for playing sounds.\\
+               15 & NR3, NR4 & Create functionality to calibrate the sensor
+                       treshholds. & A generatable function to calibrate the sensors.\\
+               16 & NR5 & Create functionality that when the robot encounters bugs it
+                       can restart itself. & Functionality in the main program to do so.\\
+               17 & - & Speed up the behaviour of the robot within safety limits.\\
                \bottomrule
        \end{tabu}
-       \caption{Deadlines}\label{tab:deadli}
-\end{table}
\ No newline at end of file
+       \caption{Spiral model iterations}\label{tab:devit}
+\end{table}
diff --git a/marsrover/document/map.tex b/marsrover/document/map.tex
new file mode 100644 (file)
index 0000000..746bda5
--- /dev/null
@@ -0,0 +1,29 @@
+\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}
index 250e769..17addd5 100644 (file)
@@ -4,6 +4,6 @@
 \tableofcontents
 \newpage
 \input{req.tex}
-\input{prop.tex}
+\input{map.tex}
 \input{dev.tex}
 \end{document}
diff --git a/marsrover/document/prop.tex b/marsrover/document/prop.tex
deleted file mode 100644 (file)
index 95b9a1a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-\section{Proposal for mapping the sensors and actuators}
-We propose to have the components that are the most safety-critical on a single
-brick. In that way the robot can act upon a dangerous situation as quickly as
-possible. The most safety critical sensors are both the light sensors and the
-ultrasone sensor on the back since they detect if the robot almost falls of the
-planet. The most safety critical motors are the motors for the movement since
-they can prevent the robot from falling of the planet. The other actuators
-and sensors can be placed in any configuration. The full mapping proposal is
-described in \autoref{tab:mapping}.
-
-\begin{table}[h]
-       \centering
-       \begin{tabular}{lll}
-               \toprule
-                       & Brick $1$ & Brick $2$\\
-               \midrule
-               \multirow{2}{*}{Actuators} & Left motor & Measurement motor\\
-                       & Right 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}
index f13b6f1..9b518af 100644 (file)
        MR3 & \textsc{M} & Avoid rocks.\\
        MR4 & \textsc{M} & Measure rocks and lakes.\\
        MR5 & \textsc{M} & Push away rocks.\\
-       MR6 & \textsc{M} & Be able to run automatically when it starts.\\
-       MR7 & \textsc{M} & Be able to perform multiple missions in sequence.\\
-       MR8 & \textsc{S} & Park robot in a garage.\\
-       MR9 & \textsc{S} & Remember where the lakes are after the robot found
+       MR6 & \textsc{M} & Be able to perform multiple missions autonomously\\
+       MR7 & \textsc{S} & Park robot in a garage.\\
+       MR8 & \textsc{S} & Remember where the lakes are after the robot found
                them.\\
        ER1 & \textsc{C} & SLAM\footnote{Simultaneous localization and mapping}
                and be able to navigate with the map.\\
        ER2 & \textsc{C} & Sounds playing to notify the viewers.\\
-       ER3 & \textsc{C} & Display diagnostic information on the screen at all
+       ER3 & \textsc{M} & Display diagnostic information on the screen at all
                times.\\
-       \midrule
+       \midrule\midrule
 
        \multicolumn{3}{l}{Non-functional requirements}\\
        NR1 & \textsc{M} & The code should be generated by a DSL.\\