A Beautiful Fusion of Electrical, Mechanical and Software Engineering

Auri at RoboSub 2019

Designed in 2016-17

ARVP’s previous autonomous underwater robot, AquaUrsa, was retired after 4 years and three major rebuilds. Even though AquaUrsa had shown fantastic reliability within the last few years, signs of fatigue and material failure led the mechanical team to the retirement decision in 2016. A subteam was created early that year dedicated to designing a new robot to be used in Robosub 2017. In December of 2016 the robot’s design was finalized, the engineering calculations were completed, and the robot was named Auri.

Members of ARVP are responsible for the design and implementation of all systems on board our submersible robots. The team has three primary areas of technical design: mechanical, electrical, and software.
AquaUrsa - Predecessor to Auri

View the CAD Model

Note: This is a simplified version of the complete SOLIDWORKS model and was created for faster web performance.
Browser support: Works best on Chrome or Firefox, may not work on Safari.

Expand the Sections Below for More Details

Mechanical Design

Members utilized SolidWorks to model and simulate their design before creating mechanical drawing packages to be sent to the machine shop. The mechanical design includes subsystems such as the frame, hull, external camera enclosure, battery enclosures, torpedo launcher and marker dropper.

Design Inspiration

Inspired by the fictional TIE Fighters from the Star Wars movie franchise, an octagonal outline was given to Auri. In Auri’s design process, the team aimed for keeping AquaUrsa’s best characteristics and improving the weaknesses. The aluminum frame and the transparent acrylic hull were two of the most important characteristics that were passed on to Auri. The battery enclosures and torpedo assemblies were also successfully integrated into Auri from when they were used on AquaUrsa. With six degrees of freedom compared to AquaUrsa’s five, a 30-pound drop in weight, and a significantly cheaper cost of manufacturing, Auri is without a doubt the most incredible underwater robot that ARVP designed to date.

Frame Redesign for RoboSub 2018

Auri’s frame was redesigned to improve rigidity and balance, as well as to provide mounting locations for new components required for the 2018 Robosub competition. For better control, the thrusters were positioned on the planes about the center of mass. By integrating the battery pods into the frame at the midline, the center of mass and buoyancy are now closer together, allowing the robot to hold any orientation with very little effort. This frame is much easier to assemble and is self-standing without the central hull in place. Slots were integrated into the trays to allow for easy adjustment of weights to balance the robot. Additionally, the top trays now have torpedo launchers mounted on curved slots to easily adjust their aim. This new frame has also been designed to mount a Nortek DVL 1000 to progress the robot into a new level of spatial awareness. Mounting locations for our new dropper system, hydrophone assembly, and much more are included as well.

Hull Details

The hull for Auri was completely redesigned from AquaUrsa. The best parts of the old design were kept in mind alongside new innovative ideas to solve issues from previous years. Hence, the final hull design is stronger and more practical than ever before. It is composed of a central aluminum section, from which the electronics trays are supported, and two acrylic tubes on either side which cover and house the trays. Two clear acrylic tubes allow for both visibility and easy access to front and back electronics trays. This means that the trays, although easily removed themselves, can be worked on without detaching them from the robot. The inner diameter of the tubes are only 7.5”, which is much smaller than that of the previous hull. This was chosen to reduce the buoyancy of the robot and thus reduce the weight required to sink it. The end caps are also clear acrylic disks to provide visibility for the onboard cameras. The cylindrical shape of the acrylic tubes allows for even pressure distribution to reduce stress while the octagonal shape of the aluminum section provides multiple flat surfaces for easy mounting of components.

Hull Center Block

Aluminum was chosen for the central section because it is not magnetic, meaning it would not cause a magnetic interference with any of the electrical components. It is also very easily machined, allowing for this custom octagonal shape to be made. The flat surfaces of the central section allow for subconn connectors and cable penetrators to be mounted for connection between the electrical boards inside the hull and the components outside of it. The cylindrical steps on either side of the aluminum allow for two sets of o-rings to be mounted, providing a reliably watertight seal for the hull. There is also versatility in the orientation of the electrical trays as they can slide into the hull either horizontally or vertically.

Frame Details

Auri’s frame was designed to be more compact, functional, and aesthetically pleasing than ARVP’s previous robot. The hull is friction-fit with two complete octagonal rings that are bolted to two lengths of aluminum angle. Attached to these bars are six aluminum ribs, making up the two wings. All components are located inside the wings, providing protection during transportation and testing. Moreover, portability is increased due to four rubber handles attached to the ribs. Bolted to the ribs are multiple trays and side panels. The trays and panels allow for the easy attachment and removal of a variety of components, including torpedoes, thrusters, and marker droppers. The 2018 redesign increased the size of the frame to allow for the mounting of a DVL and future mechanisms such as a cooling system or mechanical arm. The new frame is also more structurally stable and balanced. Finally, by integrating the battery pods into the ribs of the frame at the midline, the center of mass and buoyancy are now closer together, meaning the robot is able to hold any orientation with very little effort from the control system.

Gate Mechanism

The vertical thrusters are mounted on the front and back of the hull through use of a gate mechanism that latches to the frame. This serves to mount the vertical thrusters centered and below the view of the forward facing camera, as well as to provide a mechanism to enclose the hull and seal the acrylic tubes inside the frame. The latches allow the acrylic tubes to be easily removed, granting quick access to the electronics inside. The redesign added guards around the thrusters to protect them against possible impacts in the pool or during transportation.

PVC Tubes

Due to the added components and the larger frame after the redesign, the robot is heavier and the thus more buoyancy is required. With the addition of thin, 2-inch diameter PVC tubes strategically placed above and below the center of mass, the required buoyancy is easily achieved without significantly increasing the mass of the robot. Due to the versatility of these tubes, they can be used to easily move the center of buoyancy of the robot around as desired. When placed towards the top of the robot, the robot is very stable and has a strong tendency to stay upright in the water to allow for easier control. Since the tubes are placed above and below the midline, the center of mass and center of buoyancy are brought closer together, reducing the work required from the control system to hold certain orientations.

Battery Enclosures

Auri has two separate battery enclosures, which are now slightly bigger to accommodate Auri’s new batteries. These enclosures are now embedded into the frame at the midline. The battery enclosures are made out of 3.5-inch acrylic cylinders, which are sealed at both ends with aluminum double o-ring flanges. The caps of the assembly are designed with 1/2-inch acrylic ends and have subconn electrical connections.

Marker Release Mechanism

Auri has been equipped with a marker dropper located underneath the front of the bottom left tray. The markers themselves are golf balls as per competition rules. The dropper is primarily made of 3D printed plastic and can hold two golf balls. The 3D printed nature of the dropper makes for a very lightweight design and a simpler machining process. When the target area is identified by the interior cameras, a waterproof servo will turn the arm of dropper allowing a golf ball to fall. Due to the shape of the arm, when the first ball is dropped, the other will still be held in place. This allows one ball to be released at a time as the arm will need to turn further to release the second ball.


The torpedo launching module was designed to occupy the least amount of space while delivering the required pressure to propel the torpedoes. This was accomplished using CO2 cartridges that are small when compared to an air tank and compressor. The torpedo launching module consists of a CO2 bucket changer that allows for the quick replacement of the cartridges. The bucket changer is directly mounted onto an on/off ASA regulator. This on/off regulator is connected through a 90-degree fitting to a variable pressure regulator that decreases the CO2 pressure from the cartridge to the desired value. The pressure regulator is threaded into an aluminum connection piece with a female end. A ¼” fitting is used to directly mount the aluminum piece to the 2-way solenoid valve. This design is rigidly mounted to Auri with a 3D printed mounting bracket that goes around the solenoid valve. This mounting bracket is screwed into curved slots in the upper tray of the frame to allow for the angle of the torpedoes to be easily adjusted. Mounted on both solenoid valves is a solenoid-to-tube connector that is press-fitted with a 123 mm long stainless steel rod. The torpedoes are held onto these pipes by o-rings. After the entire system is pressurized with CO2, an electrical signal is sent to the appropriate solenoid valve. This signal opens the valve allowing for CO2 to escape from the launch pipe to propel the torpedo forward. The torpedoes were 3D printed using PLA as the filament.

Sonar System

A sonar system was added to the design this year which includes three hydrophone sensors for detection and triangulation of the underwater pinger in the competition. This allows the robot to identify the correct sound frequency and locate the pinger to complete the associated tasks.

Electrical Design

The design and implementation of the electrical systems bring the vehicle to life. The printed circuit boards (PCBs) were designed in EAGLE by Autodesk. The Electrical Team is also responsible for hand wiring the multiple sub-systems together and ensuring that they can communicate with each other reliably.

Electrical Platform

The electrical system in Auri is comprised of modular and standardized printed circuit board (PCB) designs, upgraded wiring solutions, and circuit protection improvements. This is all mounted in the same compact, easily removable, 3D printed panels used in the 2017 design. This allows the robot to accomplish the tasks it sets out to do reliability and efficiently.

Electrical Power Delivery

Four, 14.8V, 94.72Wh lithium-polymer batteries are used to power the robot; three batteries power the thrusters and one powers the remaining electronics. Each thruster battery is connected to two Zubax Myxa B electronic speed controllers (ESC) and all batteries operate independently from each other. The batteries are housed in two sealable acrylic cylinders, separate from the main hull, and feed the robot through Subconn Power Series waterproof cables, capable of carrying up to 25A per contact.

Power Regulation

The computers and embedded systems require either 12V or 5V from a stable source, thus a voltage regulation system is used to convert 14.8V from the battery to the acceptable levels required by the electronics. The regulator board uses two Murata UWE series eighth-brick isolated DC-DC converters which use a step-up/down topology. A small expansion board is mounted to the main regulator board to monitor power output of each rail and sends data through an i2c interface.

PCB Design Standardization

Each embedded system in the robot uses the Teensy 3.2 microcontroller and all have identical communication interfaces if they are required to communicate with the main computers, a Nvidia TX2. This allows for many different backup communication options. During normal operation, UAVCAN is used for reading and commanding the Teensys.

Battery Monitoring Board and Kill-Switch

This board monitors power delivered by the batteries using Texas Instrument’s INA3221 power monitoring integrated circuit (IC). It can also interrupt current flow from the three thruster batteries using low-side NMOS transistor switches, which are turned on only when the kill-switch is activated. The kill-switch uses multiple redundant hall effect sensors to detect the presence of an external neodymium magnet. Only when a magnetic field is detected, the switch allows the transistors to turn on.

Multi-purpose Actuation Board

The primary purpose of this board is to actuate the 12V solenoid valves that launch the 3D printed torpedoes. Low-side NMOS transistors with carefully designed snubber circuits, to minimize high frequency ringing from the solenoid coils during turn-off, are used to actuate the valves. Its secondary functions include RC servo motor and RGB LED strip control, using NSP Semiconductors’ PCA9685 PWM generator IC.

Internal Environment Sensor Board

To monitor the hull’s internal conditions, this board is used to monitor air temperature, pressure, and humidity using NXP’s MPL3115A2 and Honeywell’s HIH7120 ICs. Using these sensors, air leaks can be detected by looking for fast, abnormal changes in the hull’s internal environment.

Communication Hub

This board allows the TX2 to connect to a CAN bus for interfacing with the ESCs and embedded systems, using the MCP2562 transceiver. It also provides i2c busses for connecting to sensors, such as Blue Robotics’ 300m depth sensor.

Hydrophone Signal Conditioning Board

Before the signals provided by the Teledyne TC4013 hydrophones can be processed by the signal signal processor, they need to be amplified, filtered, and DC biased. The board uses Analog Devices’ AD8336 variable gain amplifier, the LTC1264 switched-capacitor filter, and variations of the LTC624x op-amp for voltage buffering and amplitude clipping. A custom designed, +/-5V, dual-rail, on-board power supply is used to allow for pure AC amplification and filtering.

Software Design

The Software Team is responsible for the design and implementation of the software that allows the robot to operate autonomously. The major software components include: Mission Planning, Control Systems, Computer Vision and Sonar Navigation.

Software Platform

Ever wondered how a robot “decides” to turn left or right? Like most autonomous systems, Auri’s software stack is a distributed network of processes and algorithms. The real world is a complex environment, but reacting autonomously to it can be broken down into a few sub-problems.

  1. Interpreting the world. We need to know where we are, and what’s around us.
  2. Decision-making. What will we try to do next? We want to output commands as simple as “turn right” but also as subtle as “search for the buoy”.
  3. Act. Translate our commands into real actions.

It’s this pipeline of information from interpreting to acting in the real world that makes robots work. This is the goal of ARVP’s software system, and is the basis for its design. It is composed of several distinct modules:

  • Control System
  • Computer Vision
  • Mission Planning
  • Simulation

These components are all connected through the Robot Operating System (ROS), an open source communications library. ROS was chosen as a software framework because it supports a  highly distributed system, which lets Auri maximize the use of its two onboard computers. In addition, ROS nodes empower the software team to create modular code and consistent I/O endpoints, which have been invaluable to the development process. By leveraging each component separately, different techniques can be evaluated and iterated on quickly. For example, swapping computer vision algorithms at runtime to determine the best performing one given current conditions.

Control System

Auri’s control system was completely redesigned for RoboSub 2018. In previous years, the team had used a PID control system which presented numerous challenges. Most notably,

  • There was significant amount of time being dedicated to calibrating the controllers every time the hull of the robot was modified; and
  • The control system could only effectively control one axis of movement at a time.

Upon researching what types of control systems had historically performed wellat RoboSub, ARVP decided to develop a Linear Quadratic Regulator (LQR) control system. The main focus of an LQR control system is to achieve certain criteria for a given system as efficiently as possible using an optimal control law. The optimal control law is a set of differential equations that minimizes a cost function which typically depends on the robot state and control variables.

Computer Vision

Auri’s vision algorithms are designed with color invariance in mind. This is because underwater image processing is affected by light attenuation and scattering, which results in poor contrast and non-uniform colors. Instead, Auri’s new vision algorithms use the shapes of the competition objects (eg, Buoy, path, gate), which are more reliable indicators. Auri relies on two techniques to isolate objects without explicitly declaring tight color ranges:

  • A 2D histogram to isolate colors with high contrast to an overall image, and
  • Image segmentation using superpixels.

These techniques are used to extract contours from images, which are then used for object identification through a shape matching process.

2D Histogram Technique

To isolate contours of interest in an image, we first perform background subtraction on our images using a 2D hue and value histogram. From this histogram, we extract a list of disconnected clusters, representing the different color regions in the image. By removing the largest clusters, we can create a binary mask on pixels in the image that most stand out. Contours are then from the binary mask using OpenCV.

This technique works under the assumption that the received image’s background will be roughly one color, and that the foreground will have some minimum amount of contrast. It’s primary advantage is its simplicity and speed.

Image Segmentation with Superpixels

Whereas the histogram technique looks at an image as a whole, image segmentation was used to account for color locality. The basic idea of this technique is to divide an into a grid of roughly equal sized chunks called “superpixels” which each consist of a single average color. This is accomplished using a third party library called gSLICr. Once an image has been segmented, good contours can be obtained by thresholding.

Shape Matching

Shape matching is the concept of classifying contours by matching them to pre-generated contours of a particular object. This technique is generic, and allows new detection models to be trained efficiently. For each target object, we render its 3D model at incremental orientations using OpenSceneGraph. Using our image segmentation strategy, we then extract the contours and store their translation and scale invariant format in a database. The process is left rotation variant in order to reduce match collisions and allow for 3D pose estimation. For speed purposes, CUDA is used to GPU accelerate comparisons between perceived contours.

Mission Planning

High-level control of robot operations is handled by a single hierarchical state-machine. The idea of it came at the beginning of preparation when the software team decided to aim for more tasks this year. To ensure an extensible structure and robust error handling, SMACH a open source Python library is used. The top-level plan is first conceived and drawn out as a flow chart including the flow of the main process, data keys, as well as concurrent side processes. Based on this plan, every state is coded as an individual python class, each with a function to run on activation as well as a list of exit paths and the in/out flow of data keys. In addition to creating custom states, states for ROS action and service clients are created directly to more easily interface with other ROS nodes. When this cannot be done, custom interfaces are made to manage the sending and receiving of messages on ROS topics, allowing the Mission Planner to control other nodes in the system. With all the interfaces and states coded, a complicated web of transitions between states is defined, as well as the flow of data between states. In our case, a separate state machine was built for every task to be achieved, such as the buoy task where the robot has to touch three different buoys in a certain order. This state machine contains several states such as detect, track, and repositioning, and the transitions between them are based on the success and failure of each state. For instance, when the tracker loses the buoy it makes the appropriate transition to re-detect it. Once a state machine for a certain task is ready, it is added itself as a state to the top-level state machine. It is this hierarchical capability of SMACH that allows handling both the completion of certain tasks, as well as the flow of all tasks in the competition. Overall, the goal of the ARVP Mission Planner is a combination of properly interfacing with all other components, and applying a plan to make every component work together seamlessly.


Developed late last year, ARVP’s simulator continues to play a critical role in testing the software system end-to-end. Built off the UWSim project for marine research, testing in the simulator significantly sped up the development process for many projects, including the control system, various detection algorithms and the mission planning stack.

This year, the simulator dynamics were significantly improved in parallel to the development of the LQR dynamics model. With the addition of realistic drag and thrust coefficients, the robot’s behaviour is much closer to reality than in previous versions.


Three hydrophones (a microphone which detects sound waves under water) will be used to capture the signal. The hydrophones will be arranged in a L configuration, with the middle hydrophone acting as a reference for the other two. This signal will be amplified and DC-biased using a simple op-amp circuit. A dual channel ADC will be used to sample one pair of hydrophone data (reference + one other hydrophone). A software defined radio approach is used for processing. The signal will be filtered, normalized, and then the phase shift between the two signals will be used to determine the angle to the pinger in one axis. The other pair will then be sampled, and used to localize the pinger in the other axis. Combining this information will allow us to get a heading to the pinger.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram