AVBotz

Nemo

🐠 AVBotz Nemo

Building off of the experience gained from Marlin, we designed and assembled Nemo as our new and improved AUV for RoboSub, despite the challenges of COVID-19. Nemo is an entirely new vehicle for the team that focuses on optimizing for stability and modularity.

This year, the electrical team took the opportunity to overhaul the electrical system to make maintenance easier. Furthermore, since social distancing guidelines prevented any effective pool tests from taking place, we created a fully functional simulator in Gazebo, which allowed the software team to test code and vision functions without needing a physical environment. All of these upgrades have allowed Nemo to become the most optimized AUV that the team has created.

This page overviews Nemo's existing specifications and recent changes contributed by each of the our sub divisions. Special thanks to all of our sponsors who contributed hardware and monetary support to help bring Nemo to life.

30 meters

Maximum Depth

3,500+

Lines of Mission Code

4 m/s

Top Speed

3 years

In Development

Subdivision Overview

AVBotz's technical subteams include the electrical, mechanical, and software systems of Nemo. Each team's role is described in detail below.

Mechanical

Mechanical's responsibilities are to design, build, and maintain the vehicle. Our goal is to improve the capabilities of the sub’s hardware and to help maintain the sub in its working capacity. Using the CAD software, we are able to test new components easily, as well as save our designs for future club members to reference. With the help of our sponsors, we are able to model and fabricate our vehicle's parts, while teaching our members many engineering skills along the way.

Electrical

Electrical is responsible for the design and application of equipment and implementation of the electrical circuits that bring the vehicle to life. Electrical primarily works within the hull, piecing together the circuit boards and managing power delivery make sure that the subsystems can communicate with each other safely and reliably.

Software

The software team is responsible for the design and implementation of the software and mission code that allows our vehicles to operate with autonomy. The major software components include: mission planning, control systems, computer vision, and machine learning.

Mechanical Team

Creating an entirely new vehicle for the 2021 RoboSub competition was the mechanical team's largest task this year. As mentioned before, the use of FEA, FDM, and Generative Design techniques allowed us to optimize Nemo for strength, weight, and size. Nemo puts us in a position to take on new challenges for current and future RoboSub tasks.

In previous years, one of the largest problems with Marlin was the irregular horizontal cross-section that yielded balance problems. This caused Marlin to rollover and pitch forward when in motion. Changes to the overall shape of the hull were aimed at creating symmetrical cross-sections to increase control, leading to the design of two mounting planes that would evenly distribute the weight of the submarine. Now, Nemo’s center of gravity is geometrically centered and allows for easier maneuverability and an increase in the sub’s stability.

Almost all of the watertight enclosures on Nemo are made of carbon fiber. We chose carbon fiber due to its higher strength-to-weight ratio compared to other common materials such as aluminum alloy. Carbon fiber parts also have advantages in fabrication, allowing for unique shapes with virtually no material being "milled" away. Nemo's aluminum sealing lips are bonded to the carbon parts using an epoxy adhesive augmented with a bond line controller. O-rings were selected as the primary sealing device due to their proven reliability and low cost. ‍ Nemo’s main enclosure is pressurized to the equivalent underwater pressure at the maximum expected operating depth depending on its mission. This means that at depth, there are virtually no pressure forces acting on the hull. In addition, Nemo is able to detect a failed seal, indicated by a drop in air pressure, and make an emergency recovery without any ingress of water.

To meet our budget constraints and strict tolerances, the AVBotz team performed all of the carbon fiber enclosure production “in-house". Through discussions with experts in the composite industry and research into carbon fiber, the team used the wet-layup and vacuum-bagging technique.

Hydrophone Enclosure (left) and Battery Box (right)

Hydrophone Enclosure (left) and Battery Box (right)

In previous years, batteries were placed inside the main enclosure, making it difficult to replace batteries during pool tests and exposing fragile electronics to damage from handling or from water. Nemo has adopted external battery boxes, consisting of a lip, lid, and a carbon hull. The four draw latches allow for tight water sealing while also allowing quick access to the batteries. Since these enclosures will be accessed very frequently, an unique dovetail o-ring groove is added, negating any risk of an improperly seated o-ring causing a leakage. SubConn connectors allow for safe connection and disconnection even when the connectors are wet.

Nemo maneuvers using eight VideoRay M5 thrusters, chosen for their high thrust and efficiency: four are arranged on the horizontal plane at angles to control sway, yaw, and surge movements, while the other four are vertically mounted and control heave, pitch, and roll. The thrusters collectively use up to 750W and generate up to 23 lbs of thrust.

The electronics rack was modeled using a top-down design technique with the goal of fitting inside the smallest volume to minimize any extra buoyancy. The rack is made out of strong laser-cut plywood, allowing holes to be easily tapped for mounting any future electronics, or parts can be easily swapped due to plywood’s cheap cost and ease to work with.

The front camera enclosure consists of six o-ring seals and eighteen sealing washer, making it one of the single most complex parts. Four threaded rods are used to compress together the external lens and sealing flanges against Nemo’s internal pressure. Face-type o-ring seals are located in the interface between the lens and the forward flange and the interface between the back plate and Nemo’s main electronics enclosure.

Camera Enclosure Back Plate FEA Displacement Plot

Camera Enclosure Back Plate FEA Displacement Plot

Electrical Team

This year, electrical was tasked with simplifying the electrical system while simultaneously solving the large thermal issues present in Marlin V1.

Nemo's main computer is built on a Jetway NF9J-Q87 Mini-ITX motherboard. It contains a 2.7 GHz quad core Intel i7-4790T Haswell processor, 16GB of RAM, and a 1TB mSATA SSD. The main computer handles high-level functions such as image processing. The NF9J-Q87 was chosen for its large number of USB ports and dual ethernet ports. The i7-4790T was chosen for its combination of high processing power and low power consumption. An additional GTX-1080ti provides us with enhanced compute power for machine learning models. At full power, the main computer uses just 60W. To handle the heat generated by the main computer, a heat pipe CPU cooler is used.

Specifications

Jetway NF9J-Q87 Mini-ITX CPU: Intel i7-4790T (2.7 GHz) 16GB DDR3 RAM 1Tb mSATA SSD

The main computer on Nemo's electronics rack

The main computer on Nemo's electronics rack

A legacy component we identified as problematic was our TRAX AHRS, which, although accurate, had a high re-placement cost if damaged. We determined that modern, inexpensive 6-axis MEMS IMUs and3-axis magnetometers, combined with an open-source Madgwick software fusion algorithm, would be able to provide similar performance at a much lower cost. Our approach combines a common, inexpensive ICM20689 MEMS accelerometer & gyroscope with a RM3100 magnetometer. We initially tested with an MPU9250 9-axis IMU; however, we determined that the IMU could not match the accuracy of the AHRS system it was replacing, and thus we chose the ICM20689and RM3100 instead. Ultimately, the new AHRS system performs with the same accuracy while outputting data at a faster rate, improving Nemo’s ability to calculate its orientation in the pool.

The systems diagram for our AUV Nemo

Nemo is powered by two ZEEE 6S 6000mAh Lithium Polymer Batteries connected in series. These batteries were chosen for their high energy density and ability to supply large amounts of instantaneous current. The batteries provide a nominal 44.4V and have an energy capacity of about 260Wh, which allows Nemo to run for 1⁠-2 hours of continuous water testing with machine learning running.

The tether allows us to upload/debug code on the main computer during testing, allowing us to save time by debugging software while the vehicle is still in the water. Marlin’s WiFi tether consists of a Netgear router and a rechargeable battery pack. The access point is wired to the main computer via a 2nd Gen Blue Robotics Fantom Tether custom terminated into a MacArtney Subconn 13 pin Ethernet connector

Nemo's pressure sensor is the Ashcroft Model K1 Pressure Transducer/Transmitter. It converts pressure readings from the water into voltage. These voltage readings are linearly converted to depth on the ATmega 2560. Many thanks to Ashcroft for their sponsorship in providing the K1.

The microcontroller is an ATmega2560. It was chosen for its simple programming environment and wide variety of I/O. The Arduino handles all of the vehicle's navigation as it interfaces with all control sensors and communicates directly with motors and is our abstraction layer for mission code.

The Kill Switch remains the same as the one from its predecessor, Marlin. It was found that divers enjoy using this switch very much and we found no reason to innovate further on the design. The switch uses a Carling Technologies sealed switch epoxied in an off-the-shelf potting box to kill power to the thrusters while underwater.

Our system for signal processing utilizes a custom programmed FPGA for calculations which communicates with two Pmod AD1s running at 300kS/s sampling rate. The amplification boards consists of a 4 stage circuit which isolates the hydrophones from the amplification board using a preamp then conditions the signal utilizing a second order low pass filter targeted at 70 kHz with signal becoming undetectable above 100 kHz. The third stage applies amplification of 20dB and then forwards the signal to a final high pass filter with a 1.6V offset from ground. The new amplification and signal conditioning board is custom designed and manufactured using AD8676 dual channel op amps making them very cost effective and with relatively low signal noise. The circuits were simulated in LTSpice XVII before manufacturing, significantly reducing cost of R&D while also making the resulting data usable for the first time in 20 years.

Our custom programmed FPGA used in our AUV Nemo

Our custom programmed FPGA used in our AUV Nemo

Two systems are present to maintain a reasonable internal temperature inside the main electronics bay. The first is the lid witch has been designed to wick away heat from the the DC to DC converter as well as absorb a small quantity of heat and transfer it to the outside. The second is an active water-cooling system relying on two radiators and waterblocks strategically placed to absorb internal hot air and cool it as well as cool high performance computing elements directly. While a bulkhead could have been used to achieve similar results by using two radiators, one inside and one outside, we are also able to run the submarine in the open air: a necessity during comp to cutdown on setup time and issues with debugging. It's also more power efficient then a Peltier, though one could be added with an external power supply.

Software Team

The software subdivision designs, implements, and maintains all programmable elements of the AUV. It strives to create a robust system that is capable of adapting to different conditions and performing complex actions. In order to complete this, the subdivision designs and improves algorithms to manage various aspects of the AUV’s operation, including mission planning, navigation, localization, machine vision, and signal processing.

The software stack consists of two programs. The first runs on a microcontroller and it is called Nautical. Its job is to maintain the state of the submarine and control its movement. Nautical also manages all manipulators on the submarine and it is the backbone of the sub. The second program runs on the main computer onboard the submarine, which is called Boops-Boops. This program issues commands to Nautical to complete the tasks. Porpoise runs in an Ubuntu installation using Robot Operating System (ROS) to communicate information between different subroutines that are used for controlling the sub.

Interface is the master program that starts each process on the software stack. Our low-level controller runs on the ATMega2560 microcontroller. It connects to the DVL, AHRS, and thrusters via serial UART pins. It uses six PID filters, one for each bearing of the submarine. The resulting PID vector is multiplied by the thruster matrix, mapping the effect of each thruster on each element of the state, to produce the desired thruster power. The state consists of the (X, Y) position, computed by integrating the DVL velocity readings, the depth determined from the analog pressure sensor, and the roll, pitch, and the yaw from AHRS. Because of the simple serial protocol, Nemo can be controlled manually through a terminal for testing and debugging use. Furthermore, all configuration variables (e.g. PID gains and the thruster matrix) can be adjusted over serial communication to empirically tune the optimal values on the fly.The software stack consists of two programs. The first runs on a microcontroller and it is called Nautical. Its job is to maintain the state of the submarine and control its movement. Nautical also manages all manipulators on the submarine and it is the backbone of the sub. The second program runs on the main computer onboard the submarine, which is called Boops-Boops. This program issues commands to Nautical to complete the tasks. Porpoise runs in an Ubuntu installation using Robot Operating System (ROS) to communicate information between different subroutines that are used for controlling the sub.

Competition tasks are associated with machine learning models that have been pre-trained with data from past competition logs, pool tests, and simulation runs. As we proceed through the tasks, our mission stack runs through a pipeline of image acquisition, downscaling, color correction, and finally PyTorch object detection. Our innovative approach of correcting and filtering out haze in the image using an in-house proprietary algorithm, coupled with our upgraded YOLOv5s model, allows our AUV to see at increased distances with magnified accuracy and speed.

The hydrophone code for our AUV is written in C and it runs on an FPGA which reads data from three hydrophones located outside the main hull. The analog-to-digital converter (ADC) receives amplified signals from the hydrophones at 500 thousand samples per second. Using each analog signal, we apply a Discrete Fourier Transform, with a variety of optimizations, to filter out undesirable frequencies. The time at which the ping is detected is recorded for each hydrophone, then the time difference of arrival (TDOA) is computed. Using a form of multilateration, the hydrophone code solves a system of equations to calculate an approximate angle to travel towards the source of sound. It then repeats this process at multiple points, and it uses calculus to identify the point that is closest to the lines formed by these angles. This deals with the potential error from physical measurements and from the DFT.

The simulator is a critical part of our submarine’s software stack. Throughout the development cycle, software engineers work inside the simulator to test,refine, and optimize, the subroutines used to complete the tasks. The sim consists of the competition’s TRANSDEC environment rendered with all the competition props stationed inside. Gazebo, which is the base software that our simulator is built on, synthesizes the visual conditions experienced underwater,also varying the position of props from run to run to prevent over optimization. With this we are able to rigorously and extensively test the Porpoise stack in depth, in essence repeating the competition thousands of times before ever arriving to TRANSDEC.

Nemo in our simulator, attempting the buoys task

Nemo in our simulator, attempting the buoys task

Nemo's Main Specifications

Weight (in air)

61 lbs (27.7kg)

Hull

12" x 24" x 16"

Dimensions

12" x 24" x 16"

Propulsion

8x VideoRay M5 Brushless Thrusters

Power

2x 22.2V 16,000 mAh LiPo Batteries (in series)

Underwater Connections

SubConn Power, Circular, Micro Circular, Ethernet, and Coax series

Cameras

1x 1.3 MP Point Grey Blackfly machine vision cameras w/ Theia Technologies SY125M lens

1x 20MP Point Grey Blackfly machine vision camera w/ Computar V0828-MPY lens

Navigation Sensors

Pressure Sensor (Ashcroft Model K1) AHRS (PNI TRAX AHRS Module) Hydrophones (4x Teledyne Reson TC4013)

Main Computer

Intel i7-4790T on Jetway NG9J-Q87 Mini ITX 16GB DDR3 RAM 1TB mSATA SSD

Embedded Computer (Control)

ATmega 2560

Data Acquisition and Signal Processing

Custom FPGA with quad DAC with 1 MHz/s sampling rate

Custom Conditioning Boards

AVBotz Logo

© 1999-2025 AVBotz, Amador Valley High School

All materials presented on this site are intended for educational purposes.