<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{Overview of the Swarm Autonomy Toolbox}
\vspace{0.17in}
\labpng{0.65}{figures/swarmbox.png}
\vspace{0.15in}
\labdate{Nov 2023}
\vspace{0.1in}
\labauth{Michael Benjamin, mikerb@mit.edu}
\labauth{Department of Mechanical Engineering}
\labauth{MIT, Cambridge MA 02139}
\labsrc{project-pavlab/memos/memo\_swarm\_overview}
\labtoc{small}
\end{labcover}

\wikidoc{file=Memo.SwarmBox}
\wikidoc{auth=mikerb@mit.edu}


%==================================================================
\section{Overview}
%==================================================================

The Swarm Autonomy toolbox is comprised of roughly four components,
(a) support for decentralized decision-making via auction behaviors,
(b) distributed coverage algorithms based on Voronoi decompositions,
(c) dynamic linear convoying, and (d) inter-vehicle messaging
strategies and mult-vehicle simulations of degraded messaging schemes.

\vspace{0.1in}
\noindent
The Swarm Autonomy Toolbox is a codebase that leverages and augments
the MOOS-IvP open source autonomy project as depicted in Figure
\ref{fig_codebases}. 

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.75\textwidth]{figures/toolbox.png}
  \caption{{\bf MOOS-IvP and Toolbox Extensions}: The MOOS-IvP
    autonomy architecture is comprised of the MOOS middleware and IvP
    Helm autonomy architecture. The toolbox extensions provide
    extensive capabilities layered on top of the open source core
    codebase.}
  \label{fig_codebases}
\end{figure}
\vspace{0.1in}

\vspace{0.1in}
\noindent
The extensive core data structure libraries, simulation tools,
visualization tools, and post-mission analysis tools of the current
open source project has enabled rapid development in the four core
areas of the Swarm Autonomy Toolbox. These four areas are discussed
in the next four sections.

%=====================================================
\section{Summary of Swarm Autonomy Toolbox Modules}
%=====================================================
\label{sec_software}


The Swarm Autonomy Toolbox to-date consists of 9 software libraries,
and 10 software applications.  Using the sloccount software analysis
tool, this represents 17,600 logical lines of code, 3.9 work-years
of development, with an estimated \var{\$525,000} cost of development based
on \var{\$56.2K}/yr developer salary.

%=====================================================
\subsection{Software Libraries}

\begin{packed_itemize}
\item \var{lib\_bhv\_muster}: The Mustering behavior.
  
\item \var{lib\_bhv\_convoy}: The Convoying behavior.
  
\item \var{lib\_bhv\_anderson}: The Anderson Turn behavior used in
  convoying missions to alter the ordering of vehicles.
  
\item \var{lib\_bhv\_task\_convoy}: The TaskConvoy behavior for conducting
  inter-vehicle auctions to decide convoy ordering.
  
\item \var{lib\_bhv\_task\_muster}: The TaskMuster behavior for conducting
  inter-vehicle auctions when transitioning from convoying to mustering.
  
\item \var{lib\_bhv\_task\_waypt}: The TaskWaypoint behavior for conducting
  inter-vehicle auctions to decide a lead vehicle when a group of vehicles
  is tasked with commencing a convoy mission phase.

\item \var{lib\_helmtask}: A library of core data structures for implementing
  helm task, and IvP Task behaviors.
  
\item \var{lib\_voronoi}: A library of core data structures for the Voronoi
  family of algorithms.
  
\item \var{lib\_behavior\_voronoi}: The general Voronoi behavior for
  distributed coverage.
\end{packed_itemize}

%=====================================================
\subsection{Swarm Toolbox Applications}

\begin{packed_itemize}
\item \app{pEncircle}: An app running on each vehicle involved in an
  encircling mission. 

\item \app{pEvalConvoy}: An app running on a vehicle participating in
  a convoy mission for evaluation local performance metrics.

\item \app{uFldConvoyEval}: An app running on the shoreside during a
  convoy mission for evaluation of group convoy metrics.

\item \app{pMediator}: An app for monitoring outgoing and incoming inter-vehicle
  messages, repeating if necessary. 

\item \app{pTaskManager}: The app running on each vehicle that
  receives incoming tasks, and posts events for spawning task
  behaviors. 

\item \app{uFldTaskMonitor}: A shoreside utility for monitoring tasks generated
  and distributed to a field of vehicles.

\item \app{uFldVoronoi}: A shoreside tool for calculating the Voronoi partition
  of multiple deployed vehicles. 

\item \app{voiview}: An engineering application for testing different
  variations of Lloyd's algorithm.
  
\item \app{alogmtask}: A post-mission analysis tool for analyzing the sequences
  of events, task, and bids involved in an auction.
  
\item \app{pProxonoi}: An app for calculating the local Voronoi cell to support
  Voronoi coverage missions.
\end{packed_itemize}



%\small
%\nocite{bnsl11}
%\bibliographystyle{plain}
%\bibliography{biblio}
%\normalsize

\end{document} 



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