\documentclass[onecolumn,letterpaper,11pt]{article}

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

\begin{document}

\begin{labcover}
\labtitle{MTASC Hardware and Setup}
\vspace{0.1in}
\labdate{June 2025}
\vspace{0.1in}
\labauth{Michael Benjamin, mikerb@mit.edu}
\labauth{Department of Mechanical Engineering}
\labauth{MIT, Cambridge MA 02139}
\labsrc{project-pavlab/mtasc/mt\_setup} 
\labtoc{small}
\end{labcover}

\wikidoc{file=MT.Setup}
\wikidoc{auth=mikerb@mit.edu}

%===================================================================
\section{The Architecture Overview}

An MTASC cluster can range in number of nodes. The smallest currently
is 10 nodes and the largest is 100 at the MIT Marine Autonomy lab. For
our discussions, we'll speak of a cluster of N=50 nodes.  The MTASC
consists of N+1 computers, one for each vehicle, and one more powerful
computer as the shoreside, i.e., command-and-control computer. Each is
connected on a local router. The idea is shown Figure
\ref{fig_mtasc_one} below. A vehicle computer is called a PABLO, short
for Payload Autonomy Box. Each PABLO contains single Raspberry Pi
computer with a 4-core processor.

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.85\textwidth]{figures/mtasc_one.png}
  \caption{The basic machine topology of the 50-vehicle exemplar
    mission. One computer for each vehicle, coordinated through
    a single shoreside command-and-control computer. The shoreside
    computer handles launch and configuration control, and also
    runs an optional app for visualizing the mission if a user
    is participating. The whole system has a connection to the
    external Internet to pull software and mission changes onto
  each PABLO as development progresses.}
  \label{fig_mtasc_one}
\end{figure}
\vspace{0.1in}

\noindent
Note in Figure \ref{fig_mtasc_one} that the MTASC is connected via the
Internet to a software server.  External connection to the Internet is
not strictly necessary. The server could instead be on the local
network disconnected from the Internet. The server does however play a
key role in updating code and updates to the mission configuration
across the machines. It is possible to instead run the version control
server on the same machine that the user is using for
command-and-control.

%==================================================================
\section{PABLO Computer Hardware Overview}
%==================================================================

The PABLO box contains a single Raspberry Pi computer connected to
four external ports, one for power, one for network connection, and
two utility USB ports. A single PABLO is shown on the left in Figure
\ref{fig_phard2} below. 

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.95\textwidth]{figures/pablo_hardware2.png}
  \caption{The MTASC is comprised here of 50 PABLOs. For practical
    purposes of wiring networking and power supply, they tend to be
    grouped in clusters of ten. From the users perspective it simply a
    group of 50 computers with IP addresses assigned
    non-deterministically by a router.}
  \label{fig_phard2}
\end{figure}
\vspace{0.1in}

\noindent
Another perspective of MTASC is shown in Figure
\ref{fig_mtasc_diag}. Each group of ten PABLOs is connected to a
single USB hub (the RasPi requires a simple 5V input), and also
connected by Ethernet to a Netgear switch.  The switches are typically
daisy-chained, but all connect to a single router, a basic Netgear
router. The router and computers are configured to obtain their IP
addresses using the DHCP server, at boot time. No assumption is made
as to which computer has which IP address, although with a little
work, this mapping could have been fixed. We feel this is too brittle
of an assumption in the real world. Instead, our tools will address
this challenge.

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{figures/mtasc_diagram.png}
  \caption{Each cluster of ten PABLO computers is powered by a ten-port
    USB hub. Each computer has an Ethernet cable connection to a 16 port
    Netgear switch. Each switch is connected to a single router. All IP
    addresses are on a local 192.168.7.x network with IP addresses assigned
    non-deterministically by the router using DHCP.}
  \label{fig_mtasc_diag}
\end{figure}
\vspace{0.1in}

\noindent
The pablos ports are rated to be IP67 waterproof and the box is designed to
be fit into the MIT Heron USV robots, as in Figure \ref{fig_phard1}.

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.95\textwidth]{figures/pablo_hardware1.png}
  \caption{The basic machine topology of the 50-vehicle exemplar
  each PABLO as development progresses.}
  \label{fig_phard1}
\end{figure}
\vspace{0.1in}

\noindent
The two utility USB ports are typically capped off when deployed on
one of our robots, but could be used to support a variety of external
marine sensors. In the MTASC simulation cluster configuration, one of
the USB ports will have a "blinkstick" LED indicator for conveying the
state of the computer during boot or mission stages. The blinkstick is
discussed in more detail in Section \ref{sec_bstick}.

%======================================================================
\newpage
\section{MTASC Components - Assembling the System}
%======================================================================

The MTASC System is comprised of the following components. For this
discussion, we regard the PABLO box as a single component. The PABLO
itself has about 20 components, but in the disassembled MTASC system,
the PABLO is fully assembled.

%======================================================================
\subsection{MTASC Bill of Materials}
\label{sec_mtasc_parts}

The 50-Node MTASC system contains:

\begin{packed_itemize}
\item 50 PABLO boxes
\item 50 Blinkstick LEDs
\item 50 PABLO Ethernet cables: For each column of five boxes, five 20-inch
  cables is fine. To reduce cabling this could be reduced to one 12-inch
  cable, three 18-inch cables, and one 20-inch cable. Ethernet cables of
  various sizes are available on many sites such as Amazon of sites specializing
  in cables.

\item 5 cables for the Netgear switches. Four shorter ones for connecting
  between the switches, and one longer one to connect to the router. 
  
\item 5 Netgear switches with power cables

  \urlx{https://www.amazon.com/gp/product/B00023DRLO}

\item 5 ANKAR USB Power hubs (10 ports each)

  \urlx{https://www.amazon.com/gp/product/B00YRYS4T4}
  
\item 1 Netgear Router

  \urlx{https://www.amazon.com/gp/product/B0041LYY6K}
  
\item 3 4-outlet power strips

  \urlx{https://www.amazon.com/gp/product/B07T7P8YMB}
  
\end{packed_itemize}

\vspace{0.1in}
\noindent
A couple things that are {\em not} included, but should be easy to find:

\begin{packed_itemize}
\item A power-strip for the router and each of the included power-stips to
    plug into. Needs at last four outlets.
\item An Ethernet cable for connecting the Netgear Router to your external
    network.
\end{packed_itemize}

\vspace{0.1in}
\noindent
There are two recommended items:

\begin{packed_itemize}
\item An SD card cloner. This is an essential tool for replacing the SD card in
  any pablo that appears to have been corrupted. With 50 nodes, you can count on
  one of them needing to be replaced every once in a while (~every month). For
  the Lincoln MTASC system, one SD card cloner is included. Great measures have
  been taken in the automated scripts and source code structure such that changes
  made to one pablo can be propagated to all, without having to open the pablos and
  re-clone from a master copy. If the day should come when such a step is required,
  you may want more than one SD card cloner. The Amazon link is:

  \urlx{https://www.amazon.com/gp/product/B00ERNK498}
  
\item An electric screwdriver. Pablo boxes shouldn't need to be opened
  very often, but if you ever do need to open all of them, you will
  want an electric screwdriver. Here's the one I used:


  \urlx{https://www.amazon.com/gp/product/B07DNXM8WC}

\end{packed_itemize}

%======================================================================
\subsection{Assembling the MTASC Cluster}

Assembling the MTASC is straight-forward and does not require any
tools. It will require all the parts listed in Section
\ref{sec_mtasc_parts}. The most useful diagram to keep in mind is
re-shown where:

\vspace{0.1in}
\begin{figure}[H]
  \centering
  \includegraphics[width=0.8\textwidth]{figures/mtasc_diagram.png}
  \caption{Each cluster of ten PABLO computers is powered by a ten-port
    USB hub. Each computer has an Ethernet cable connection to a 16 port
    Netgear switch. Each switch is connected to a single router. All IP
    addresses are on a local 192.168.7.x network with IP addresses assigned
    non-deterministically by the router using DHCP.}
  \label{fig_mtasc_diag2}
\end{figure}
\vspace{0.1in}

\noindent
Stacking PABLOs: The PABLOs are typically stacked five-high. Stacking
them higher than five-high makes it a pain to access one if you need to
pull them out. You may also notice that there are six screws in each PABLO
lid. Only the two middle ones are screwed down. The four corner screws remain
protruding, which allows them to fit into the holes of a PABLO stacked above
it. This creates some stability for stacking the PABLOs in a set of five. 

\vspace{0.1in}
\noindent
If using a five-high stack, the 50 PABLOs have a length of just under nine feet.
If you have bench space for this, that's great. My preference is to use a set
of shelves as shown on the right in Figure \ref{fig_phard2}. You will want about
16 inches of space between shelves. This allows amble room for the network switch,
and the USB power hub.

\vspace{0.1in}
\noindent
Assembling a PABLO Cluster:

\begin{packed_enumerate}
\item Position a cluster of 10 PABLOs (preferably in order), two stacks
  of five, side-by-side.
  
\item On top of the cluster, place the USB hub and the network switch
  for the cluster. If you are able to mount the network switch to the
  underside of the shelf above the cluster, that is preferable. If
  not, place the network switch first (it is wider) and the USB hub on
  top of the switch.

\item Plug the ten Ethernet cables from the switch to the Ethernet port
  on each of the PABLOs. Shortest 1-ft cable goes on top. The three 18-inch
  cables go in the middle. The longest cable goes to the bottom PABLO.

\item Plug in the USB power cables. The USB-B end goes in the right-most
  port on the PABLO. The USB-A end goes into the USB hub.

\item For each PABLO, plug in a Blinkstick LED in the righthand USB on
  the PABLO. It should be oriented such that the four gold strips on
  the Blinkstick face to the left as they are inserted.
  
\item Repeat for the remaining four clusters.
  
\end{packed_enumerate}

\vspace{0.1in}
\noindent
Connecting the PABLO Clusters:

\begin{packed_enumerate}
\item Power: Each of the PABLO cluster will need to access to two
  power outlets. One for the Netgear switch, and one for the USB
  hub. Several small 4-outlet power-strips were include in the MTASC
  materials. Each of the small power-strip should connect to one
  master power-strip (not included), to provide a single switch for
  power-cycling the entire 50 nodes. Note that each of the USB hubs
  has their own switch, enabling a power-cycle per cluster.

\item Data: Each network switch will need to connect to the router. They
  can be directly connected, or daisy-chain connected. Several Ethernet
  cables were provided to daisy-chain the switches, with one longer
  cable for connecting to the router.

\item Finally, the main power-strip can be connected to the wall, and
  the router can be connected to an Ethernet jack with Internet
  access, and powered on.
\end{packed_enumerate}

\end{document}


