From c9506d94c22f96ba5ffea707f5040fcc9d6c3c3f Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Thu, 3 Dec 2015 14:13:01 +0100 Subject: [PATCH] preliminary plannig in report --- marsrover/document/Makefile | 2 +- marsrover/document/dev.tex | 102 ++++++++++++++++--------------- marsrover/document/map.tex | 29 +++++++++ marsrover/document/marsrover.tex | 2 +- marsrover/document/prop.tex | 27 -------- marsrover/document/req.tex | 11 ++-- 6 files changed, 89 insertions(+), 84 deletions(-) create mode 100644 marsrover/document/map.tex delete mode 100644 marsrover/document/prop.tex diff --git a/marsrover/document/Makefile b/marsrover/document/Makefile index c2430d1..47cf1a5 100644 --- a/marsrover/document/Makefile +++ b/marsrover/document/Makefile @@ -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 diff --git a/marsrover/document/dev.tex b/marsrover/document/dev.tex index db2be80..0ef4dd8 100644 --- a/marsrover/document/dev.tex +++ b/marsrover/document/dev.tex @@ -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 index 0000000..746bda5 --- /dev/null +++ b/marsrover/document/map.tex @@ -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} diff --git a/marsrover/document/marsrover.tex b/marsrover/document/marsrover.tex index 250e769..17addd5 100644 --- a/marsrover/document/marsrover.tex +++ b/marsrover/document/marsrover.tex @@ -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 index 95b9a1a..0000000 --- a/marsrover/document/prop.tex +++ /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} diff --git a/marsrover/document/req.tex b/marsrover/document/req.tex index f13b6f1..9b518af 100644 --- a/marsrover/document/req.tex +++ b/marsrover/document/req.tex @@ -19,17 +19,16 @@ 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.\\ -- 2.20.1