Lab 2a - How to login to a SeaBeaver III AUV


1  Objectives of this lab
2  Introduction to SeaBeaver III
     2.1 SeaBeaver III class AUVs
          2.1.1 SeaBeaver training-kit
          2.1.2 SeaBeaver field-kit
     2.2 AUV naming conventions
          2.2.1 Nose-cone
          2.2.2 Tail-cone
          2.2.3 Pressure hull
          2.2.4 Free flood space
          2.2.5 Ballast
          2.2.6 Mast
          2.2.7 Control surfaces
          2.2.8 Six degree of freedom (6-DOF) motion of an AUV
          2.2.9 Nautical terms
3  Computers
     3.1 Embedded computers inside SeaBeaver III
          3.1.1 Raspberry Pi 4 single board computer
          3.1.2 PocketBeagle single board computer
     3.2 Topside computer
     3.3 Self checkoff assessment
4  How to login to SeaBeaver III -- Wired
     4.1 Connect the Ethernet cable between the Raspberry Pi and Topside computer
     4.2 Share your internet connection with the Raspberry Pi (Linux Computers)
     4.3 SSH to the Raspberry Pi
     4.4 Ensure that the Raspberry Pi has internet
     4.5 SSH to the PocketBeagle
     4.6 Ensure that the PocketBeagle has internet
     4.7 Self checkoff assessment
5  How to login to SeaBeaver III -- Wireless
     5.1 Connect to the SeaBeaverNetwork WiFi router
     5.2 SSH to the Raspberry Pi
     5.3 Ensure that the Raspberry Pi has internet
     5.4 SSH to the PocketBeagle
     5.5 Ensure that the PocketBeagle has internet
     5.6 Self checkoff assessment
6  Shutting down embedded computers
7  Assessment


1   Objectives of this lab

  • An introduction to the SeaBeaver III training-kit and field-kit
  • Learning name conventions that will be used throughout this class
  • Learning about the two embedded computers onboard the SeaBeaver III class AUVs
  • Learning how to login to both embedded computers using a wired connection
  • Learning how to login to both embedded computers using a wireless connection
  • Making sure that both embedded computers have internet access
  • Learning how to shutdown both embedded computers safely

2   Introduction to SeaBeaver III

2.1   SeaBeaver III class AUVs    [top]

SeaBeaver is a low-cost micro-AUV design, developed at MIT. We refer to this design as the SeaBeaver class, encompassing all AUVs manufactured using this design. While individual SeaBeaver vehicles may bear different names such as Ali, Bee, Cap, or Little-Mermaid, they all belong to the SeaBeaver AUV class.

The initial iteration of our SeaBeaver design, developed in 2023 was called SeaBeaver I. In 2024, this initial version went through a cycle of significant improvements in electronics, hardware, and software, evolving into SeaBeaver II (see Figure 2.1). Students of 2.S01 in 2024 built six SeaBeaver II AUVs.

Figure 2.1: Sea trials of the first SeaBeaver II class AUV, SB2-alpha

    This year we have further improved the AUV design in terms of hardware and electronics, introducing the SeaBeaver III AUV class (see Figure 2.2).

Figure 2.2: The SeaBeaver III class AUV that will be used in this class

2.1.1   SeaBeaver training-kit    [top]

One of the primary objectives of MIT 2.S01 is to familiarize you with the internal components of the AUV and to ensure that you become comfortable working with them safely. To facilitate this learning experience, we have introduced the SeaBeaver training kit.

As shown in Figure 4.4, the training-kit comprises electronics and software identical to those found in the actual vehicle. However, there are two main distinctions between the training kit and the physical AUV:

  • The training-kit lacks the tail-cone pressure hull, which houses servo motors that drive control surfaces, the main propulsion thruster, and the mast containing LED indicators and an active GPS antenna. Instead, it is connected to a mock-up tail-cone equipped with servo motors and LEDs, emulating the SeaBeaver tail-cone.
  • The training kit does not include the main battery or the power management system. Instead, it offers two alternative power sources: (1) a wall-pluggable power adapter and (2) a compact rechargeable travel battery for mobile exercises.

Figure 2.3: SeaBeaver training-kit

    Each of you will receive a training kit to utilize throughout the duration of the 2.S01 class, allowing for hands-on learning experiences both in the classroom and at home.

2.1.2   SeaBeaver field-kit    [top]

Each training-kit can be paired with a field-kit to build a complete vehicle (see Figure 2.4). The field kit comprises the following components:

  • Components necessary for building a tail-cone pressure hull, including 3D printed parts, main propulsion thruster, servo motors, control surfaces, rotary seals, flanges, bulkhead connectors, and a potted mast. You will have the opportunity to assemble your tail-cone with our guidance and support.
  • A main pressure hull housing along with relevant flanges and bulkhead connectors.
  • A nose-cone
  • Two ballast rails that allows hydrostatic balancing of the vehicle by adding, removing, or shifting weights.
  • The main battery and power management system

Each pair of students will receive a field-kit to facilitate hands-on assembly and experimentation of their own SeaBeaver class AUV.

Figure 2.4: Parts of the SeaBeaver field-kit (left); and final assembled AUV by pairing up the training-kit with field-kit (right).

2.2   AUV naming conventions    [top]

2.2.1   Nose-cone    [top]

The nose-cone is the forward end of the AUV (Figure 2.5). In SeaBeaver class AUVs, the nose-cone is a free flood section; functioning as a wet payload bay intended to accommodate sensors that directly interact with the water. These sensors may include external pressure sensors, water temperature sensors, acoustic receiver hydrophones, acoustic transmitter transducers, etc.

Figure 2.5: Nose-cones of AUVs

2.2.2   Tail-cone    [top]

The tail-cone constitutes the aft end of the AUV (refer to Figure 2.6). Conventionally, it houses the propulsion and control actuator mechanism, such as the thruster(s), control surfaces, and their respective drive mechanisms. In SeaBeaver class AUVs, the tail-cone encompasses three control surfaces along with their servo-based drive mechanisms, the main thruster, mast, and an external pressure/temperature sensor.

Figure 2.6: Tail-cones of AUVs

2.2.3   Pressure hull    [top]

The pressure hull, also known as the pressure housing or electronics housing, constitutes a dry compartment within the vehicle, primarily designated to house electronics (see Figure 2.7). The internal pressure of this compartment is generally equal to or lower than atmospheric pressure. Consequently, the pressure hull must have the structural integrity to endure the external water pressure at the vehicle's designated crush depth.

In certain scenarios, the housing is filled with oil. Within oil-filled housings, the internal pressure equals or slightly exceeds the external water pressure. Consequently, the housing's walls do not need to withstand the external pressure, as there are no air cavities present. However, it is imperative that individual components placed within an oil-filled housing can operate effectively at the vehicle's designated crush depth.

2.2.4   Free flood space    [top]

A free flood space refers to an area or compartment in which external water can freely flow in and out (see Figure 2.7). The boundary walls of such sections essentially act as a fairing, maintaining the hydrodynamic shape of the vehicle. As there are no air cavities present, these fairing walls do not need to withstand external water pressure.

Figure 2.7: Pressure hull and free flood sections of SeaBeaver III AUV class

2.2.5   Ballast    [top]

Ballast refers to heavy materials, typically lead or stainless steel blocks, strategically placed within the vehicle to increase weight or shift its center of gravity (see Figure 2.8). As you will learn later in the class, AUVs are usually ballasted to maintain a slight positive buoyancy, where buoyancy slightly exceeds the overall in-water weight. In addition, they are adjusted to have zero trim and heel angles. This is achieved by adding, removing, and shifting ballast weights (see Figure 2.8).

Figure 2.8: Ballasting the SeaBeaver I - echo AUV

2.2.6   Mast    [top]

The mast of an AUV typically accommodates various antennas. These antennas may include a GPS antenna, a satellite modem antenna, cellular modem antenna, and a WiFi antenna. Additionally, the mast may feature light strobes to enhance the vehicle's visibility when at the surface. Ensuring adequate surface visibility is crucial for AUVs, facilitating easy recovery after a mission. Masts are typically designed to be raised above the waterline to optimize reception and visibility.

2.2.7   Control surfaces    [top]

The control surfaces (a.k.a. fins, control planes, rudders/elevators) are used to turn the vehicle in horizontal and vertical planes (i.e., yawing and pitching). Similarly to a rudder of a ship, they generate a lift force when they pose an angle of attack to the direction of the flow. This force is used to turn the vehicle.

2.2.8   Six degree of freedom (6-DOF) motion of an AUV    [top]

Figure 2.9 illustrates the 6-DOF motion of an underwater vehicle. There are three axes in an underwater vehicle, called longitudinal, transverse, and vertical axes. The motion along and around them are:

  • Surge: linear forwards and backwards motion along the longitudinal horizontal axis
  • Sway: linear transverse (side-to-side) motion along the transverse (a.k.a lateral) horizontal axis
  • Heave: linear vertical (up and down) motion along the vertical axis
  • Roll: Angular motion of the vehicle about its longitudinal axis.
  • Pitch: Angular motion of the vehicle about its transverse axis.
  • Yaw: Angular motion of the vehicle about its vertical axis.

Figure 2.9: Six degree of freedom (6-DOF) motion of an AUV

    Steady-state offset angles in roll and pitch also have names:

  • Heel angle: a steady-state roll angle offset due to the ship's own weight distribution.
  • Trim angle: a steady-state pitch angle offset due to the ship's own weight distribution

2.2.9   Nautical terms    [top]

Additional nautical terms:

  • Port: the left of the vehicle as you look forward
  • Starboard: the right of the vehicle as you look forward
  • Bow: the forward part of the vehicle
  • Stern: the rear part of the vehicle
  • Forward: towards the front of the vehicle
  • Aft: toward the stern of the vehicle
  • Waterline: the lines that separates the submerged section of the vehicle from the section above, while the vehicle is at surface

3   Computers

3.1   Embedded computers inside SeaBeaver III    [top]

There are two embedded single-board computers inside SeaBeaver III class AUVs: (1) a Raspberry Pi 4 single-board computer and (2) a Beagleboard PocketBeagle single-board computer. A single-board computer is a fully functional computer in which the microprocessor, input/output functions, memory, and other features are built on a single circuit board.

3.1.1   Raspberry Pi 4 single board computer    [top]

The Raspberry Pi single-board computer (see Figure 3.1) serves as the main compute unit of the AUV. This embedded computer is dedicated for higher-level processes that require more compute power. The Raspberry Pi has an inbuilt WiFi module. This WiFi interface is configured to connect to the SeaBeaverNetwork WiFi router with a static IP address. Every vehicle and training-kit will have a unique static IP.

Figure 3.1: Raspberry Pi single board computer of the SeaBeaver III

3.1.2   PocketBeagle single board computer    [top]

The PocketBeagle single board computer (see Figure 3.2) serves as a hub for sensors and actuators. That is, all sensors and actuators are directly connected to the PocketBeagle via its various interfaces (more details about this will be discussed in future labs). The PocketBeagle is networked with the Raspberry Pi via Ethernet (to be precise, via Ethernet over USB). When the Raspberry Pi and the PocketBeagle are connected, the PocketBeagle will have the static IP address of: 192.168.7.2. Currently, all PocketBeagles will have the same IP address from the perspective of each Raspberry Pi.

Figure 3.2: PocketBeagle single board computer of the SeaBeaver III

3.2   Topside computer    [top]

The laptop computer that you use to connect to the AUV is referred to as the Topside computer. This could be either your personal laptop (Linux or Mac preferred) or a class laptop that was loaned to you. You will use the topside computer to connect to the AUV via the Secure Shell Protocol (SSH).

3.3   Self checkoff assessment    [top]

Check:

  • Are you able to recognize the two computers inside the SeaBeaver III AUVs?

4   How to login to SeaBeaver III -- Wired

Currently, there are two methods to connect to SeaBeaver III AUVs.

  1. When the vehicle is opened; for example, when you are using the training-kit, you can use a direct Ethernet cable to connect.
  2. When the vehicle and you are both in proximity to SeaBeaverNetwork WiFi router, you can connect via WiFi.

4.1   Connect the Ethernet cable between the Raspberry Pi and Topside computer    [top]

As shown in Figure 4.1, connect an Ethernet cable between the Raspberry Pi and the topside computer.

Figure 4.1: Wired Ethernet connection between the topside computer and SeaBeaver Raspberry Pi.

4.2   Share your internet connection with the Raspberry Pi (Linux Computers)    [top]

On your topside laptop:

  1. Go to settings
  2. Go to network
  3. Under wired tab, click the gear wheel icon:

Figure 4.2: Settings -> Network -> Wired

Figure 4.3: Settings -> Network -> Wired -> IPv4 -> Shared to other computers

Figure 4.4: Settings -> Network -> Wired -> Restart Interface

4.3   SSH to the Raspberry Pi    [top]

On ubuntu topside laptops, you will receive a static IP address of 10.42.0.1 when you select the wired network IPv4 option: ``shared to other computers''. You can Ensure this by:

 $ ifconfig

 enx68da73a0ce6f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
         inet6 fe80::2b2e:b50a:c6c7:518e  prefixlen 64  scopeid 0x20<link>
         ether 68:da:73:a4:ce:6f  txqueuelen 1000  (Ethernet)
         RX packets 2833  bytes 164703 (164.7 KB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 7373  bytes 9918932 (9.9 MB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

As you see from the output, your Ethernet IP address is 10.42.0.1. If your IP address is not in the range 10.42.0.ABC, you will not be able to log into the SeaBeaver Raspberry Pi. You might need to set up a static IP address for the top-side laptop in this range.

    The Ethernet interface of every Raspberry Pi is configured to have the same static IP address as 10.42.0.5. Now connect to the Raspberry Pi via SSH:

 $ ssh seabeaver-raspi@10.42.0.5

Now you will be asked to enter the password:

 seabeaver-raspi@10.42.0.5's password: 

Enter the password (the password will be provided to you by the instructors). Once you are logged in, you will see the screen below:

 Welcome to Ubuntu 20.04.5 LTS (GNU/Linux 5.4.0-1105-raspi aarch64)

  * Documentation:  https://help.ubuntu.com
  * Management:     https://landscape.canonical.com
  * Support:        https://ubuntu.com/advantage

   System information as of Fri Mar 29 18:43:14 UTC 2024

   System load:  0.0                Processes:             145
   Usage of /:   10.1% of 58.23GB   Users logged in:       0
   Memory usage: 2%                 IPv4 address for eth0: 10.42.0.5
   Swap usage:   0%                 IPv4 address for eth1: 192.168.6.1
   Temperature:  47.2 C             IPv4 address for eth2: 192.168.7.1

  * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
    just raised the bar for easy, resilient and secure K8s cluster deployment.

    https://ubuntu.com/engage/secure-kubernetes-at-the-edge

 62 updates can be applied immediately.
 To see these additional updates run: apt list --upgradable


 Last login: Wed Mar 27 23:10:02 2024 from 192.168.0.101
 seabeaver-raspi@seabeaver-raspi:~$ 

    Now you are successfully logged into the SeaBeaver's Raspberry Pi.

4.4   Ensure that the Raspberry Pi has internet    [top]

You can check if the Raspberry Pi has internet access via the topside computer by pinging google.com:

 $ ping google.com 

If you have Internet access, you will see an output similar to this.

 PING google.com (142.251.40.142) 56(84) bytes of data.
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=1 ttl=55 time=8.96 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=2 ttl=55 time=11.5 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=3 ttl=55 time=11.1 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=4 ttl=55 time=11.7 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=5 ttl=55 time=10.2 ms

To exit from pinging, press ctrl+c.

4.5   SSH to the PocketBeagle    [top]

Once you log into the RasPi, you can SSH into the PocketBeagle from RasPi:

 $ ssh debian@192.168.7.2

Normally, you will be asked to enter the PocketBeagle's password. However, to simplify operations, we have configured the PocketBeagle such that it will let the RasPi SSH in without requiring a password (i.e. by copying RasPi's public SSH key file to the PocketBeagle as a trusted computer). Once you are logged in, you will see the screen below:

 The programs included with the Debian GNU/Linux system are free software;
 the exact distribution terms for each program are described in the
 individual files in /usr/share/doc/*/copyright.

 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 Last login: Wed Mar 27 17:07:57 2024 from 192.168.7.1
 debian@beaglebone:~$ 

4.6   Ensure that the PocketBeagle has internet    [top]

Similarly to the RasPi, you can ensure that the PocketBeagle has internet access via the RasPi by pinging google.com:

 $ ping google.com 

4.7   Self checkoff assessment    [top]

Check:

  • Are you able to log-in to Raspberry via Ethernet?
  • Are you able to log-in to the PocketBeagle via Ethernet?
  • Have you confirmed that both computers have Internet access through the topside laptop?

5   How to login to SeaBeaver III -- Wireless

You can only use the wireless approach when the vehicle and you are both in proximity to the SeaBeaverNetwork WiFi router. That is, you can only complete this section when you are in the classroom or in the MIT Sailing Pavilion. If you are doing this lab at home, skip this section to the next.

5.1   Connect to the SeaBeaverNetwork WiFi router    [top]

Connect your topside laptop to the SeaBeaverNetwork WiFi access point. The DHCP server on the router will assign you an IP address in the range 192.168.0.100-200. If you like, you can check your IP address by using ifconfig command:

 $ ifconfig

5.2   SSH to the Raspberry Pi    [top]

The wireless interface of each SeaBeaver Raspberry Pi computer is configured with a unique static IP address in the range 192.168.0.50-80. The static IP address that we assigned for your training-kit will be clearly labeled. If not, ask the instructors. Now connect to the Raspberry Pi via SSH (use your training-kit's IP address instead of 192.168.0.50):

 $ ssh seabeaver-raspi@192.168.0.50

Now you will be asked to enter the password:

 seabeaver-raspi@10.42.0.5's password: 

Enter the password (password will be provided to you by the instructors). Now you are successfully logged into the SeaBeaver's Raspberry Pi.

5.3   Ensure that the Raspberry Pi has internet    [top]

You can check if the Raspberry Pi has internet access via the router by pinging google.com:

 $ ping google.com 

5.4   SSH to the PocketBeagle    [top]

Once you logged into the RasPi, you can SSH into the PocketBeagle:

 $ ssh debian@192.168.7.2

5.5   Ensure that the PocketBeagle has internet    [top]

Similar to the RasPi, you can ensure that the PocketBeagle has internet access via the RasPi by pinging google.com:

 $ ping google.com 

If you have Internet access, you will see an output similar to this.

 PING google.com (142.251.40.142) 56(84) bytes of data.
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=1 ttl=55 time=8.96 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=2 ttl=55 time=11.5 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=3 ttl=55 time=11.1 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=4 ttl=55 time=11.7 ms
 64 bytes from lga25s80-in-f14.1e100.net (142.251.40.142): icmp_seq=5 ttl=55 time=10.2 ms

To exit from pinging, press ctrl+c.

5.6   Self checkoff assessment    [top]

Check:

  • Are you able to log-in to Raspberry via WiFi?
  • Are you able to log-in to PocketBeagle via WiFi?
  • Have you confirmed that both computers have Internet access through the WiFi router?

6   Shutting down embedded computers

You need to first shutdown the PocketBeagle and then the RasPi. When you are logged into the PocketBeagle, you can use the halt command to safely shutdown the computer:

 debian@beaglebone:~$ sudo halt

Enter the password when you are asked to do so. Then you will be bounced back to the RasPi:

 [sudo] password for debian: 
 Connection to 192.168.7.2 closed by remote host.
 Connection to 192.168.7.2 closed.
 seabeaver-raspi@seabeaver-raspi:~$

You can now use the halt command on the RasPi to shut it down safely:

 seabeaver-raspi@seabeaver-raspi:~$ sudo halt

Enter the password when asked. Then you will be bounced back to your topside computer:

 [sudo] password for seabeaver-raspi: 
 Connection to 10.42.0.5 closed by remote host.
 Connection to 10.42.0.5 closed.

Now you have shut both embedded computers off.

7   Assessment

Lab assessments are structured to ensure that you are on track to complete your AUV by the end of the semester for in-water trials. You are expected to demonstrate to one of the instructors that you can complete the following tasks. More importantly, please do not hesitate to communicate with the instructors if you encounter any issues.

  1. Log into the PocketBeagle using either wired or wireless approach.
  2. Ping google.com to confirm that the PocketBeagle has internet access and show the response to one of the instructors.

Document Maintained by: supun@mit.edu        
Page built from LaTeX source using texwiki, developed at MIT. Errata to issues@moos-ivp.org. Get PDF