Compare commits

..

7 Commits

Author SHA1 Message Date
Ryan Alder
7b90ea81a6 Adjusted gantt chart to represent what happened 2020-05-28 19:15:23 -07:00
e44fbc1b75 Update requirements for draft 2 2019-10-25 21:12:50 -07:00
RyanAlder
2cd4d2d2e7 asdf 2019-10-17 12:04:10 -07:00
RyanAlder
482997190f asdf 2019-10-17 11:36:56 -07:00
RyanAlder
3dbec5c451 Write more 2019-10-16 23:08:08 -07:00
923cc6a49e Merge branch 'master' of dev.danilafe.com:CS-46X/requirements 2019-10-16 19:15:24 -07:00
dca41013a0 Flesh out requirements so more 2019-10-16 19:09:12 -07:00

View File

@@ -1,4 +1,8 @@
\documentclass[10pt, draftclsnofoot,onecolumn]{IEEEtran} \documentclass[10pt, draftclsnofoot,onecolumn]{IEEEtran}
\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
\let\endchangemargin=\endlist
\usepackage{todonotes} \usepackage{todonotes}
\usepackage{caption} \usepackage{caption}
\usepackage{pgfgantt} \usepackage{pgfgantt}
@@ -6,10 +10,25 @@
\begin{document} \begin{document}
\title{Fenceless Grazing Requirements} \title{Fenceless Grazing Requirements}
\author{Danila Fedorin \and Matthew Sessions \and Ryan Alder} \author{Danila Fedorin, \and Matthew Sessions, \and Ryan Alder}
\maketitle \maketitle
\begin{abstract}
The Fenceless Grazing Collar System is an application of the LoRa and
LoRaWAN internet of things technologies to animal farming. It will be
implemented as a collar with which each individual farm animal will be
equipped. The fenceless grazing system must be capable of precisely
tracking high numbers of farm animals, controlling
these animals using sound and electric shocks, and allowing end users
(typically farmers) to monitor the animals and adjust their desired
location.
\end{abstract}
\pagebreak
\tableofcontents
\pagebreak
% From: ISO/IEC/IEEE 29148:2011, page 44 % From: ISO/IEC/IEEE 29148:2011, page 44
% 1. Introduction % 1. Introduction
% 1.1 System purpose % 1.1 System purpose
@@ -41,14 +60,16 @@
The purpose of the Fenceless Grazing Collar (FGC) system is to reduce the The purpose of the Fenceless Grazing Collar (FGC) system is to reduce the
need for human supervision in farming through the tracking and automated need for human supervision in farming through the tracking and automated
management of individual farm animals, controlled by humans through management of individual farm animals, controlled by humans through
a remote digital system. a remote digital system. The FGC will decrease the time required to move
\todo{This probably needs to be expanded on} animals to new grazing areas by allowing farmers to manage these animals from
the comfort of their home. Interaction with the fenceless system will
be done via a smartphone application, and will allow complete control and
surveillance of all animals.
\subsection{System scope} \subsection{System scope}
A table containing systems which the FGC project is seeking to replace A table containing systems which the FGC project is seeking to replace
or influence, as well as a description of the intended interaction or influence, as well as a description of the intended interaction
between the FGC project and the system, are shown in Figure \ref{fig:system_scope}. between the FGC project and the system, are shown in Figure \ref{fig:system_scope}.
\todo{More rows + header}
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\captionsetup{justification=centering} \captionsetup{justification=centering}
@@ -68,7 +89,7 @@ between the FGC project and the system, are shown in Figure \ref{fig:system_scop
\subsection{System overview} \subsection{System overview}
\subsubsection{System context} \subsubsection{System context}
At present, despite the continued industrialization in numerious other indestries, animal At present, despite the continued industrialization in numerous other industries, animal
farming replies on human labor to manage and herd farm animals. This requires significant farming replies on human labor to manage and herd farm animals. This requires significant
time and effort, which could be more effectively spent elsewhere. The GFC system intends time and effort, which could be more effectively spent elsewhere. The GFC system intends
to automate the various human involvement in animal farming. to automate the various human involvement in animal farming.
@@ -79,7 +100,7 @@ the use of GPS tracking and LoRa long-range communication tehcnology, a collar
is to provide information regarding the present location of the farm is to provide information regarding the present location of the farm
animal equipped with said collar. Furthermore, the collar is to be animal equipped with said collar. Furthermore, the collar is to be
able to discourage undesired behavior such as leaving a designated area able to discourage undesired behavior such as leaving a designated area
from the animal through the use of loud and unpleasant sounds and electrical chock. from the animal through the use of loud and unpleasant sounds and electrical shock.
The collar is also to collect data regarding the behavior of various animals, The collar is also to collect data regarding the behavior of various animals,
for use in making decision regarding the livestock or otherwise. for use in making decision regarding the livestock or otherwise.
@@ -90,10 +111,32 @@ locations for the animals through this software, observe the current locations
of the animals, and read the data collected by the collars. of the animals, and read the data collected by the collars.
\subsubsection{User characteristics} \subsubsection{User characteristics}
?? \todo{Finish this} The desired user base for the FGC application are farmers who own livestock that
require constant grazing. These farmers would tend to have large fields in which
their livestock feed. Additionally, they may not be familliar with the advanced
usage of electronics (including smartphones or hardware).
\subsection{Definitions} \subsection{Definitions}
?? \todo{Finish this} \subsubsection{LoRa}
\section{References} LoRa (stands for Long Range) is a communication protocol developed by Semtech
found on the link layer of the protocol stack. LoRa is a spread spectrum modulation
technique derived from chirp spread specetrum (CSS) technology, and excels
at long range communication, while keeping battery usage down. LoRa was designed
exclusively for Internet of Things (IOT) applications, and is able to operate
with a large number of different LoRa end-nodes.
\subsubsection{LoRaWAN}
LoRaWAN is the communication protocol found on the MAC network layer on the network
stack. LoRaWAN, an open source protocol, interacts with LoRa to transfer data up
to the application layer. LoRaWAN leverages the unlicensed radio spectrum in the
Industrial, Scientific and Medical (ISM) band. The LoRaWAN protocol is managed
by the LoRa Alliance instead of Semtech, and serves to connect all of the end-nodes
with the gateways and the wider internet.
\subsubsection{LoRa Gateway}
A LoRa Gateway is simply the machine that runs LoRaWAN to interact with each end-node,
and usually directs traffic to another server or the wider internet.
\subsubsection{LoRa End-node}
The LoRa end-node refers to each node running the LoRa and LoRaWAN protocol. In this
project, each collar will be an end-node.
\section{System requirements} \section{System requirements}
\subsection{Functional requirements} \subsection{Functional requirements}
\subsubsection{GPS} \subsubsection{GPS}
@@ -123,8 +166,6 @@ and shock must not only be sufficient to infuence the animals,
but also safe: they should not cause harm or excessive discomfort but also safe: they should not cause harm or excessive discomfort
to the animal. to the animal.
\todo{investigate legal guidelines?}
\subsubsection{Control Application} \subsubsection{Control Application}
The project must contain a functional mobile application for The project must contain a functional mobile application for
the Android platform, capable of interfacing with the collars the Android platform, capable of interfacing with the collars
@@ -133,7 +174,16 @@ to adjust the boundaries of the prescribed region and visualize
the locations of individual animals on a map. the locations of individual animals on a map.
\subsubsection{Data Collection} \subsubsection{Data Collection}
@ryan you know more about this than I care to research. \todo{finish this} All of the collars must remain in constant communication with the LoRa
gateway, and subsequently the server. There must be an SQL database holding
the most up to date information about each animal, including location,
name, type, id (primary key), and any other applicable information
necessary for operation of the Android application. Data will be collected
from each collar at an interval to minimize collision but maximize
data throughput, and will be based on the number of LoRa end-nodes
(collars) and the number of LoRa gateways. In this application, there is
little need to communicate at a rapid rate, and the collars will interact
with the gateway most likely at a rate of once every few minutes.
\subsubsection{Effective Area} \subsubsection{Effective Area}
Because many farms have significant numbers of livestock, and consequently Because many farms have significant numbers of livestock, and consequently
@@ -155,47 +205,134 @@ if necessary, the Android application \emph{should} assume domain specific knowl
in the area of agriculture, since its intended audience is from this field. in the area of agriculture, since its intended audience is from this field.
\subsubsection{Servicability of Collars} \subsubsection{Servicability of Collars}
Because the collars are intended to be battery-based, they will need to be serviced,
with the minimum goal of replacing or recharging the on-board batteries. This
must be possible to people with no prior technical experience, as the presence
of such experience is not guaranteed among the expected client base. Other common
servicing goals, such as cleaning the device, should also be easy to accomplish
without an understanding of the architecture or implementation of the FGC system.
\subsection{Performance requirements} \subsection{Performance requirements}
\subsubsection{Battery Efficiency}
Since the FGC device is battery powered and will require maintenance upon
reaching low battery levels, it's important that the device is able to
maintain an operational level of charge for long periods of time. That
is, the number and duration of servicing actions should be low, in alignment
with the original goal of reducing human labor. At minimum, the device
should remain operational for 7 days (1 week).
\subsubsection{Support for Multiple Collars}
As mentioned above, the goal for hte FGC system is to support large herds of animals,
which normally require significant portions of time to be dedicated by humans.
In order to properly support large herds, it must be possible for the system
to support as many as 100 concurrently active collars without issue. This
requirement applies to the collars themselves and the Android application:
\begin{itemize}
\item The collars themselves should not experience difficulties when concentrated
in large groups (farm animals instinctively tend towards proximity).
\item The Android application, given hardware that is not greatly outdated,
should be able to display and manage this number of collars without
additional delays.
\end{itemize}
\subsection{System interface} \subsection{System interface}
\subsection{System operations} \subsubsection{LoRa}
The main communication protocol that will be used for this project
is LoRa and LoRaWAN. Each collar will be fitted with a proprietary
LoRa chip, and LoRa gateway(s) will be configured based on the desired
number of operational collars. LoRaWAN will be configured and implemented
for communication with the end nodes and the server.
%\subsection{System operations}
%\todo{this?}
\subsection{System modes and states} \subsection{System modes and states}
Besides the "standard" operational mode for the collar, it
is useful to envision other modes that help in troubleshooting
and setting up the FGC system. We define the following modes:
\subsubsection{Standard}
In this mode, the device uses the defined
"out of bounds" area to determine whether or not to emit a negative
stimulus. The produced negative stimuli are as defined in the
sounds and electrical shock section of the functional requirements.
\subsubsection{Electric Shock Test}
In this mode, the device operates identically to the standard mode
described above, with the exception of not generating electrical
shocks. Instead, the device should emit a different sound (or
a visual signal) to indicate when the shock would have been delivered.
This allows for safe testing of the device's behavior around area boundaries.
\subsection{Physical characteristics} \subsection{Physical characteristics}
\subsubsection{Weight}
It's necessary for the device to be physically bearable by livestock for indefinite
periods of time. If the resulting collar is a constant and noticable weight on the
farm animal, it would serve as an unnecessary and permanent source of stress. Besides
the ethical considerations of subjecting an animal to a constant level of stress through
unnecessary physical labor (i.e. carrying a collar that is too heavy), this goes against
the purpose of the project, since it will likely reduce the quality of the resulting animal
management below the level that can be provided by humans.
\subsubsection{Form Factor}
In order to be able to effectively use the collar, it must fit comfortably on target farm
animals. In the initial prototype, these animals will be cows, and thus, a requirement
for the project is that the collar can be put onto, and stay on a farm cow.
\subsection{Environmental conditions} \subsection{Environmental conditions}
\subsection{System security} \subsubsection{Water Resistance}
\subsection{Information management} The product will be tested in collaboration with Oregon State University's College of Animal
\subsection{Policies and regulations} Science, and therefore, will be tested in Oregon's climate. Since rain is very common
\subsection{System life cycle sustainment} during the winter months in Western Oregon, the device must be readily able to withstand
\subsection{Packaging, handling, shipping and transportation} such conditions, without sustaining any damage.
\section{Verification}
\subsubsection{Temperature}
As this project will be designed and tested in Oregon, the vast differences in temperature
throughout the year must be considered. The collars must be able to constantly operate in
temperatures below freezing during the winter, and temperatures in excess of 100 degrees
fahrenheit during the summer.
%\subsection{System security}
%\todo{Do we need this?}
%\subsection{Information management}
%\todo{Do we need this?}
%\subsection{Policies and regulations}
%\todo{Do we need this?}
%\subsection{System life cycle sustainment}
%\todo{Do we need this?}
%\subsection{Packaging, handling, shipping and transportation}
%\todo{Do we need this?}
%\section{Verification}
%\todo{Someone else please}
\section{Gantt Chart} \section{Gantt Chart}
\begin{changemargin}{-2cm}{0cm}
\begin{ganttchart}[ \begin{ganttchart}[
x unit=.55mm, x unit=.65mm,
time slot format=isodate time slot format=isodate
]{2019-10-01}{2020-06-30} ]{2019-10-01}{2020-06-30}
\gantttitlecalendar{year, month=name} \\ \gantttitlecalendar{year, month=name} \\
\ganttgroup{Collar}{2019-10-01}{2020-05-15} \\
\ganttgroup{Collar}{2019-10-01}{2020-03-01} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\ \ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttmilestone{Purchase Parts}{2020-01-03} \\ \ganttmilestone{Purchase Hardware}{2020-01-03} \\
\ganttbar{Assemble}{2020-01-05}{2020-02-01} \\ \ganttbar{Assemble}{2020-01-05}{2020-02-01} \\
\ganttbar{Test}{2020-02-01}{2020-03-01} \\ \ganttmilestone{Purchase Hardware}{2020-02-01} \\
\ganttgroup{Server}{2019-10-01}{2020-05-01} \\ \ganttbar{Assemble}{2020-02-01}{2020-02-15} \\
\ganttbar{Develop/Test}{2020-02-15}{2020-05-15} \\
\ganttgroup{Server}{2019-10-01}{2020-05-15} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\ \ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttbar{Implement}{2020-01-01}{2020-04-01} \\ \ganttbar{Develop/Test}{2020-01-01}{2020-05-15} \\
\ganttbar{Test}{2020-04-01}{2020-05-01} \\ \ganttgroup{Application}{2019-10-01}{2020-05-15} \\
\ganttgroup{Application}{2019-10-01}{2020-05-01} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\ \ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttbar{Implement}{2020-01-01}{2020-04-01} \\ \ganttbar{Develop/Test}{2020-01-01}{2020-05-15} \\
\ganttbar{Test}{2020-04-01}{2020-05-01} \\ \ganttgroup{Project}{2019-10-01}{2020-06-15} \\
\ganttgroup{Project}{2019-10-01}{2020-06-30} \\ \ganttbar{Finalize Project}{2020-05-15}{2020-06-15}
\ganttbar{Finalize}{2020-05-01}{2020-06-15}
\ganttlink{elem1}{elem2} \ganttlink{elem1}{elem2}
\ganttlink{elem2}{elem3} \ganttlink{elem2}{elem3}
\ganttlink{elem3}{elem4} \ganttlink{elem3}{elem4}
\ganttlink{elem6}{elem7} \ganttlink{elem4}{elem5}
\ganttlink{elem7}{elem8} \ganttlink{elem5}{elem6}
\ganttlink{elem10}{elem11} \ganttlink{elem8}{elem9}
\ganttlink{elem11}{elem12} \ganttlink{elem11}{elem12}
\end{ganttchart} \end{ganttchart}
\end{changemargin}
\end{document} \end{document}