<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%=======================================================================
\subsection{Preliminaries: Pavilion Coordinates}
\label{sec_coords}

The MIT Sailing Pavilion is the center of operations for the Pavlab,
or Marine Autonomy Lab. The \var{(0,0)} coordinates, or datum, is
located at: \var{42.358456, -71.087589}.  These datum coordinates are
declared in the top of every \var{.moos} file in this lab, and set in
the plug file \var{plug\_origin\_warp.moos}:

\vspace{0.1in}
\begin{fileverb}
// MIT Sailing Pavilion                                                                   
LatOrigin  = 42.358456
LongOrigin = -71.087589
\end{fileverb}
\vspace{0.1in}

\noindent
All other coordinates are usually configured in local coordinates
relative to the above datum.

\vspace{0.1in}
\begin{figure}[H]
  \centering 
  \includegraphics[width=0.82\textwidth]{figs_common/pavlab_coords.png}
  \caption{Useful coordinates related to the rescue lab. There are two
    playing field rectangles, a large one (\var{"pav90"}) roughly the
    extent of the docks, and a smaller region (\var{"pav60"}) closer to
    the Pavlab doors on the East end of the dock.}
  \label{fig_pavlab_coords}
\end{figure}
\vspace{0.1in}

\noindent
Note there are two rectangles representing a small and large operation
area. The smaller area (\var{pav60}) is typically used for in-water
tests involving one or two vehicles. The larger area (\var{pav90}) is
typically used for in-water tests involving two-on-two competitions.

\vspace{0.1in}
\noindent
These two regions can be passed to the \app{gen\_swimmers} app:

\vspace{0.1in}
\begin{consoleverb}
$ gen_swimmers = --pav60 --swimmers=15  
$ gen_swimmers = --pav90 --swimmers=17 --unreg=11
\end{consoleverb}
\vspace{0.1in}

\vspace{0.1in}
\noindent
Likewise, in the baseline mission, a new set of random swimmer
locations can be generated at launch time with either of the two MIT
regions:

\vspace{0.1in}
\begin{consoleverb}
$ ./launch.sh --pav60 --rescue 10
$ ./launch.sh --pav90 --rescue-rescue --swimmers=17 10
\end{consoleverb}
\vspace{0.1in}

\noindent
The boundaries of the playing field are read in by \app{uFldRescueMgr}
from the swim file. The swim file is a key config parameter for this
app, and it contains the location of all the swimmers. The region will
will be communicated to the vehicles, through the MOOS variable
\mvar{RESCUE\_REGION}. For example, for the larger region above:

\vspace{0.1in}
\noindent
\mvar{RESCUE\_REGION = pts=\{60,10:99,-71:-37,-136:-76,-54\}}

\vspace{0.1in}
\noindent
The region message is received by the vehicle and is ingested by the
\var{OpRegion} behavior in the helm, so the vehicle will know the
playing field.





</pre></body></html>