<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\documentclass[onecolumn,letterpaper,11pt]{article}

%===================================================================
\input{common_latex/common_latex_packages}
\input{common_latex/common_latex_definitions}
\input{common_latex/common_latex_memo_format}
%===================================================================

\begin{document}

\begin{labcover}
\labtitle{Helm and uField Architectures}
\vspace{0.1in}
\labdate{January 2022}
\vspace{0.1in}
\labauth{Michael Benjamin, mikerb@mit.edu}
\labauth{Department of Mechanical Engineering}
\labauth{MIT, Cambridge MA 02139}
%\labtoc{small}
\end{labcover}

\wikidoc{file=Memo.VVArchIntro}
\wikidoc{auth=mikerb@mit.edu}
\wikidoc{toc=false}

%==================================================================
\section{Platform Autonomy with MOOS-IvP}
\label{sec_platformai_over}

The primary focus of our automated testing is on the set of modules
broadly referred to as {\em platform autonomy}. This consists of a set
of MOOS applications, with the helm, \app{pHelmIvP}, being the central
application. Other MOOS applications such as the contact manager and
the obstacle manager are also critical to the autonomy system and
autonomy testing, but the helm is the primary focus.  The helm is
comprised of the MOOS app itself and a number of behavior modules. The
idea is shown in Figure \ref{fig_platform_autonomy}.

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.75\textwidth]{figures/platform_autonomy.png}
  \caption{{\bf Platform Autonomy}: Two architectures comprise the
    platform autonomy. The MOOS middleware coordinates multiple
    applications using a publish-subscribe protocol through the
    MOOSDB. The IvP Helm is a single MOOS app comprised of several
    distinct behaviors coordinated by the helm.  Autonomy testing
    involves the testing individual MOOS apps and helm behaviors and
    missions comprised of unique combinations.}
  \label{fig_platform_autonomy}
\end{figure}
\vspace{0.1in}

\vspace{0.1in}
\noindent
The focus in this document will not be on the functionality of the
helm, behaviors, or any other MOOS app, but rather on how they are
tested. The focus of autonomy testing will always be on platform
autonomy or a subset of the components in Figure
\ref{fig_platform_autonomy}.


%==================================================================
\section{The uField Architecture for Multi-Vehicle Missions}
\label{sec_ufld_over}

For multi-vehicle simulations (and certain deloyments) we have
developed a module architecture called the {\em uField Architecture},
shown in Figure \ref{fig_ufield_autonomy}. Each vehicle has its
own MOOS community and helm. All vehicles are connected to a single
shoreside MOOS community. The individual vehicles, and the shoreside
community, may all run on a single computer, or be distributed over
a local network or public Internet. 

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.75\textwidth]{figures/ufield_autonomy.png}
  \caption{{\bf The uField Architecture}: Coordination of multiple
    vehicles and simulated sensors involves the uField architecture,
    comprised of a single shoreside software community connected to N
    simulated or fielded vehicles. All but the simplest component
    level simulation tests will use this architecture and utilities of
    the uField Toolbox.}
  \label{fig_ufield_autonomy}
\end{figure}
\vspace{0.1in}

\vspace{0.1in}
\noindent
The shoreside community serves four general purposes. (1) It supports
the user through a command and control graphical user interface (GUI).
Fully automated tests use a "headless" mode with no GUI however. (2) It
automates the connection setup of the N vehicles by detecting
connections, setting and confirming the network interfaces. (3) Simulated
vehicle sensors are often implemented on the shoreside with a shared
world model. (4) Performance grading applications are implemented
in shoreside application for monitoring collision avoidance, obstacle
avoidance, swarm coverage and so on. The uField structure will be
described further in Section \ref{sec_ufield}.



\end{document}



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