\documentclass[10pt, draftclsnofoot,onecolumn]{IEEEtran}
\usepackage{todonotes}
\usepackage{caption}
\usepackage{pgfgantt}
\linespread{1}
\begin{document}

\title{Fenceless Grazing Requirements}
\author{Danila Fedorin \and Matthew Sessions \and Ryan Alder}

\maketitle

% From: ISO/IEC/IEEE 29148:2011, page 44
% 1. Introduction
%     1.1 System purpose
%     1.2 System scope
%     1.3 System overview
%         1.3.1 System context
%         1.3.2 System functions
%         1.3.3 User characteristics
%     1.4 Definitions
% 2. References
% 3. System requirements
%     3.1 Functional requirements
%     3.2 Usability requirements
%     3.3 Performance requirements
%     3.4 System interface
%     3.5 System operations
%     3.6 System modes and states
%     3.7 Physical characteristics
%     3.8 Environmental conditions
%     3.9 System security
%     3.10 Information management
%     3.11 Policies and regulations
%     3.12 System life cycle sustainment
%     3.13 Packaging, handling, shipping and transportation
% 4. Verification (parallel to subsections in Section 3)

\section{Introduction}
\subsection{System purpose}
The purpose of the Fenceless Grazing Collar (FGC) system is to reduce the
need for human supervision in farming through the tracking and automated
management of individual farm animals, controlled by humans through
a remote digital system.
\todo{This probably needs to be expanded on}

\subsection{System scope}
A table containing systems which the FGC project is seeking to replace
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}.
\todo{More rows + header}
\begin{figure}[h]
    \centering
    \captionsetup{justification=centering}

    \begin{tabular}{c p{12cm}}
        Animal herding & The FGC system will be used replace humans and trained animals that currently
            manage and control farm animals. \\
        Data collection & Among the goals for the FGC sytem is to collect data from the animals being herded,
            in order to help farmers make informed decisions. The FGC system can either serve as the first
            means of data collection, a replacement for an existing data collection mechanism, or as a
            complement to such a mechanism. \\
    \end{tabular}

    \caption{Fenceless Grazing System Scope}
    \label{fig:system_scope}
\end{figure}

\subsection{System overview}
\subsubsection{System context}
At present, despite the continued industrialization in numerious other indestries, animal
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
to automate the various human involvement in animal farming.

\subsubsection{System functions}
Primarily, the FGC system serves as a tracking and management device. Through
the use of GPS tracking and LoRa long-range communication tehcnology, a collar
is to provide information regarding the present location of the farm
animal equipped with said collar. Furthermore, the collar is to be
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. 

The collar is also to collect data regarding the behavior of various animals,
for use in making decision regarding the livestock or otherwise.

Additionally, a component of the system is a piece of software that allows
for the remote management of collars. Users should be able to adjust "allowed"
locations for the animals through this software, observe the current locations
of the animals, and read the data collected by the collars.

\subsubsection{User characteristics}
?? \todo{Finish this}
\subsection{Definitions}
?? \todo{Finish this}
\section{References}
\section{System requirements}
\subsection{Functional requirements}
\subsubsection{GPS}
It is imperative that the FGC system precisely tracks the locations of
animals that are equipped with a collar. As the name of the system
suggests, the system may be deployed in replacement of fenced-off
areas. As such, failure to correctly identify the location
of an animal may lead to the animal moving outside the desired area.
Since many farms border wooded areas, highways or roads, it is then possible
that an animal whose location was not properly reported will wonder
into traffic or another dangerous location. We specify
the maximum uncertainty in the location of an animal to be
3 feet.

In addition to being precise with the GPS coordinates, the system
must be tolerant of the aforementioned uncertainty. The analysis
of the reported location should prevent the possibility of a collar 
not producing a negative stimulus due to a fluctuation of measurement.

\subsubsection{Sound and Electrical Shock}
Simply being aware of the animal's location is insufficient
to properly control its behavior without human intervention.
As such, the collars must be able to create stimuli
that farm animals find unpleasant, effectively training
them to avoid performing actions that are undesirable. The sound
and shock must not only be sufficient to infuence the animals,
but also safe: they should not cause harm or excessive discomfort
to the animal.

\todo{investigate legal guidelines?}

\subsubsection{Control Application}
The project must contain a functional mobile application for
the Android platform, capable of interfacing with the collars
in the field. This application should, at minimum, be usable
to adjust the boundaries of the prescribed region and visualize
the locations of individual animals on a map.

\subsubsection{Data Collection}
@ryan you know more about this than I care to research. \todo{finish this}

\subsubsection{Effective Area}
Because many farms have significant numbers of livestock, and consequently
a large grazing area, it's necessary that the FGC system is functional
at large distances. We require that the sysem is functional at distances
as large as 5 kilometers, which is half of the maximum range of the
LoRa technology. A consequence of this requirement is also that the system
is entirely wireless, since it is not feasible to provide cables or wires
that span the maximum area of 5 kilometers.

\subsection{Usability requirements}
\subsubsection{Accessibility of Application}
Because the FGC system is intended to be used by farmers as a replacement
for manual labor, it must be accessible to farmers with knowledge
of the domain, but not necessarily of the inner workings of the FGC implementation.
Thus, the final Android application must be usable, without significant prior training,
by non-technical people from the agricultural industry. On the other hand,
if necessary, the Android application \emph{should} assume domain specific knowledge
in the area of agriculture, since its intended audience is from this field.

\subsubsection{Servicability of Collars}

\subsection{Performance requirements}
\subsection{System interface}
\subsection{System operations}
\subsection{System modes and states}
\subsection{Physical characteristics}
\subsection{Environmental conditions}
\subsection{System security}
\subsection{Information management}
\subsection{Policies and regulations}
\subsection{System life cycle sustainment}
\subsection{Packaging, handling, shipping and transportation}
\section{Verification}
\section{Gantt Chart}
\begin{ganttchart}[
	x unit=.55mm,
	time slot format=isodate
]{2019-10-01}{2020-06-30}
\gantttitlecalendar{year, month=name} \\

\ganttgroup{Collar}{2019-10-01}{2020-03-01} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttmilestone{Purchase Parts}{2020-01-03} \\
\ganttbar{Assemble}{2020-01-05}{2020-02-01} \\
\ganttbar{Test}{2020-02-01}{2020-03-01} \\
\ganttgroup{Server}{2019-10-01}{2020-05-01} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttbar{Implement}{2020-01-01}{2020-04-01} \\
\ganttbar{Test}{2020-04-01}{2020-05-01} \\
\ganttgroup{Application}{2019-10-01}{2020-05-01} \\
\ganttbar{Design}{2019-10-20}{2020-01-01} \\
\ganttbar{Implement}{2020-01-01}{2020-04-01} \\
\ganttbar{Test}{2020-04-01}{2020-05-01} \\
\ganttgroup{Project}{2019-10-01}{2020-06-30} \\
\ganttbar{Finalize}{2020-05-01}{2020-06-15}
\ganttlink{elem1}{elem2}
\ganttlink{elem2}{elem3}
\ganttlink{elem3}{elem4}
\ganttlink{elem6}{elem7}
\ganttlink{elem7}{elem8}
\ganttlink{elem10}{elem11}
\ganttlink{elem11}{elem12}
\end{ganttchart}
\end{document}
