\hypertarget{classTerrainNav}{\section{Terrain\-Nav Class Reference}
\label{classTerrainNav}\index{Terrain\-Nav@{Terrain\-Nav}}
}


{\ttfamily \#include $<$Terrain\-Nav.\-h$>$}

Inheritance diagram for Terrain\-Nav\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classTerrainNav}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classTerrainNav_a6decd425873215b415744f38e1ebdd33}{Terrain\-Nav} ()
\item 
\hyperlink{classTerrainNav_ab092542a6637ba06369c8d1ab9eacbc2}{Terrain\-Nav} (char $\ast$map\-Name)
\item 
\hyperlink{classTerrainNav_af231a79bfadd97fd8d9ef6f7ebedaba9}{Terrain\-Nav} (char $\ast$map\-Name, char $\ast$vehicle\-Specs)
\item 
\hyperlink{classTerrainNav_ab1970f2f86ca6426374b2b93e80ca0d5}{Terrain\-Nav} (char $\ast$map\-Name, char $\ast$vehicle\-Specs, const int \&\hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type})
\item 
\hyperlink{classTerrainNav_ac082f9b625c9247526bf8be6c04c506b}{Terrain\-Nav} (char $\ast$map\-Name, char $\ast$vehicle\-Specs, const int \&\hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type}, char $\ast$directory)
\item 
\hyperlink{classTerrainNav_a32278dbe7954ea6a0392c8ee01ae466e}{Terrain\-Nav} (char $\ast$map\-Name, char $\ast$vehicle\-Specs, const int \&\hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type}, const int \&\hyperlink{classTerrainNav_a6cc9ef2df288c27467be10705c581133}{map\-Type})
\item 
\hyperlink{classTerrainNav_adc714c3145391c5c7642079918dcd86c}{Terrain\-Nav} (char $\ast$map\-Name, char $\ast$vehicle\-Specs, const int \&\hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type}, const int \&\hyperlink{classTerrainNav_a6cc9ef2df288c27467be10705c581133}{map\-Type}, char $\ast$directory)
\item 
virtual \hyperlink{classTerrainNav_a9e370e077839f2ad2f3bc449e3767887}{$\sim$\-Terrain\-Nav} ()
\item 
virtual void \hyperlink{classTerrainNav_ab20c3697ccdd0dbffad878c18895e6b5}{estimate\-Pose} (\hyperlink{structposeT}{pose\-T} $\ast$estimate, const int \&type)
\item 
virtual void \hyperlink{classTerrainNav_a170b571d596c66262e78e5fb62aabb5b}{meas\-Update} (\hyperlink{structmeasT}{meas\-T} $\ast$incoming\-Meas, const int \&type)
\item 
virtual void \hyperlink{classTerrainNav_a5b56c16a1518f72a1b04debdc221f745}{mb\-Update} (\hyperlink{structmbT}{mb\-T} $\ast$incoming\-Meas)
\item 
virtual void \hyperlink{classTerrainNav_aecba66814225f2b8c610341672b30897}{motion\-Update} (\hyperlink{structposeT}{pose\-T} $\ast$incoming\-Nav)
\item 
virtual bool \hyperlink{classTerrainNav_a137986aa835ca311af064c87db869ace}{outstanding\-Meas} ()
\item 
virtual bool \hyperlink{classTerrainNav_a0528af38cebc6a205a364da0de5c3c76}{last\-Meas\-Successful} ()
\item 
virtual void \hyperlink{classTerrainNav_a8ecb008581d1156687b43c2c384a0f00}{set\-Interp\-Meas\-Attitude} (bool set)
\item 
virtual void \hyperlink{classTerrainNav_a6c7a50b7362dfa4cf5f84804fe2c8c49}{set\-Map\-Interp\-Method} (const int \&type)
\item 
virtual void \hyperlink{classTerrainNav_a0d30b069c096a544e656cfe8cee58829}{set\-Vehicle\-Drift\-Rate} (const double \&drift\-Rate)
\item 
virtual bool \hyperlink{classTerrainNav_a011cc11697bea555a1d74c77efb58f2d}{is\-Converged} ()
\item 
virtual int \hyperlink{classTerrainNav_aef4f240c533d6eef17e798b4cbce0462}{get\-Filter\-Type} ()
\item 
virtual void \hyperlink{classTerrainNav_ab6251385f7632e3ba430c21de7444bef}{use\-Low\-Grade\-Filter} ()
\item 
virtual void \hyperlink{classTerrainNav_a98b9275aafb1778179441c72129d8805}{use\-High\-Grade\-Filter} ()
\item 
virtual void \hyperlink{classTerrainNav_a92366f964f951b344dcb957611154319}{set\-Filter\-Reinit} (const bool allow)
\item 
void \hyperlink{classTerrainNav_a3408298f13371c7f0510ef6ec4eed1a6}{reinit\-Filter} (bool low\-Info\-Transition)
\item 
virtual void \hyperlink{classTerrainNav_abb35a93f46a999bd1ef193ab5b09d266}{set\-Modified\-Weighting} (const bool use)
\item 
virtual int \hyperlink{classTerrainNav_ac7f3d1153084d6b6c2e185d641bf49f4}{get\-Filter\-State} ()
\item 
virtual int \hyperlink{classTerrainNav_a653ff20d7dbf19281b9827c630967599}{get\-Num\-Reinits} ()
\item 
virtual bool \hyperlink{classTerrainNav_a573cb973d07781ba04101f343f41d6d7}{initialized} ()
\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classTNavFilter}{T\-Nav\-Filter} $\ast$ \hyperlink{classTerrainNav_a615f45c8f33aa7b5fab29323a1bd2994}{t\-Nav\-Filter}
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classTerrainNav_acd4d49a7504510f1f1013c7fccc02d31}{create\-Filter} (const int \hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type}, const double $\ast$window\-Var)
\item 
void \hyperlink{classTerrainNav_a4c7a3ed127dccf323165d0bd870ee3db}{init\-Variables} ()
\item 
void \hyperlink{classTerrainNav_ac430e9cc755c7b67f7035adb713295b6}{attempt\-Init\-Filter} (\hyperlink{structposeT}{pose\-T} \&init\-Estimate)
\item 
void \hyperlink{classTerrainNav_a199061f9b5cc023caf59db9f60dafdfe}{init\-Motion} (\hyperlink{structposeT}{pose\-T} \&init\-Estimate)
\item 
bool \hyperlink{classTerrainNav_afb1bbb70e30ff08a52c8ce4954d8f66f}{interpolate\-Poses} (const \hyperlink{structposeT}{pose\-T} \&pose1, const \hyperlink{structposeT}{pose\-T} \&pose2, \hyperlink{structposeT}{pose\-T} \&new\-Pose, const double new\-Time)
\item 
void \hyperlink{classTerrainNav_a8737b8df65e66e03a1ea417a0302a893}{compute\-Meas\-Variance} (\hyperlink{structmeasT}{meas\-T} \&curr\-Meas)
\item 
void \hyperlink{classTerrainNav_a811c038d8602096c5db125f3c22bc237}{check\-Velocity\-Validity} (\hyperlink{structposeT}{pose\-T} \&curr\-Pose)
\item 
void \hyperlink{classTerrainNav_ac14685db9b6514e95c589206f27f3ad6}{check\-Range\-Validity} (\hyperlink{structmeasT}{meas\-T} \&curr\-Meas)
\item 
bool \hyperlink{classTerrainNav_a86634bc887137314606fd945a64ec4bb}{check\-Filter\-Health} ()
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{structmeasT}{meas\-T} \hyperlink{classTerrainNav_a523bc02a5e6763004bf45cf478f65924}{waiting\-Meas} \mbox{[}\hyperlink{TerrainNav_8h_a8a81ef1b1c5d4ae4ae4263339d8c3d76}{M\-E\-A\-S\-\_\-\-B\-U\-F\-F\-E\-R\-\_\-\-S\-I\-Z\-E}\mbox{]}
\begin{DoxyCompactList}\small\item\em static array containing all unincorporated sonar measurements \end{DoxyCompactList}\item 
int \hyperlink{classTerrainNav_ad60a84209a34e804b8bb07d177efcf1d}{num\-Waiting\-Meas}
\begin{DoxyCompactList}\small\item\em integer indicating the current number of unincorporated sonar measurements \end{DoxyCompactList}\item 
bool \hyperlink{classTerrainNav_a65fe89a6607667fce2d54a41853181e3}{last\-Meas\-Success}
\item 
double \hyperlink{classTerrainNav_a1076b8e073d07712a33b3c94fc456c5d}{last\-Valid\-Vel} \mbox{[}3\mbox{]}
\item 
bool \hyperlink{classTerrainNav_a01f95f1825593c1b9a629771015201b0}{last\-Vel\-Bot\-Lock}
\item 
bool \hyperlink{classTerrainNav_ae61bcce63b390e8ca6b0cdd6008185a8}{last\-Meas\-Valid}
\begin{DoxyCompactList}\small\item\em status of last measurement -\/ only used for testing initialization \end{DoxyCompactList}\item 
double \hyperlink{classTerrainNav_ae26bdab6dafdb74caf6e642784908f4e}{last\-Valid\-Range} \mbox{[}4\mbox{]}
\item 
double \hyperlink{classTerrainNav_af3f6c1156fdd3092b9970902f7615744}{last\-Valid\-Range\-Time} \mbox{[}4\mbox{]}
\item 
bool \hyperlink{classTerrainNav_acffd9fafe3ea2404790787db625e8a00}{no\-Valid\-Range} \mbox{[}4\mbox{]}
\item 
double \hyperlink{classTerrainNav_af993937b91fd8a069782cf13f5812e55}{last\-Meas\-Success\-Time}
\begin{DoxyCompactList}\small\item\em last time associated with successful measurement update \end{DoxyCompactList}\item 
double \hyperlink{classTerrainNav_ac613b160f9df96d1632715d66a3bf88a}{last\-Init\-Attempt\-Time}
\begin{DoxyCompactList}\small\item\em time of last filter init attempt \end{DoxyCompactList}\item 
double \hyperlink{classTerrainNav_ae6d91ebff6a3d79873660e6015bb02aa}{last\-Bottom\-Lock\-Time}
\begin{DoxyCompactList}\small\item\em time of last bottom lock velocity \end{DoxyCompactList}\item 
\hyperlink{structposeT}{pose\-T} \hyperlink{classTerrainNav_abf12dd3eed724350f697da50ea30817e}{est\-Nav\-Offset}
\begin{DoxyCompactList}\small\item\em last valid estimated navigation offset \end{DoxyCompactList}\item 
bool \hyperlink{classTerrainNav_acde07f22bcce80ad0528e063e47d4e2c}{allow\-Filter\-Reinits}
\begin{DoxyCompactList}\small\item\em boolean indicating if filter reinitializations are allowed. \end{DoxyCompactList}\item 
bool \hyperlink{classTerrainNav_a7d0108b763aa09e824b86f64ab80d5b3}{use\-Modified\-Weighting}
\begin{DoxyCompactList}\small\item\em boolean indicating if modified weighting should be used. \end{DoxyCompactList}\item 
int \hyperlink{classTerrainNav_a9fa427d6e76e75629f5d2e5bec48b1cc}{num\-Reinits}
\begin{DoxyCompactList}\small\item\em counter for number of filter reinitializations \end{DoxyCompactList}\item 
char $\ast$ \hyperlink{classTerrainNav_ac8991ac1bf05aaac3bfc530983e89be6}{save\-Directory}
\item 
char $\ast$ \hyperlink{classTerrainNav_af34ab1f5addf32fc23c7421895138851}{vehicle\-Spec\-File}
\item 
char $\ast$ \hyperlink{classTerrainNav_a02762a2ed8d3fa7b1a7ff709e7c5f079}{map\-File}
\item 
int \hyperlink{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{filter\-Type}
\begin{DoxyCompactList}\small\item\em type of filter \end{DoxyCompactList}\item 
int \hyperlink{classTerrainNav_a6cc9ef2df288c27467be10705c581133}{map\-Type}
\begin{DoxyCompactList}\small\item\em type of map \end{DoxyCompactList}\item 
\hyperlink{classTerrainMap}{Terrain\-Map} $\ast$ \hyperlink{classTerrainNav_a0012620a1fc65cd9c31fee061ad03c06}{terrain\-Map}
\begin{DoxyCompactList}\small\item\em terrain\-Map object containing information about current map being used \end{DoxyCompactList}\item 
bool \hyperlink{classTerrainNav_a8a10cc6e61cd7a388a16595e5769ec56}{\-\_\-initialized}
\begin{DoxyCompactList}\small\item\em current state of filter \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class\-: \hyperlink{classTerrainNav}{Terrain\-Nav}

This class is used as an interface between a user and the underlying \hyperlink{classTNavFilter}{T\-Nav\-Filter} object which uses a terrain navigation algorithm to compute pose estimates based on sonar and inertial sensor measurements. This class's primary purpose is to appropriately handle incoming inertial and sonar measurements, pass them to the underlying \hyperlink{classTNavFilter}{T\-Nav\-Filter} object, and return pose estimates when requested by the user.

Intended use\-: \begin{DoxyVerb} Generate terrainNav object and estimate structures once at the start:
       TerrainNav *tercom = new TerrainNav(mapName, vehicleName,
                                          filterType);  
   poseT* tercomEst = new poseT;                        
       poseT* currInertialPose = new poseT; 
       measT* currMeas = new measT; 

 Incorporate inertial sensor information as it comes in:    
      tercom->motionUpdate(currInertialPose); 

 Incorporate sonar measurements as they come in:
       tercom->measUpdate(currMeas, dvl);

 Ask for most recent terrain navigation pose estimate:
       tercom->estimatePose(tercomEst, mmse);

 ***NAVIGATION AND MEASUREMENTS MUST BE ADDED SEQUENTIALLY IN TIME, 
    OTHERWISE SOME MEASUREMENTS MAY BE SKIPPED***
\end{DoxyVerb}


Note\-: This class can handle various combinations of sonar and inertial sensor data rates. If the sonar and inertial sensor measurements are out of sync, the inertial pose measurements are interpolated to provide an estimate of the vehicle pose associated with each sonar measurement. If the sonar data rate is faster than the inertial sensor data rate, sonar measurements are collected and stored until the next inertial sensor measurement comes in, at which point all collected measurements are added into the navigation filter in sequence. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classTerrainNav_a6decd425873215b415744f38e1ebdd33}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classTerrainNav_a6decd425873215b415744f38e1ebdd33}
\hypertarget{classTerrainNav_ab092542a6637ba06369c8d1ab9eacbc2}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_ab092542a6637ba06369c8d1ab9eacbc2}
Initializes a new \hyperlink{classTerrainNav}{Terrain\-Nav} with terrain map \char`\"{}map\-Name.\-txt\char`\"{}. The mapping A\-U\-V specs and the Point Mass Filter algorithm are used as defaults. \hypertarget{classTerrainNav_af231a79bfadd97fd8d9ef6f7ebedaba9}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name, }
\item[{char $\ast$}]{vehicle\-Specs}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_af231a79bfadd97fd8d9ef6f7ebedaba9}
Sets private variables map\-File = \char`\"{}map\-Name.\-txt\char`\"{}, vehicle\-Spec\-File = \char`\"{}vehicle\-Name.\-txt\char`\"{}, and save\-Directory = N\-U\-L\-L, default map\-Type = 1 (D\-E\-M). Makes a call to create\-Filter(1) to initialize a new \hyperlink{classTerrainNav}{Terrain\-Nav} object with default type = 1 (Point Mass Filter). \hypertarget{classTerrainNav_ab1970f2f86ca6426374b2b93e80ca0d5}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name, }
\item[{char $\ast$}]{vehicle\-Specs, }
\item[{const int \&}]{filter\-Type}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_ab1970f2f86ca6426374b2b93e80ca0d5}
Sets private variables map\-File = \char`\"{}map\-Name.\-txt\char`\"{}, vehicle\-Spec\-File = \char`\"{}vehicle\-Name.\-txt\char`\"{}, and save\-Directory = N\-U\-L\-L, default map\-Type = 1 (D\-E\-M). Makes a call to create\-Filter(filter\-Type) to initialize a new \hyperlink{classTerrainNav}{Terrain\-Nav} object with specified type. \hypertarget{classTerrainNav_ac082f9b625c9247526bf8be6c04c506b}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name, }
\item[{char $\ast$}]{vehicle\-Specs, }
\item[{const int \&}]{filter\-Type, }
\item[{char $\ast$}]{directory}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_ac082f9b625c9247526bf8be6c04c506b}
Sets private variables map\-File = \char`\"{}map\-Name.\-txt\char`\"{}, vehicle\-Spec\-File = \char`\"{}vehicle\-Name.\-txt\char`\"{}, and save\-Directory = \char`\"{}directory\char`\"{}, default map\-Type = 1 (D\-E\-M). Makes a call to create\-Filter(filter\-Type) to initialize a new \hyperlink{classTerrainNav}{Terrain\-Nav} object with specified type. \hypertarget{classTerrainNav_a32278dbe7954ea6a0392c8ee01ae466e}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name, }
\item[{char $\ast$}]{vehicle\-Specs, }
\item[{const int \&}]{filter\-Type, }
\item[{const int \&}]{map\-Type}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_a32278dbe7954ea6a0392c8ee01ae466e}
Sets private variables map\-File = \char`\"{}map\-Name.\-txt\char`\"{}, vehicle\-Spec\-File = \char`\"{}vehicle\-Name.\-txt\char`\"{}, and map\-Type = map\-Type (1 is D\-E\-M, 2 is octree). Makes a call to create\-Filter(filter\-Type) to initialize a new \hyperlink{classTerrainNav}{Terrain\-Nav} object with specified type. \hypertarget{classTerrainNav_adc714c3145391c5c7642079918dcd86c}{\index{Terrain\-Nav@{Terrain\-Nav}!Terrain\-Nav@{Terrain\-Nav}}
\index{Terrain\-Nav@{Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::\-Terrain\-Nav (
\begin{DoxyParamCaption}
\item[{char $\ast$}]{map\-Name, }
\item[{char $\ast$}]{vehicle\-Specs, }
\item[{const int \&}]{filter\-Type, }
\item[{const int \&}]{map\-Type, }
\item[{char $\ast$}]{directory}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_adc714c3145391c5c7642079918dcd86c}
Sets private variables map\-File = \char`\"{}map\-Name.\-txt\char`\"{}, vehicle\-Spec\-File = \char`\"{}vehicle\-Name.\-txt\char`\"{}, and save\-Directory = \char`\"{}directory\char`\"{}, map\-Type = map\-Type (1 is D\-E\-M, 2 is octree). Makes a call to create\-Filter(filter\-Type) to initialize a new \hyperlink{classTerrainNav}{Terrain\-Nav} object with specified type. \hypertarget{classTerrainNav_a9e370e077839f2ad2f3bc449e3767887}{\index{Terrain\-Nav@{Terrain\-Nav}!$\sim$\-Terrain\-Nav@{$\sim$\-Terrain\-Nav}}
\index{$\sim$\-Terrain\-Nav@{$\sim$\-Terrain\-Nav}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{$\sim$\-Terrain\-Nav}]{\setlength{\rightskip}{0pt plus 5cm}Terrain\-Nav\-::$\sim$\-Terrain\-Nav (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classTerrainNav_a9e370e077839f2ad2f3bc449e3767887}
Frees all storage associated with the \hyperlink{classTerrainNav}{Terrain\-Nav} object. 

\subsection{Member Function Documentation}
\hypertarget{classTerrainNav_ac430e9cc755c7b67f7035adb713295b6}{\index{Terrain\-Nav@{Terrain\-Nav}!attempt\-Init\-Filter@{attempt\-Init\-Filter}}
\index{attempt\-Init\-Filter@{attempt\-Init\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{attempt\-Init\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::attempt\-Init\-Filter (
\begin{DoxyParamCaption}
\item[{{\bf pose\-T} \&}]{init\-Estimate}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ac430e9cc755c7b67f7035adb713295b6}
Try to initialize the terrain navigation filter, \hyperlink{classTNavFilter}{T\-Nav\-Filter}, based on the first inertial sensor measurement contained in the init\-Estimate \hyperlink{structposeT}{pose\-T} structure. Initialization is only allowed if the following conditions are met\-:
\begin{DoxyEnumerate}
\item Vehicle has bottom lock
\item Vehicle has valid velocity measurements
\item Vehicle is within a valid region of the terrain map
\item Vehicle has valid sonar measurements
\item Vehicle is below the surface 
\end{DoxyEnumerate}\hypertarget{classTerrainNav_a86634bc887137314606fd945a64ec4bb}{\index{Terrain\-Nav@{Terrain\-Nav}!check\-Filter\-Health@{check\-Filter\-Health}}
\index{check\-Filter\-Health@{check\-Filter\-Health}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{check\-Filter\-Health}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::check\-Filter\-Health (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a86634bc887137314606fd945a64ec4bb}
This function checks the health of the filter and calls the \hyperlink{classTerrainNav_a3408298f13371c7f0510ef6ec4eed1a6}{reinit\-Filter()} function if necessary. This checks the health by performing the following checks\-: a. Check if the length of time since the last successful measurement exceeds a set maximum. (uses last\-Meas\-Success\-Time) b. Check if the x/y uncertainty of the filter exceeds a set maximum. (uses curr\-Var) \hypertarget{classTerrainNav_ac14685db9b6514e95c589206f27f3ad6}{\index{Terrain\-Nav@{Terrain\-Nav}!check\-Range\-Validity@{check\-Range\-Validity}}
\index{check\-Range\-Validity@{check\-Range\-Validity}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{check\-Range\-Validity}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::check\-Range\-Validity (
\begin{DoxyParamCaption}
\item[{{\bf meas\-T} \&}]{curr\-Meas}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ac14685db9b6514e95c589206f27f3ad6}
Check validity of Measured ranges. If invalid, changes beam\-Status flags in curr\-Meas to false. Validity check is based on the following\-:
\begin{DoxyEnumerate}
\item Na\-N range values
\item range falls within M\-I\-N\-\_\-\-R\-A\-N\-G\-E $<$ r $<$ M\-A\-X\-\_\-\-R\-A\-N\-G\-E boundaries
\item dr/dt of an individual beam exceeds M\-A\-X\-\_\-\-D\-R\-D\-T
\item all but one range measurement are equal 
\end{DoxyEnumerate}\hypertarget{classTerrainNav_a811c038d8602096c5db125f3c22bc237}{\index{Terrain\-Nav@{Terrain\-Nav}!check\-Velocity\-Validity@{check\-Velocity\-Validity}}
\index{check\-Velocity\-Validity@{check\-Velocity\-Validity}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{check\-Velocity\-Validity}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::check\-Velocity\-Validity (
\begin{DoxyParamCaption}
\item[{{\bf pose\-T} \&}]{curr\-Pose}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a811c038d8602096c5db125f3c22bc237}
Check validity of D\-V\-L/\-I\-N\-S velocity. If invalid, changes dvl\-Valid flag in curr\-Pose to false. Validity check is based on the following\-:
\begin{DoxyEnumerate}
\item velocity is below specified M\-A\-X
\item vehicle x-\/direction velocity is greater than zero (vehicle not stationary)
\item estimated acceleration exceeds specified M\-A\-X\-\_\-\-A\-C\-C\-E\-L 
\end{DoxyEnumerate}\hypertarget{classTerrainNav_a8737b8df65e66e03a1ea417a0302a893}{\index{Terrain\-Nav@{Terrain\-Nav}!compute\-Meas\-Variance@{compute\-Meas\-Variance}}
\index{compute\-Meas\-Variance@{compute\-Meas\-Variance}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{compute\-Meas\-Variance}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::compute\-Meas\-Variance (
\begin{DoxyParamCaption}
\item[{{\bf meas\-T} \&}]{curr\-Meas}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a8737b8df65e66e03a1ea417a0302a893}
Fills in the covariance array of the \char`\"{}curr\-Meas\char`\"{} \hyperlink{structmeasT}{meas\-T} struct with a \% of the measured range for each beam. If the covariance array is already filled or the current measurement has no corresponding sensor type, this function returns without making any changes. Otherwise, the percent\-Range\-Error property of the corresponding sensor is used to evaluate the variance as follows\-: sigma = percent\-Range\-Error$\ast$range; \hypertarget{classTerrainNav_acd4d49a7504510f1f1013c7fccc02d31}{\index{Terrain\-Nav@{Terrain\-Nav}!create\-Filter@{create\-Filter}}
\index{create\-Filter@{create\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{create\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::create\-Filter (
\begin{DoxyParamCaption}
\item[{const int}]{filter\-Type, }
\item[{const double $\ast$}]{window\-Var}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_acd4d49a7504510f1f1013c7fccc02d31}
Sets octree\-Map in t\-Nav\-Filter to o\-Map.

Initializes the terrain navigation filter object based on the specified filter type\-: 1\-: 3\-D Point Mass Filter (default -\/ T\-O\-D\-O\-:Make Other Filter Types work?) 2\-: 8\-D Particle Filter
\begin{DoxyEnumerate}
\item 3\-D Extended Kalman Filter
\item 8\-D Sigma Point (Unscented) Kalman Filter
\end{DoxyEnumerate}

window\-Var is used to size the initalization window for the new filter.

If the filter object already exists, this function will delete the current filter object and create a new one with stored save\-Directory, vehicle\-Spec\-File and map\-File. \hypertarget{classTerrainNav_ab20c3697ccdd0dbffad878c18895e6b5}{\index{Terrain\-Nav@{Terrain\-Nav}!estimate\-Pose@{estimate\-Pose}}
\index{estimate\-Pose@{estimate\-Pose}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{estimate\-Pose}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::estimate\-Pose (
\begin{DoxyParamCaption}
\item[{{\bf pose\-T} $\ast$}]{estimate, }
\item[{const int \&}]{type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classTerrainNav_ab20c3697ccdd0dbffad878c18895e6b5}
This is the primary function in the \hyperlink{classTerrainNav}{Terrain\-Nav} class. The function takes in a pointer to a \hyperlink{structposeT}{pose\-T} which it fills with the terrain correlation pose estimate based on previous measurements. The time stamp of the pose estimate indicates the last update time of the navigation filter. Type indicates the estimator type\-: 1\-: Maximum Likelihood Estimate 2\-: Minimum Mean Square Error Estimate. 

Reimplemented in \hyperlink{classTerrainNavClient_a88704f73147a21d40d2b2dadb001d9fd}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_ac7f3d1153084d6b6c2e185d641bf49f4}{\index{Terrain\-Nav@{Terrain\-Nav}!get\-Filter\-State@{get\-Filter\-State}}
\index{get\-Filter\-State@{get\-Filter\-State}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{get\-Filter\-State}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Terrain\-Nav\-::get\-Filter\-State (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_ac7f3d1153084d6b6c2e185d641bf49f4}
Returns the integer filter\-State describing the current filter state. 

Reimplemented in \hyperlink{classTerrainNavClient_ae467561d9412347ca95f066ffee89e67}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_aef4f240c533d6eef17e798b4cbce0462}{\index{Terrain\-Nav@{Terrain\-Nav}!get\-Filter\-Type@{get\-Filter\-Type}}
\index{get\-Filter\-Type@{get\-Filter\-Type}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{get\-Filter\-Type}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Terrain\-Nav\-::get\-Filter\-Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_aef4f240c533d6eef17e798b4cbce0462}
Returns the integer filter\-Type describing the current \hyperlink{classTNavFilter}{T\-Nav\-Filter} type. \hypertarget{classTerrainNav_a653ff20d7dbf19281b9827c630967599}{\index{Terrain\-Nav@{Terrain\-Nav}!get\-Num\-Reinits@{get\-Num\-Reinits}}
\index{get\-Num\-Reinits@{get\-Num\-Reinits}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{get\-Num\-Reinits}]{\setlength{\rightskip}{0pt plus 5cm}virtual int Terrain\-Nav\-::get\-Num\-Reinits (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a653ff20d7dbf19281b9827c630967599}
Returns the integer num\-Reinits describing the number of reinitializations. 

Reimplemented in \hyperlink{classTerrainNavClient_a65740a1c5b3cd5cbfa4bc70a79839087}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a573cb973d07781ba04101f343f41d6d7}{\index{Terrain\-Nav@{Terrain\-Nav}!initialized@{initialized}}
\index{initialized@{initialized}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{initialized}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Terrain\-Nav\-::initialized (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a573cb973d07781ba04101f343f41d6d7}
\hypertarget{classTerrainNav_a199061f9b5cc023caf59db9f60dafdfe}{\index{Terrain\-Nav@{Terrain\-Nav}!init\-Motion@{init\-Motion}}
\index{init\-Motion@{init\-Motion}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{init\-Motion}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::init\-Motion (
\begin{DoxyParamCaption}
\item[{{\bf pose\-T} \&}]{init\-Estimate}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a199061f9b5cc023caf59db9f60dafdfe}
Initializes the terrain navigation filter, \hyperlink{classTNavFilter}{T\-Nav\-Filter}, based on the first inertial sensor measurement contained in the init\-Estimate \hyperlink{structposeT}{pose\-T} structure. \hypertarget{classTerrainNav_a4c7a3ed127dccf323165d0bd870ee3db}{\index{Terrain\-Nav@{Terrain\-Nav}!init\-Variables@{init\-Variables}}
\index{init\-Variables@{init\-Variables}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{init\-Variables}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::init\-Variables (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a4c7a3ed127dccf323165d0bd870ee3db}
Initializes private variables associated with a terrain\-Nav object \hypertarget{classTerrainNav_afb1bbb70e30ff08a52c8ce4954d8f66f}{\index{Terrain\-Nav@{Terrain\-Nav}!interpolate\-Poses@{interpolate\-Poses}}
\index{interpolate\-Poses@{interpolate\-Poses}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{interpolate\-Poses}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::interpolate\-Poses (
\begin{DoxyParamCaption}
\item[{const {\bf pose\-T} \&}]{pose1, }
\item[{const {\bf pose\-T} \&}]{pose2, }
\item[{{\bf pose\-T} \&}]{new\-Pose, }
\item[{const double}]{new\-Time}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_afb1bbb70e30ff08a52c8ce4954d8f66f}
Linearly interpolates pose information from pose1 and pose2 to a new pose at time new\-Time. The interpolated pose is recorded in new\-Pose. \hypertarget{classTerrainNav_a011cc11697bea555a1d74c77efb58f2d}{\index{Terrain\-Nav@{Terrain\-Nav}!is\-Converged@{is\-Converged}}
\index{is\-Converged@{is\-Converged}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{is\-Converged}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Terrain\-Nav\-::is\-Converged (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a011cc11697bea555a1d74c77efb58f2d}
Returns a boolean indicating if the terrain navigation filter has converged to an estimate. 

Reimplemented in \hyperlink{classTerrainNavClient_afc766bae88622049f7d8fd0641fa842d}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a0528af38cebc6a205a364da0de5c3c76}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Meas\-Successful@{last\-Meas\-Successful}}
\index{last\-Meas\-Successful@{last\-Meas\-Successful}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Meas\-Successful}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Terrain\-Nav\-::last\-Meas\-Successful (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a0528af38cebc6a205a364da0de5c3c76}
Returns a boolean indicating if the last sonar measurement was successfully incorporated into the filter or not. 

Reimplemented in \hyperlink{classTerrainNavClient_a262a72e4a7595209a8455de4a8a8af8c}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a5b56c16a1518f72a1b04debdc221f745}{\index{Terrain\-Nav@{Terrain\-Nav}!mb\-Update@{mb\-Update}}
\index{mb\-Update@{mb\-Update}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{mb\-Update}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::mb\-Update (
\begin{DoxyParamCaption}
\item[{{\bf mb\-T} $\ast$}]{incoming\-Meas}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classTerrainNav_a5b56c16a1518f72a1b04debdc221f745}
Passes the current multibeam range information along to the \hyperlink{classTNavFilter}{T\-Nav\-Filter} object. The function takes in a pointer to a \hyperlink{structmbT}{mb\-T} containing the current multibeam measurement ranges. 

Reimplemented in \hyperlink{classTerrainNavClient_ac6d124669aa0577144f1074a712001bc}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a170b571d596c66262e78e5fb62aabb5b}{\index{Terrain\-Nav@{Terrain\-Nav}!meas\-Update@{meas\-Update}}
\index{meas\-Update@{meas\-Update}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{meas\-Update}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::meas\-Update (
\begin{DoxyParamCaption}
\item[{{\bf meas\-T} $\ast$}]{incoming\-Meas, }
\item[{const int \&}]{type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classTerrainNav_a170b571d596c66262e78e5fb62aabb5b}
Passes the current sonar measurement information along to the \hyperlink{classTNavFilter}{T\-Nav\-Filter} object. The function takes in a pointer to a \hyperlink{structmeasT}{meas\-T} containing the current sonar measurement information. It also takes in an integer type variable which relates the sonar measurement type as follows\-: 1\-: D\-V\-L 2\-: Multibeam 3\-: Single Beam 4\-: Homer Relative Measurement 

Reimplemented in \hyperlink{classTerrainNavClient_a7c6496e03d7a76e1513ddf9cbc5dde87}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_aecba66814225f2b8c610341672b30897}{\index{Terrain\-Nav@{Terrain\-Nav}!motion\-Update@{motion\-Update}}
\index{motion\-Update@{motion\-Update}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{motion\-Update}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::motion\-Update (
\begin{DoxyParamCaption}
\item[{{\bf pose\-T} $\ast$}]{incoming\-Nav}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classTerrainNav_aecba66814225f2b8c610341672b30897}
Passes the current inertial measurement information along to the \hyperlink{classTNavFilter}{T\-Nav\-Filter} object. The function takes in a pointer to a \hyperlink{structposeT}{pose\-T} containing the current inertial measurement information. 

Reimplemented in \hyperlink{classTerrainNavClient_a83eeaa435486da9b9897b0b069a739c8}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a137986aa835ca311af064c87db869ace}{\index{Terrain\-Nav@{Terrain\-Nav}!outstanding\-Meas@{outstanding\-Meas}}
\index{outstanding\-Meas@{outstanding\-Meas}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{outstanding\-Meas}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool Terrain\-Nav\-::outstanding\-Meas (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a137986aa835ca311af064c87db869ace}
Returns a boolean indicating if there are any measurements not yet incorporated into the P\-D\-F and waiting for more recent inertial measurement data. 

Reimplemented in \hyperlink{classTerrainNavClient_a9a54bd6f48bbf9267834c4fae655d28e}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a3408298f13371c7f0510ef6ec4eed1a6}{\index{Terrain\-Nav@{Terrain\-Nav}!reinit\-Filter@{reinit\-Filter}}
\index{reinit\-Filter@{reinit\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{reinit\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}void Terrain\-Nav\-::reinit\-Filter (
\begin{DoxyParamCaption}
\item[{bool}]{low\-Info\-Transition}
\end{DoxyParamCaption}
)}}\label{classTerrainNav_a3408298f13371c7f0510ef6ec4eed1a6}
This function reinitializes the filter. It will copy relevant information from the current filter object, delete that object, then re-\/create the filter.

23-\/\-Aug-\/2016 R\-G\-H \-: Exposing for use with Terrain\-Aid and \hyperlink{classTerrainNavClient}{Terrain\-Nav\-Client} \hypertarget{classTerrainNav_a92366f964f951b344dcb957611154319}{\index{Terrain\-Nav@{Terrain\-Nav}!set\-Filter\-Reinit@{set\-Filter\-Reinit}}
\index{set\-Filter\-Reinit@{set\-Filter\-Reinit}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{set\-Filter\-Reinit}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::set\-Filter\-Reinit (
\begin{DoxyParamCaption}
\item[{const bool}]{allow}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a92366f964f951b344dcb957611154319}
Overwrite boolean allow\-Filter\-Reinits with input argument, allow. 

Reimplemented in \hyperlink{classTerrainNavClient_a15498be735207c31ee41de48fcad3273}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a8ecb008581d1156687b43c2c384a0f00}{\index{Terrain\-Nav@{Terrain\-Nav}!set\-Interp\-Meas\-Attitude@{set\-Interp\-Meas\-Attitude}}
\index{set\-Interp\-Meas\-Attitude@{set\-Interp\-Meas\-Attitude}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{set\-Interp\-Meas\-Attitude}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::set\-Interp\-Meas\-Attitude (
\begin{DoxyParamCaption}
\item[{bool}]{set}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a8ecb008581d1156687b43c2c384a0f00}
Sets a boolean indicating if the sonar measurement attitude information should be determined from interpolated inertial poses. Default = 0; 

Reimplemented in \hyperlink{classTerrainNavClient_a0013b81766208f45b419628e7933cad7}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a6c7a50b7362dfa4cf5f84804fe2c8c49}{\index{Terrain\-Nav@{Terrain\-Nav}!set\-Map\-Interp\-Method@{set\-Map\-Interp\-Method}}
\index{set\-Map\-Interp\-Method@{set\-Map\-Interp\-Method}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{set\-Map\-Interp\-Method}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::set\-Map\-Interp\-Method (
\begin{DoxyParamCaption}
\item[{const int \&}]{type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a6c7a50b7362dfa4cf5f84804fe2c8c49}
Specifies the interpolation method to use for determining inter-\/grid map depth values. 0\-: nearest-\/neighbor (no interpolation) 1\-: bilinear 2\-: bicubic 3\-: spline Default = 0; 

Reimplemented in \hyperlink{classTerrainNavClient_ab2f5f4ad9100584bc44cf1856ff2235e}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_abb35a93f46a999bd1ef193ab5b09d266}{\index{Terrain\-Nav@{Terrain\-Nav}!set\-Modified\-Weighting@{set\-Modified\-Weighting}}
\index{set\-Modified\-Weighting@{set\-Modified\-Weighting}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{set\-Modified\-Weighting}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::set\-Modified\-Weighting (
\begin{DoxyParamCaption}
\item[{const bool}]{use}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_abb35a93f46a999bd1ef193ab5b09d266}
Overwrite boolean use\-Modified\-Weighting with input argument, use. 

Reimplemented in \hyperlink{classTerrainNavClient_a7cb774a840ee73348f700aee6229cc97}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a0d30b069c096a544e656cfe8cee58829}{\index{Terrain\-Nav@{Terrain\-Nav}!set\-Vehicle\-Drift\-Rate@{set\-Vehicle\-Drift\-Rate}}
\index{set\-Vehicle\-Drift\-Rate@{set\-Vehicle\-Drift\-Rate}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{set\-Vehicle\-Drift\-Rate}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::set\-Vehicle\-Drift\-Rate (
\begin{DoxyParamCaption}
\item[{const double \&}]{drift\-Rate}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a0d30b069c096a544e656cfe8cee58829}
Sets the vehicle inertial drift rate parameter. The default value is determined by the vehicle specification sheet. The drift\-Rate parameter is given in units of \% drift in meters/sec. 

Reimplemented in \hyperlink{classTerrainNavClient_a026bf2107a5412ec43407a19ad793629}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_a98b9275aafb1778179441c72129d8805}{\index{Terrain\-Nav@{Terrain\-Nav}!use\-High\-Grade\-Filter@{use\-High\-Grade\-Filter}}
\index{use\-High\-Grade\-Filter@{use\-High\-Grade\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{use\-High\-Grade\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::use\-High\-Grade\-Filter (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_a98b9275aafb1778179441c72129d8805}
Force filter settings for low grade system\-: 3\-D\-O\-F system with A\-L\-L\-O\-W\-\_\-\-A\-T\-T\-I\-T\-U\-D\-E\-\_\-\-S\-E\-A\-R\-C\-H=0, D\-E\-A\-D\-\_\-\-R\-E\-C\-K\-O\-N=0, S\-E\-A\-R\-C\-H\-\_\-\-G\-Y\-R\-O=0 

Reimplemented in \hyperlink{classTerrainNavClient_aff6f9e1cf3d809e668866afbb1a3e2dc}{Terrain\-Nav\-Client}.

\hypertarget{classTerrainNav_ab6251385f7632e3ba430c21de7444bef}{\index{Terrain\-Nav@{Terrain\-Nav}!use\-Low\-Grade\-Filter@{use\-Low\-Grade\-Filter}}
\index{use\-Low\-Grade\-Filter@{use\-Low\-Grade\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{use\-Low\-Grade\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Terrain\-Nav\-::use\-Low\-Grade\-Filter (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{classTerrainNav_ab6251385f7632e3ba430c21de7444bef}
Force filter settings for low grade system\-: 7\-D\-O\-F system with A\-L\-L\-O\-W\-\_\-\-A\-T\-T\-I\-T\-U\-D\-E\-\_\-\-S\-E\-A\-R\-C\-H=1, D\-E\-A\-D\-\_\-\-R\-E\-C\-K\-O\-N=1, S\-E\-A\-R\-C\-H\-\_\-\-G\-Y\-R\-O=1 

Reimplemented in \hyperlink{classTerrainNavClient_a63e6ff3bae768f7c3abd7d3a69706ef8}{Terrain\-Nav\-Client}.



\subsection{Member Data Documentation}
\hypertarget{classTerrainNav_a8a10cc6e61cd7a388a16595e5769ec56}{\index{Terrain\-Nav@{Terrain\-Nav}!\-\_\-initialized@{\-\_\-initialized}}
\index{\-\_\-initialized@{\-\_\-initialized}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{\-\_\-initialized}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::\-\_\-initialized\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a8a10cc6e61cd7a388a16595e5769ec56}


current state of filter 

pcl pointcloud object containing current map when using octree boolean indiating true if initialized successfully (i.\-e., the mapfile was found) \hypertarget{classTerrainNav_acde07f22bcce80ad0528e063e47d4e2c}{\index{Terrain\-Nav@{Terrain\-Nav}!allow\-Filter\-Reinits@{allow\-Filter\-Reinits}}
\index{allow\-Filter\-Reinits@{allow\-Filter\-Reinits}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{allow\-Filter\-Reinits}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::allow\-Filter\-Reinits\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_acde07f22bcce80ad0528e063e47d4e2c}


boolean indicating if filter reinitializations are allowed. 

\hypertarget{classTerrainNav_abf12dd3eed724350f697da50ea30817e}{\index{Terrain\-Nav@{Terrain\-Nav}!est\-Nav\-Offset@{est\-Nav\-Offset}}
\index{est\-Nav\-Offset@{est\-Nav\-Offset}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{est\-Nav\-Offset}]{\setlength{\rightskip}{0pt plus 5cm}{\bf pose\-T} Terrain\-Nav\-::est\-Nav\-Offset\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_abf12dd3eed724350f697da50ea30817e}


last valid estimated navigation offset 

\hypertarget{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}{\index{Terrain\-Nav@{Terrain\-Nav}!filter\-Type@{filter\-Type}}
\index{filter\-Type@{filter\-Type}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{filter\-Type}]{\setlength{\rightskip}{0pt plus 5cm}int Terrain\-Nav\-::filter\-Type\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a6d9969e84170a066a8e717251ebc3a19}


type of filter 

\hypertarget{classTerrainNav_ae6d91ebff6a3d79873660e6015bb02aa}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Bottom\-Lock\-Time@{last\-Bottom\-Lock\-Time}}
\index{last\-Bottom\-Lock\-Time@{last\-Bottom\-Lock\-Time}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Bottom\-Lock\-Time}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Bottom\-Lock\-Time\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ae6d91ebff6a3d79873660e6015bb02aa}


time of last bottom lock velocity 

\hypertarget{classTerrainNav_ac613b160f9df96d1632715d66a3bf88a}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Init\-Attempt\-Time@{last\-Init\-Attempt\-Time}}
\index{last\-Init\-Attempt\-Time@{last\-Init\-Attempt\-Time}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Init\-Attempt\-Time}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Init\-Attempt\-Time\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ac613b160f9df96d1632715d66a3bf88a}


time of last filter init attempt 

\hypertarget{classTerrainNav_a65fe89a6607667fce2d54a41853181e3}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Meas\-Success@{last\-Meas\-Success}}
\index{last\-Meas\-Success@{last\-Meas\-Success}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Meas\-Success}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::last\-Meas\-Success\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a65fe89a6607667fce2d54a41853181e3}
boolean indicating if the previous sonar measurement was successfully incoporated into the navigation filter \hypertarget{classTerrainNav_af993937b91fd8a069782cf13f5812e55}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Meas\-Success\-Time@{last\-Meas\-Success\-Time}}
\index{last\-Meas\-Success\-Time@{last\-Meas\-Success\-Time}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Meas\-Success\-Time}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Meas\-Success\-Time\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_af993937b91fd8a069782cf13f5812e55}


last time associated with successful measurement update 

\hypertarget{classTerrainNav_ae61bcce63b390e8ca6b0cdd6008185a8}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Meas\-Valid@{last\-Meas\-Valid}}
\index{last\-Meas\-Valid@{last\-Meas\-Valid}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Meas\-Valid}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::last\-Meas\-Valid\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ae61bcce63b390e8ca6b0cdd6008185a8}


status of last measurement -\/ only used for testing initialization 

\hypertarget{classTerrainNav_ae26bdab6dafdb74caf6e642784908f4e}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Valid\-Range@{last\-Valid\-Range}}
\index{last\-Valid\-Range@{last\-Valid\-Range}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Valid\-Range}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Valid\-Range\mbox{[}4\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ae26bdab6dafdb74caf6e642784908f4e}
\hypertarget{classTerrainNav_af3f6c1156fdd3092b9970902f7615744}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Valid\-Range\-Time@{last\-Valid\-Range\-Time}}
\index{last\-Valid\-Range\-Time@{last\-Valid\-Range\-Time}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Valid\-Range\-Time}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Valid\-Range\-Time\mbox{[}4\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_af3f6c1156fdd3092b9970902f7615744}
\hypertarget{classTerrainNav_a1076b8e073d07712a33b3c94fc456c5d}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Valid\-Vel@{last\-Valid\-Vel}}
\index{last\-Valid\-Vel@{last\-Valid\-Vel}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Valid\-Vel}]{\setlength{\rightskip}{0pt plus 5cm}double Terrain\-Nav\-::last\-Valid\-Vel\mbox{[}3\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a1076b8e073d07712a33b3c94fc456c5d}
array containing the last good velocity measurements and bottom-\/lock status / Velocity is given in the body frame \hypertarget{classTerrainNav_a01f95f1825593c1b9a629771015201b0}{\index{Terrain\-Nav@{Terrain\-Nav}!last\-Vel\-Bot\-Lock@{last\-Vel\-Bot\-Lock}}
\index{last\-Vel\-Bot\-Lock@{last\-Vel\-Bot\-Lock}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{last\-Vel\-Bot\-Lock}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::last\-Vel\-Bot\-Lock\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a01f95f1825593c1b9a629771015201b0}
\hypertarget{classTerrainNav_a02762a2ed8d3fa7b1a7ff709e7c5f079}{\index{Terrain\-Nav@{Terrain\-Nav}!map\-File@{map\-File}}
\index{map\-File@{map\-File}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{map\-File}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ Terrain\-Nav\-::map\-File\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a02762a2ed8d3fa7b1a7ff709e7c5f079}
\hypertarget{classTerrainNav_a6cc9ef2df288c27467be10705c581133}{\index{Terrain\-Nav@{Terrain\-Nav}!map\-Type@{map\-Type}}
\index{map\-Type@{map\-Type}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{map\-Type}]{\setlength{\rightskip}{0pt plus 5cm}int Terrain\-Nav\-::map\-Type\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a6cc9ef2df288c27467be10705c581133}


type of map 

\hypertarget{classTerrainNav_acffd9fafe3ea2404790787db625e8a00}{\index{Terrain\-Nav@{Terrain\-Nav}!no\-Valid\-Range@{no\-Valid\-Range}}
\index{no\-Valid\-Range@{no\-Valid\-Range}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{no\-Valid\-Range}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::no\-Valid\-Range\mbox{[}4\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_acffd9fafe3ea2404790787db625e8a00}
\hypertarget{classTerrainNav_a9fa427d6e76e75629f5d2e5bec48b1cc}{\index{Terrain\-Nav@{Terrain\-Nav}!num\-Reinits@{num\-Reinits}}
\index{num\-Reinits@{num\-Reinits}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{num\-Reinits}]{\setlength{\rightskip}{0pt plus 5cm}int Terrain\-Nav\-::num\-Reinits\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a9fa427d6e76e75629f5d2e5bec48b1cc}


counter for number of filter reinitializations 

\hypertarget{classTerrainNav_ad60a84209a34e804b8bb07d177efcf1d}{\index{Terrain\-Nav@{Terrain\-Nav}!num\-Waiting\-Meas@{num\-Waiting\-Meas}}
\index{num\-Waiting\-Meas@{num\-Waiting\-Meas}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{num\-Waiting\-Meas}]{\setlength{\rightskip}{0pt plus 5cm}int Terrain\-Nav\-::num\-Waiting\-Meas\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ad60a84209a34e804b8bb07d177efcf1d}


integer indicating the current number of unincorporated sonar measurements 

\hypertarget{classTerrainNav_ac8991ac1bf05aaac3bfc530983e89be6}{\index{Terrain\-Nav@{Terrain\-Nav}!save\-Directory@{save\-Directory}}
\index{save\-Directory@{save\-Directory}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{save\-Directory}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ Terrain\-Nav\-::save\-Directory\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_ac8991ac1bf05aaac3bfc530983e89be6}
\hypertarget{classTerrainNav_a0012620a1fc65cd9c31fee061ad03c06}{\index{Terrain\-Nav@{Terrain\-Nav}!terrain\-Map@{terrain\-Map}}
\index{terrain\-Map@{terrain\-Map}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{terrain\-Map}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Terrain\-Map}$\ast$ Terrain\-Nav\-::terrain\-Map\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a0012620a1fc65cd9c31fee061ad03c06}


terrain\-Map object containing information about current map being used 

\hypertarget{classTerrainNav_a615f45c8f33aa7b5fab29323a1bd2994}{\index{Terrain\-Nav@{Terrain\-Nav}!t\-Nav\-Filter@{t\-Nav\-Filter}}
\index{t\-Nav\-Filter@{t\-Nav\-Filter}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{t\-Nav\-Filter}]{\setlength{\rightskip}{0pt plus 5cm}{\bf T\-Nav\-Filter}$\ast$ Terrain\-Nav\-::t\-Nav\-Filter}}\label{classTerrainNav_a615f45c8f33aa7b5fab29323a1bd2994}
t\-Nav\-Filter object used to recursively incorporate vehicle measurements according to a terrain navigation algorithm \hypertarget{classTerrainNav_a7d0108b763aa09e824b86f64ab80d5b3}{\index{Terrain\-Nav@{Terrain\-Nav}!use\-Modified\-Weighting@{use\-Modified\-Weighting}}
\index{use\-Modified\-Weighting@{use\-Modified\-Weighting}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{use\-Modified\-Weighting}]{\setlength{\rightskip}{0pt plus 5cm}bool Terrain\-Nav\-::use\-Modified\-Weighting\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a7d0108b763aa09e824b86f64ab80d5b3}


boolean indicating if modified weighting should be used. 

\hypertarget{classTerrainNav_af34ab1f5addf32fc23c7421895138851}{\index{Terrain\-Nav@{Terrain\-Nav}!vehicle\-Spec\-File@{vehicle\-Spec\-File}}
\index{vehicle\-Spec\-File@{vehicle\-Spec\-File}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{vehicle\-Spec\-File}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ Terrain\-Nav\-::vehicle\-Spec\-File\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_af34ab1f5addf32fc23c7421895138851}
\hypertarget{classTerrainNav_a523bc02a5e6763004bf45cf478f65924}{\index{Terrain\-Nav@{Terrain\-Nav}!waiting\-Meas@{waiting\-Meas}}
\index{waiting\-Meas@{waiting\-Meas}!TerrainNav@{Terrain\-Nav}}
\subsubsection[{waiting\-Meas}]{\setlength{\rightskip}{0pt plus 5cm}{\bf meas\-T} Terrain\-Nav\-::waiting\-Meas\mbox{[}{\bf M\-E\-A\-S\-\_\-\-B\-U\-F\-F\-E\-R\-\_\-\-S\-I\-Z\-E}\mbox{]}\hspace{0.3cm}{\ttfamily [protected]}}}\label{classTerrainNav_a523bc02a5e6763004bf45cf478f65924}


static array containing all unincorporated sonar measurements 



The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{TerrainNav_8h}{Terrain\-Nav.\-h}\item 
\hyperlink{TerrainNav_8cpp}{Terrain\-Nav.\-cpp}\end{DoxyCompactItemize}
