<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%====================================================================
\section{Behaviors of the IvP Helm}
%====================================================================
\wikisec{grp=bhvsolo}
\wikisec{file=HelmBehaviorsSingle, short=Solo Behaviors}

The following is a description of some single-vehicle behaviors
currently written for the helm. The below is a guide for users of
these behaviors.  The topic of developing new behaviors is addressed
separately. The setting of behavior parameters is the primary method
for affecting the overall autonomy behavior in a vehicle. Parameters
may also be dynamically altered once the mission has commenced. A
parameter is set with a single line of the form:

\prevbhv
\begin{verbatim}
   parameter = value
\end{verbatim}
\postverb

\noindent
The left-hand side, the parameter component, is case insensitive,
while the value component is typically case sensitive. When the helm
is launched, each behavior is created and the parameters are set. If a
parameter setting in the behavior file references an unknown
parameter, or if the value component fails a syntactic or semantic
test, the line is noted and the helm ceases to launch.

%======================================================================
\subsection*{Overview of Parameters Common to All Behaviors}

The parameters below are common to all IvP behaviors, although they may
have more relevance to some behaviors than others. They are defined in
the IvPBehavior superclass of which all the behaviors described in this
section are a subclass. More information on the functionality behind
these parameters was given in Section \ref{bhv_common_params}.


\begin{listing}{Configuration Parameters Common to All IvP Behaviors}
\small
\label{lst_bhv_all_params}
\renewcommand{\arraystretch}{1.1}
\begin{longtable}{rp{0.7\textwidth}} 

  {\bf Parameter} &amp; {\bf Description} \\  

  % spawnflag
  % configflag
  % build_info
  % precision
  
  \bvar{activeflag}: &amp;  A flag (MOOSVar,Data) pair, posted when in the 
  active state. \\ 
  
  \bvar{condition}: &amp; A logical condition that must satisfied for the
  behavior to run. \\ 

  \bvar{duration}: &amp; Behavior duration, in seconds. Default is 
  \var{"unlimited"}.\\ 

  \bvar{duration\_idle\_decay}: &amp; If true, clock will progress even if
  in the idle state.  \\ 

  \bvar{duration\_reset}: &amp; If limited duration, duration is reset when
  this variable is received. \\ 

  \bvar{duration\_status}: &amp; MOOS variable informing of remaining duration,
  if duration is set. \\ 

  \bvar{endflag}: &amp;  A flag (MOOSVar,Data) pair, posted when the 
  behavior completes. \\ 

  \bvar{idleflag}: &amp;   A flag (MOOSVar,Data) pair, posted when in the 
  idle state. \\ 

  \bvar{inactiveflag}: &amp;  A flag (MOOSVar,Data) pair, posted when in the 
  inactive state. \\ 
  
  \bvar{name}: &amp; A unique identifier for the behavior instance. \\ 

  \bvar{nostarve}: &amp; If a given MOOSVar is stale by a given amount, an 
  error is posted.\\ 
  
  \bvar{perpetual}: &amp; If true, a behavior may be reset after completion
  or duration timeout. \\ 

  \bvar{post\_mapping}: &amp; A mapping to change the default MOOS variable
  output of a behavior. \\ 

  \bvar{priority}, \bvar{pwt}: &amp; Priority weight of the IvP function
  produced by behavior.\\

  \bvar{runflag}: &amp; A flag (MOOSVar,Data) pair, posted when in the 
  running state. \\ 

  \bvar{templating}: &amp; Enable the behavior spec as a template 
  for dynamic spawning. \\ 

  \bvar{updates}: &amp; A MOOSVar from which behavior parameter updates are
  received. \\ 

\end{longtable}
\end{listing}
\normalsize

%-----------------------------------------------------------------------
\subsubsection*{Configuring One Variable Objective Functions}

Several behaviors use a common tool for constructing objective
functions over a single decision variable. These behaviors have a
similar interface for configuring this tool, and it is described here
to avoid redundancy.  Examples of behaviors that use this tool are the
Waypoint, Loiter, PeriodicSurface, ConstantDepth, ConstantSpeed,
ConstantHeading, and Shadow behaviors. This tool is called the
\var{ZAIC\_PEAK} tool, and is describe in more detail in
\cite{bnsl09c}.  This tool is designed with the objective function
form shown in Figure \ref{zaic-peak-overview-fig} in mind, where there
is an identifiable preferred single decision choice (the \var{summit})
with maximum utility, and then a gradual drop in utility as the
variable varies from the preferred choice.

\vspace{0.15in}
\begin{figure}[H]
  \centering 
  \includegraphics[width=0.96\textwidth]{figs_ivpbuild/zaic_peak_a_labels.png}
  \caption{{\bf The \vvar{ZAIC\_PEAK} tool}: defines an IvP function
    over one variable defined by the four parameters shown here. In
    the case rendered here, the tool would create an IvP function with
    six pieces. The function rendered was created with
    \vvar{summit=180}, \vvar{peakwidth=85}, \vvar{basewidth=70},
    \vvar{summitdelta=40}.}
  \label{zaic-peak-overview-fig}
\end{figure}
\vspace{0.1in}

The form in which the utility drops is dependent on the settings of
other parameters shown in the figure. The \var{summit},
\var{peakwidth}, and \var{basewidth} values are given in units native
to the decision variable, while the \var{summitdelta}, \var{minutil},
and \var{maxutil} values are given in terms of units of utility. The
latter two variables default to 0 and 100 respectively and are not
typically exposed as configuration parameters in behaviors that use
this tool, unlike the other four parameters.



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