From 3e4c679d56d0283ab36e6f3c607d393874caf673 Mon Sep 17 00:00:00 2001 From: ReCarbonated Date: Tue, 31 Oct 2017 23:15:14 -0700 Subject: [PATCH] Added Requirements Document --- .../requirements/figures/OSURCLogoOrange.png | Bin 0 -> 13297 bytes ...egon_State_College_of_Engineering_Logo.jpg | Bin 0 -> 46455 bytes .../requirements/requirements.tex | 409 ++++++++++++++++++ 3 files changed, 409 insertions(+) create mode 100644 cs_capstone_documents/requirements/figures/OSURCLogoOrange.png create mode 100644 cs_capstone_documents/requirements/figures/Oregon_State_College_of_Engineering_Logo.jpg create mode 100644 cs_capstone_documents/requirements/requirements.tex diff --git a/cs_capstone_documents/requirements/figures/OSURCLogoOrange.png b/cs_capstone_documents/requirements/figures/OSURCLogoOrange.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa6b92c33c81b8f6ce6fd701892da8e36e9c50b GIT binary patch literal 13297 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 H8wdXn<#co( literal 0 HcmV?d00001 diff --git a/cs_capstone_documents/requirements/figures/Oregon_State_College_of_Engineering_Logo.jpg b/cs_capstone_documents/requirements/figures/Oregon_State_College_of_Engineering_Logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a96c00d9d35ea6f60b9ff96fec0c63a0ea7bcbb8 GIT binary patch literal 46455 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 literal 0 HcmV?d00001 diff --git a/cs_capstone_documents/requirements/requirements.tex b/cs_capstone_documents/requirements/requirements.tex new file mode 100644 index 0000000..d5c4f68 --- /dev/null +++ b/cs_capstone_documents/requirements/requirements.tex @@ -0,0 +1,409 @@ +\documentclass[onecolumn, draftclsnofoot, 10pt, compsoc]{IEEEtran} +\usepackage{graphicx} +\graphicspath{{./figures/}} + +\usepackage{url} +\usepackage{setspace} +\usepackage{multicol} + +\usepackage{geometry} +\geometry{textheight=9.5in, textwidth=7in} + +% \overfullrule=2in + +% 1. Fill in these details +\def \CapstoneTeamName{ Ground Station Software Team} +\def \CapstoneTeamNumber{ 30} +\def \GroupMemberOne{ Kenneth Steinfeldt} +\def \GroupMemberTwo{ Christopher Pham} +\def \GroupMemberThree{ Corwin Perren} +\def \CapstoneProjectName{ OSU Robotics Club\\Mars Rover Ground Station} +\def \CapstoneSponsorCompany{ OSU Robotics Club} +\def \CapstoneSponsorPerson{ Nick McComb} + + + +%Personal \newcommands + +\newcommand{\functRequ}[4]{ +\item #1% +\par +\begin{itemize} +\item \textit{Description:} #2.% +\item \textit{Rationale:} #3.% +\item \textit{Dependencies:} #4% +\end{itemize} +} + + + + + + + + + + +% 2. Uncomment the appropriate line below so that the document type works +\def \DocType{ %Problem Statement + Requirements Document + %Technology Review + %Design Document + %Progress Report + } + +\newcommand{\NameSigPair}[1]{ + \par + \makebox[2.75in][r]{#1} + \hfill + \makebox[3.25in]{ + \makebox[2.25in]{\hrulefill} + \hfill + \makebox[.75in]{\hrulefill} + } + \par\vspace{-12pt} + \textit{ + \tiny\noindent + \makebox[2.75in]{} + \hfill + \makebox[3.25in]{ + \makebox[2.25in][r]{Signature} + \hfill + \makebox[.75in][r]{Date} + } + } +} +% 3. If the document is not to be signed, uncomment the command below +\renewcommand{\NameSigPair}[1]{#1} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} +\begin{titlepage} + \pagenumbering{gobble} + \begin{singlespace} + % 4. If you have a logo, use this includegraphics command to put it on the coversheet. + \begin{minipage}{7in} + \centering + \hspace*{-.7in} + $\vcenter{\hbox{\includegraphics[height=4cm]{Oregon_State_College_of_Engineering_Logo}}}$ + \hspace*{.2in} + $\vcenter{\hbox{\includegraphics[height=2.5cm]{OSURCLogoOrange}}}$ + \end{minipage} + + \par\vspace{.35in} + \centering + \scshape{ + \huge CS Capstone \DocType \par + {\large\today}\par + \vspace{.5in} + \textbf{\Huge\CapstoneProjectName}\par + \vfill + {\large Prepared for}\par + \Huge \CapstoneSponsorCompany\par + \vspace{5pt} + {\Large\NameSigPair{\CapstoneSponsorPerson}\par} + {\large Prepared by }\par + Group\CapstoneTeamNumber\par + % 5. comment out the line below this one if you do not wish to name your team + \CapstoneTeamName\par + \vspace{5pt} + {\Large + \NameSigPair{\GroupMemberOne}\par + \NameSigPair{\GroupMemberTwo}\par + \NameSigPair{\GroupMemberThree}\par + } + \vspace{20pt} + \begin{abstract} + % 6. Fill in your abstract + % NEW ABSTRACT HERE!!!!!!!!!!!!!! + + \end{abstract} + } + \end{singlespace} +\end{titlepage} +\newpage +\pagenumbering{arabic} +\tableofcontents +\clearpage + +% 8. now you write! +% \section{General Notes for Writing This Document} +% \begin{itemize} +% \item Needs a Gantt chart at the end +% \item Should be a full listing of the tasks to be completed +% \item NO HOW QUESTIONS, ONLY WHAT +% \item User stories +% \item Make a separate section for stretch goals +% \end{itemize} +\section{Introduction} +\subsection{Purpose} +The purpose of this document is to formally define the characteristics of the software to be implemented. +These requirements can then be used to determine if the software is complete once the project is done, while also serving as a reference during. +\subsection{Scope} +We will be creating the "Mars Rover Ground Station" software package. +This software will allow Rover team members to interact with the Oregon State University Robotics Club's Mars Rover for the purpose of a competition taking place in Utah during June of 2018. +The software will provide Rover systems monitoring as well as control of drive and arm systems. +During competition, the software will be run on a remote base station operated out of the Mars Desert Research Station or the back of a truck, allowing users to tele-operate the Rover during manned controlled mission, or to monitor progress during autonomous missions. +Properly functioning and fully featured ground station software will be a major factor in the success of the Mars Rover during this competition. +\subsection{Definitions / Acronyms / Abbreviations} +\begin{itemize} +\item ROS - Robot Operating System +\item PyQT - Python Graphical User Interface framework +\item GPS - Global Positioning Satellite +\item User - Person operating rover from ground control station +\item GUI - Graphical User Interface +\item RTT - Round-trip Time, the length of time for a signal to be sent plus the length of the time it takes for an acknowledgement of the signal to be received. +\item Bogie - The individual wheels on the Rover, each with the ability to be driven independently. +\item IMU - Inertial Measurement Unit +\end{itemize} +\subsection{Overview} +The remainder of this document consists of 4 sections and will describe the requirements that must be met in order for this project to be considered fully complete. The next section gives a description of the process. + +The fourth section describes the ground control software's functions, user characteristics, constraints, and assumptions and dependencies. +The fifth section describes the specific requirements that must be met for the process to be a success. +Finally, stretch goals in the sixth section will describe hopeful, but not mandatory goals for the software. + +\section{Description} +\subsection{Product Perspective} +This project interacts with and requires the Robotics Club's Mars Rover robotics vehicle in order to be useful. +If the Rover is not connected, the software will still be able to launch, but will not perform any useful functions until it has established a connection to the Rover. +In order to accomplish interaction with the rover, the ground station software will use ROS for primary functionality and feedback from the rover. +\section{Product Functions} +The ground control software will primarily accomplish two tasks: +\begin{itemize} +\item Provide Rover control to the user +Direct rover control will be accomplished with two joysticks. +\item Enable and present rover feedback to the user +The rover will send health and status information to the ground control station. +\end{itemize} +\subsection{User Characteristic} +Users of the Rover Ground Station software will comprise of Rover team leads and members. These members will be partially to extremely well versed on the capabilities of the Rover. + +\subsubsection{User Stories} +\begin{itemize} +\item User should be able to vary bandwidth as needed +\item User should be able view ground station UI on two 1080p monitors +\item User should be able to add way-points +\item User should be able to remove way-points +\item User should be able to edit way-points +\item User should be able to change the order of way-points +\item User should be able to control the Rover by joysticks +\item User should be able to select video streams +\item User should be able to view the pitch, yaw, roll of the Rover +\item User should be able to switch off and on autonomy +\item User should be able to tell that autonomy is enabled +\item User should be able to tell that the rover has reached the location after autonomy is enabled +\item User should be able to view how the arm is bent +\item User should be able to control the arm +\item User should be able to view live logs from the Rover +\item User should be able to set the Rover speed limit +\item User should be able to view the CPU usage +\item User should be able to view the memory usage +\item User should be able to view the drive usage +\item User should be able to see the speed of the Rover +\item User should be able to see how accurate the GPS positioning is +\item User should be able to see what heading the Rover is at +\item User should be able to see the maximum throughput of the network +\item User should be able to see the current latency +\item User should be able to confirm connected devices +\end{itemize} +\subsection{Constraints} +Due to the nature of the Mars Rover project, there are multiple hardware and software constraints to ensure that the Ground Station software can properly communicate with the Rover. +Additionally, the following constraints will help ensure future re-usability of the finalized software, which is a key goal of the Mars Rover team. +\par +The software language allowed is the primary constraint for this project. +Python 3 is required by the Mars Rover team as it maintains consistency with the software written on the Rover itself. +The team also requires Python as it more easily allows future team members to reverse engineer code to be reused in future projects. +\par +Use of the QT application framework is another constraint placed by the Rover team in order to facilitate rapid prototyping of the user interface for this project. +It will also allow for faster and easier modification both by future members of the team, and during competition as that has previously been necessary. +\par +The Rover internally uses ROS to handle routing and interpreting control and status information as well as video data, so this project must also use ROS so that it may interface with that data. +\par +At a hardware level, the Rover team will be providing an Intel NUC desktop computer running Ubuntu 16.04 that the Ground Station software will need to be able to run on. +They will also provide two HD monitors, two USB joysticks, as well as a keyboard and mouse that will be used to view and interact with the software. +\subsection{Assumptions / Dependencies} +\section{Specific Requirements} +\subsection{User Interfaces} +Upon initial launch, the application should be in full-screen mode across both of the monitors. +The left-hand screen will show navigation, Rover status, and miscellaneous Rover controls. +The right hand monitor will show the three live video streams from the Rover. +In the case that the software is started without a Rover to connect to, the software will display as-such and show placeholder information until such a connection is made. + +\subsection{Functional Requirements} +\subsubsection{Statuses} +\begin{enumerate} +\functRequ{Rover Connection Status} +{This indicator will show a binary state of whether or not the Rover is currently connected} +{The Rover must be connected in order for most of the software aspects to function. +It is also useful to tell when full network dropouts happen} +{None} + +\functRequ{Joystick Connection Statuses} +{Status indicators will visually show binary states as to whether each of the two joysticks are currently connected} +{Both joysticks must be properly connected to drive the Rover} +{Rover Connection Status} + +\functRequ{Rover Battery Status} +{This indicator will show a percentage of the battery running the Rover} +{The User should know how much battery is left to be able to determine remaining runtime and to diagnose other Rover errors} +{Rover Connection Status} + +\functRequ{Rover Voltage Statuses} +{These indicators will show the major power rail voltages for the Rover} +{The User can use this information to diagnose faulty hardware and to determine cause if Rover systems become non-responsive} +{Rover Connection Status} + +\functRequ{Bogie Connection Statuses} +{These indicators will show whether each of the six bogies are connected to the Rover} +{This will let drivers of the Rover know if a wheel has failed, which is a common occurrence} +{Rover Connection Status} + +\functRequ{Arm Connection Status} +{This indicator will be a binary state of weather or not the mechanical arm is connected or not} +{This will show the User that they will be able to control the arm} +{Rover Connection Status} + +\functRequ{Camera Presence Status} +{This indicator will show which cameras are connected via grid system} +{The User can use such system to verify if a camera is functional when connected or not} +{Rover Connection Status} + +\functRequ{IMU Status} +{This will indicate the pitch, yaw, and roll} +{This can be used by the User to navigate terrain} +{Rover Connection Status} + +\functRequ{Map Visualizer} +{This will display the map around the Rover or of some input location} +{This can be used to see terrain maps of the area} +{Rover Connection Status} + +\functRequ{Rover Computer Status} +{This indicator will show the current CPU, memory, and disk usage} +{This can be used to ensure the Rover processing computer is not overloaded. +It can also show potential software failures while serving as a useful indication that the connection to the Rover is stable} +{Rover Connection Status} + +\functRequ{Current Radio Signal Strength} +{This indicator will display the strength of the connection} +{The User can use this to determine if they need to push more power to the receiver or reduce it for power reductions} +{Rover Connection Status} + +\functRequ{Rover Network Potential Throughput} +{This indicator will show how many bits it may transfer through the connection} +{The User can use the information to control other data sources} +{Rover Connection Status, Current Radio Signal Strength} + +\functRequ{Rover RTT} +{This indicator will show how long in milliseconds the delay is} +{The User should know how long it might take for a sent input so interact with the rover}{Rover Connection Status} + +\functRequ{Rover Speed Limit} +{This slider controls the speed limit from the motors from 100\% to 0\%} +{????????????????????????????????????????} +{Rover Connection Status, Rover Bogie Status} +\end{enumerate} + +\subsubsection{Navigation} +\begin{enumerate} +\functRequ{GPS Status} +{This can poll that the GPS is available} +{This is needed to check to see if GPS is working and functioning} +{Rover Connection Status} + +\functRequ{Rover Speed Reading} +{This indicator shows how fast the Rover is moving} +{This can be used to show the Rover's current speed} +{Rover Connection Status, GPS Status} + +\functRequ{Rover Heading} +{This indicator will show what bearing the Rover is at currently} +{The user can use that to determine which way the map should be orientated} +{Rover Connection Status, GPS Status} + +\functRequ{GPS Satellites Connected} +{This indicator will show how many GPS satellites the module can access} +{?????????????????????????????????????????????????????????????????} +{Rover Connection Status, GPS Status} + +\functRequ{GPS Accuracy} +{This indicator will how correct the GPS is} +{This is used for autonomy mode and correctness of coordinates} +{Rover Connection Status, GPS Status, GPS Satellites Connected} + +\functRequ{Way-point Placement} +{Place way-points on a map, by GPS location, or by current Rover location to add a way-point to the queue system} +{This is used for autonomy mode and pathing} +{Rover Connection Status, GPS Status, GPS Satellites Connected, Map Visualizer} + +\functRequ{Way-point Editing} +{Edit any way-point} +{Can be used to change any placed way-points} +{Rover Connection Status, GPS Status, GPS Satellites Connected, Way-point Placement, Map Visualizer} + +\functRequ{Way-point Re-Ordering} +{Change the order of way-points} +{Used to change directions of the Rover} +{Rover Connection Status, GPS Status, GPS Satellites Connected, Way-point Placement, Map Visualizer} + +\functRequ{Way-Point Printing} +{Displays the queue of way-points onto a map} +{Shows the path that the Rover should be taking} +{Rover Connection Status, GPS Status, GPS Satellites Connected, Way-point Placement, Map Visualizer} + +\end{enumerate} +\subsubsection{Autonomy} +\begin{enumerate} +\functRequ{Autonomy Switch} +{A switch to toggle the autonomy of the Rover} +{This is to switch from User controlled to AI controlled Rover movement} +{Rover Connection Status} + +\functRequ{Autonomy Overlay} +{An overlay for the video stream to display that the Rover is running in autonomy mode} +{This is used to show that the system is not controlled by a User} +{Rover Connection Status, Autonomy Switch} + +\functRequ{Autonomy Indicator} +{An alert or indicator for when the Rover has reached its final way-point or stopped} +{This is used for the competition} +{Rover Connection Status, Autonomy Switch, Way-point Placement} +\end{enumerate} +\subsubsection{Camera Controls} + + +\subsubsection{Video Streams} +\begin{enumerate} + +\functRequ{Video Stream Bit-rate} +{This indicator will show the quality of the video stream(s)} +{The User would want to know what the bit-rate is to determine if the video stream quality should decrease or increase} +{Rover Connection Status, Rover RTT} + +\end{enumerate} +\subsubsection{Logging} +\begin{enumerate} + +\functRequ{Access to Log Files} +{From the software, the User should be able to view live logs} +{The User might want to access this stream to see any data that might help them troubleshoot} +{Rover Connection Status} + +\functRequ{Display Data Collection Sensors} +{Show data from the scientific or biological sensors attached to the rover} +{Used for competition} +{Rover Connection Status} + +\functRequ{Get Started Document} +{A document describing general details on how to start and reuse software and design guidelines} +{This will be useful for the Mars Rover team in future years} +{EVERYTHING} +\end{enumerate} + +\section{Stretch Goals} +\begin{itemize} +\item Rover arm 3d visualization +\item +\end{itemize} +\end{document} \ No newline at end of file