<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{Linear Convoying}
%\vspace{0.17in}
%\labpng{0.65}{figures/convoying.png}
\vspace{0.15in}
\labdate{May 2022}
\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\_convoying}
\labtoc{small}
\end{labcover}

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

%===================================================== Convoying
\section{Linear Convoying}
%===================================================== Convoying
\label{sec_convoy}

The {\em linear convoying} mission, as discussed previously in Section
\ref{sec_convoy_auction} has roughly two phases. In the first phase
discussed previously, the vehicles hold a series of auctions to
determine their ordering. In the second phase, discussed here, the
vehicles hold their convoy while maintaining the linear formation and
keeping a prescribed range between vessels. A related mission
objective is to support convoy re-ordering, which we are only
beginning to develop in this project.

%=====================================================
\subsection{The Convoy Behavior}
\label{sec_bhv_convoy}

The Convoy behavior will drive a vehicle to follow another specified
vehicle by following virtual markers dropped by the lead vehicle.  The
vehicle following the lead vehicle is referred to as the {\em
  convoying} vehicle. As the lead vehicle transits, the convoying
vehicle will make note of the lead vehicle's position and periodically
note as {\em markers}, the position of the lead vehicle. The convoying
vehicle will continuously transit to the rear-most marker, the {\em
  aft marker}. Upon reaching the aft marker, it will proceed to the
next rear-most marker, and so on.  The particulars of the behavior are
highly customizable through configuration parameters, such as
\var{inter\_mark\_range}, the distance between markers.  They will be
highlighted as such, with their meaning and default values discussed.


\vspace{0.1in}
\noindent
A {\em marker} is comprised of the observed X-Y or Lat/Lon position of
the lead vehicle at some previous point in time. The lead vehicle
typically does not communicate marker information explicitly to the
convoying vehicle. Rather the convoying vehicle notes and stores this
information from incoming node reports of the lead vehicle. Incoming
node reports may be derived via AIS, direct communications, or through
sensors on the convoying vehicle. The source of the lead vehicle
position information is irrelevant to this behavior.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.6\textwidth]{figures/bhv_convoy_markers.png}
  \caption{{\bf Convoy Markers}:  The convoying vehicle heads toward
    the rear-most marker behind the lead vehicle. As the convoying
    vehicle reaches each marker, the reached marker is dropped, and
    then proceeds to the next rear-most marker as shown on the left. In a
    {\em lagging} situation, shown on the right, the convoying vehicle
    is still heading toward the aft marker, but the convoying
    vehicle's path, while it is lagging, may not closely follow the
    lead vehicle's path. }
  \label{fig_convoy_markers}
\end{figure}

\vspace{0.1in}
\noindent
The {\em marker tail} is the set of all markers. The {\em marker tail
  length} is the sum of line segments between markers plus the range
from the lead vehicle to the {\em lead marker}, which is the most
recently added marker just aft of the lead vehicle. The {\em aft
  marker} is the oldest marker in the marker tail and presumably the
marker that the convoy behavior is driving toward.  The range between
markers is set with the configuration parameter
\var{inter\_mark\_range}.


\vspace{0.1in}
\noindent
A new lead marker is added as the lead vehicle moves, whenever the
range between the lead vehicle and the current lead marker becomes
greater than the \var{inter\_mark\_range}. The aft marker is removed
from the rear of the tail if the tail length becomes longer than
\var{tail\_length\_max}.  By this policy, the tail length should
always be less than or equal to \var{tail\_length\_max}.  The aft
marker may also be removed when or if the convoying vehicle captures
the marker. 

%=======================================================================            
\subsection{Capturing a Marker}
\label{sec_bhv_convoy_capture}

As the convoying vehicle approaches its next marker, 
conditions are examined to determine when it has reached, or
{\em captured}, the marker. The simplest criteria is when the vehicle
has reduced its range to the marker to be less than the
\var{capture\_radius}, a configuration parameter with default value
of 5 meters. This is shown on the left in Figure
\ref{fig_bhv_convoy_capture}. Occasionally the convoying vehicle may
miss the marker, perhaps due to external environmental forces, or
other mission considerations that pull the vehicle off a direct path
to the marker. If the \var{capture\_radius} were the only criteria
for capturing a marker, the convoying vehicle may be forced to loop
back to try again. If the \var{capture\_radius} is too large, then
the vehicle would be free, perhaps too early, to begin heading toward
the next marker. If the lead vehicle is on a highly nonlinear path, a
very large \var{capture\_radius} may result in the convoying vehicle
deviating too much from the lead vehicle's path.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.9\textwidth]{figures/bhv_convoy_capture.png}
  \caption{{\bf Capturing a Marker}: The \var{capture\_radius}
    determines when a convoying vehicle reaches a marker (left). If
    the convoying vehicle gets within the \var{slip\_radius} range
    of the marker, the marker will be considered reached when or if
    the range to the marker begins to increase (right).}
  \label{fig_bhv_convoy_capture}
\end{figure}

\vspace{0.1in}
\noindent
The \var{slip\_radius} configuration parameter specifies a larger
range to the marker than the capture radius. Once the convoy
vehicle enters within range of the \var{slip\_radius}, the marker
will be considered captured if the angle between ownship, the marker
and next marker, is less than 90 degrees. The default value for the 
\var{slip\_radius} is 20 meters.  The \var{slip\_radius} range, 
as a rule of thumb, is chosen to be 2-4 times bigger than the 
\var{capture\_radius}. 

\vspace{0.1in}
\noindent
When a marker is captured, the Convoy behavior removes the marker
from its internal marker tail. Markers are removed from the tail when
either they are captured by the convoying vehicle, or when the marker
tail length exceeds the maximal length set by the
\var{tail\_length\_max} parameter.

%=======================================================================            
\subsection{Speed of the Convoying Vehicle - The Speed Policy}
\label{sec_bhv_convoy_speed}

The convoy behavior uses a {\em speed policy} to determine which speed, the 
{\em set speed}, $\hat{v}_{os}$, that will best position the vehicle to the 
ideal convoy range to the lead vehicle. The policy consists of the following
six parameters:

\vspace{0.1in}

$$P = \{r_x, r_s, \hat{r}, r_f, r_z, v_{\Delta} \}$$

\vspace{0.1in}
\noindent
Each parameter is either user-configurable in the mission planning phase or 
modifiable during the course of the mission. The parameters are shown in 
Figure \ref{fig_bhv_convoy_speeds} with both their long and short names 
indicated. The policy is applied also using (a) the current convoy range, 
$r_c$, (b) the speed of the lead vehicle, $v_{cn}$, and (c) the direct 
range between vehicles. The latter is only used as a measure for triggering 
a safety full-stop. The set speed will either match, overshoot, or undershoot 
the lead vehicle speed depending on whether the current convoy range is ideal, 
too far, or too close respectively. 
%The maximum vehicle speed, $v^+$, is a 
%configuration parameter applied over all vehicle behaviors. The set speed is
%clipped to be no higher than this value.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.6\textwidth]{figures/bhv_convoy_speeds.png}
  \caption{{\bf The Convoy Speed Policy}: The {\em set speed} of the
    convoy behavior is determined by the speed policy, which depends
    on (a) the speed of the lead vehicle, (b) the current convoy
    range. The speed policy is configured by the user and may be
    dynamically adjusted during a mission. There are six correction
    modes identified, based on the relationship between the current
    convoy range and the ideal convoy range.}
  \label{fig_bhv_convoy_speeds}
\end{figure}

\vspace{0.1in}
\noindent
When the current convoy range is not ideal, the degree of the
correction in the set speed is linearly proportional to the difference
between the convoy range and ideal convoy range. Note that around the
ideal convoy range there is a tolerance, within which the set speed
will simply be the lead vehicle speed. The \bvar{lag\_speed\_delta}
configuration parameter shown on the right in Figure
\ref{fig_bhv_convoy_speeds} affects how much the behavior is able to
request a higher set speed than the lead vehicle when needing to close
range to the lead vehicle.

\vspace{0.1in}
\noindent
The relationship between the current convoy range and the ideal convoy
range determines which of six {\em correction modes} apply at the
moment. They are shown in Figure \ref{fig_bhv_convoy_speeds}, and
defined below:

\vspace{0.15in}
\small
%\begin{center}
\begin{tabular}{|c|c|c|c|} \hline 
  &amp; Correction Mode &amp; Condition &amp; Set Speed $\hat{v}_{os}$ \\ \hline \hline
1 &amp; {\em full stop}       &amp; $r_c \leq r_x$           &amp; $0$ (all-stop) \\ \hline 
2 &amp; {\em close}           &amp; $r_x &lt; r_c \leq r_s$     &amp; $\frac{r_c-r_x}{r_s-r_x}  v_{cn}$ \\ \hline
3 &amp; {\em ideal close}     &amp; $r_s &lt; r_c \leq \hat{r}$ &amp; $v_{cn} $ \\ \hline 
4 &amp; {\em ideal far}       &amp; $\hat{r} &lt; r_c \leq r_f$ &amp; $v_{cn} $ \\ \hline 
5 &amp; {\em far}             &amp; $r_f &lt; r_c \leq r_z$     &amp; $\frac{r_c-r_f}{r_z-r_f} v_{\Delta} + v_{cn}$ \\ \hline 
6 &amp; {\em full lag}        &amp; $r_z &lt; r_c$              &amp; $v_{cn} + v_{\Delta} $\\ \hline 
\end{tabular}
%\caption{Speed Policy and Correction Modes}
%\label{tab_set_spd}
%\end{center}
\normalsize

\vspace{0.1in}
\noindent
The speed policy will determine the set-speed, $\hat{v}_{os}$, and the
correction mode will also determine the shape of the off-peak areas of
the objective function used by the Convoy behavior.

%=====================================================
\subsection{Convoying Field Experiments}

In August of 2021, the Convoy behavior was tested on the Charles River
on the MIT campus at the marine autonomy lab. Four small unmanned
surface vehicles (USVs), the Heron USVs, from Clearpath Robotics, were
used, shown in Figure \ref{fig_herons_charles}.

\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{figures/herons_charles.png}
  \caption{{\bf Convoying Field Experiments}: Left: four Clearpath
    Heron USVs. Right: A four-vehicle convoy with four vehicles in a
    trial on the Charles River in Cambridge, MA. The convoy markers
    for each vehicle are shown and color-coded. The green vehicle is
    following the green markers and so on. The lead vehicle is
    following a series of waypoints. The lead vehicleâ€™s previous
    waypoint is roughly at the elbow of the orange markers.}
  \label{fig_herons_charles}
\end{figure}

\vspace{0.1in}
\noindent
Each vehicle is equipped with a GPS and WiFi connection. Position
information, similar to an AIS message, is shared regularly between
vehicles. Unlike larger surface vehicles which use radar, camera or
LIDAR systems to localize nearby vessels, in our setup, fairly precise
information about ownship and contact position is refreshed
frequently, 2-4 times per second.  Each vehicle is initially deployed
to a muster region as described in Section \ref{sec_muster}. After
each vehicle arrives in the muster region, the vehicles begin a
decentralized auction to determine convoy ordering, as described in
Section \ref{sec_convoy_auction}. The vehicle then proceed using the
Convoy behavior described in this section, arriving at a destination
muster region, once again transitioning to the muster behavior for the
end-of-mission stage.

\vspace{0.1in}
\noindent
During the winter of 2021, further development was conducted to define
and measure performance metrics for mustering and convoying. These
metrics will be applied to a more comprehensive set of experiments in
the in summer of 2022, prior to the culmination of this project in
September of 2022.



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

\end{document} 



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