top of page
Scuba Diver

GoPro ROUV

Overview

For my capstone project, I led the systems design and software development on a remote-controlled underwater drone. It uses an externally mounted GoPro to record high-quality underwater video at depths of up to 30ft (extended to 200ft with GoPro case). The system is driven by two Raspberry Pi 4B's. Data is sent using TCP/IP between the floating buoy and the drone through a shielded Ethernet cable. The system is operated using Linux/Python. 

Note: This page is focused more on the hardware aspects of the project. For a detailed look at the software (socket programming, Bluetooth controller setup, PWM signals, and safety features), please visit the GoPro ROUV GitHub Repository.

 
Role

Systems Design/ Software Lead

Team

5 Mechanical Engineers

Course

Capstone 1 & 2

Duration

Jan. - Apr. 2023

Problem

Commercially available underwater drones are purpose-built machines for a range of people from marine investigators to kids at a pool party. Currently, there is not a viable product which provides high quality underwater video while remaining accessible to amateur users. The GoPro Remotely-Operated Under Vehicle (ROUV) aims to address the varying needs of amateur videographers by focusing on accessibility, maneuverability, and delivering smooth underwater video.

There are several key considerations to building an underwater drone:

Keeping water out of the electronics enclosure

Seems obvious, but not to be underestimated.

Buoyancy

Calculating the immersed weight of the ROUV is crucial to maneuvering it underwater.

Signal Transmission

Wireless signals like Bluetooth and WiFi only go for centimeters underwater. Wired signals can suffer from signal deterioration.

Brainstorming

We only had enough time to build one prototype, so we spent much time brainstorming solutions that would provide stable footage. After initial research into various wireless underwater signal transmission methods, we decided to have a floating buoy that relayed data through a cable to the drone. 
iBubble.webp
Credits: iBubble
BlueROV2.jpeg
Credits: BlueRobotics

We took inspiration from commercially available underwater drones such as Chasing Dory, iBubble, Chasing M2, and BlueROV2 to create our own designs.

Chasing Dory.jpeg
IMG_0401.jpeg
Credits: Chasing

This triangle design's radial symmetry sought to increase the drone's maneuverability.

This vertical design sought to utilize the principle of self-righting moments to ensure stability of the drone.

Dubbed the "Inverted Landspeeder", this design focused on moving forward through the water.

Solution

Our final design consists of two acetal plates fastened together with stainless steel standoffs. It features a 5-thruster configuration. There are two offset thrusters mounted at 30 degrees to facilitate turns and rolls while providing lift.
An FPV camera provides live video feed for the pilot. The electronics are contained within an aluminum watertight enclosure. The thrusters are mounted to 3D-printed pieces which are fastened to the acetal plates.

We decided to mount the GoPro externally in order to make it easier to attach and remove. It is attached to a gimbal on the underside of the drone. 

Screen Shot 2023-12-11 at 3.21.01 PM.png
GoPro ROUV with electronics layout
GoPro ROUV Systems Diagram.png
Systems Diagram
Electronics Diagram
Thruster Configuration

The two offset thrusters serve to aid in rolls and turns while providing lift. The thrusters on the left side of the drone are fitted with CCW propellers to counteract torque and prevent the drone from rolling unintentionally.

Turns are performed by running one of the two thrusters in reverse. This cancels out the vertical components of the thrust while combining the horizontal components, resulting in a turn without adjusting the pitch or roll angle of the drone.

E28C3EC4-43E5-4301-A72B-90FEC0C45895_1_201_a.jpeg
Horizontal components of thrust add while the vertical components cancel out, resulting in a right turn.

Changes in depth are performed by running the rear vertical thruster and the two offset thrusters in unison. In order to maintain a 0 degree pitch angle, the equation for thrust needed is y=x/(2*sin(60)), where x is the thrust produced by the rear vertical thruster and y is the thrust required from each of the offset thrusters.

However, in attempting to reduce the number of thrusters needed to control the drone, we inadvertently coupled some of the axes of movement, which decreased maneuverability. A 6-thruster configuration as seen on the iBubble would have made the drone much more stable and easy to operate.

Thruster Mount FEA Analysis

We performed FEA analysis to ensure the 3D-printed thruster mounts (100% infill geometry) would not deform under the water pressure and load from the thrusters. The mounts are fixed where they would be mounted to the plates, and a force of 10lbf (thruster maximum output) distributed among the fastener connection points is applied normal to the connection points.

Screen Shot 2023-12-11 at 6.24.16 PM.png
Buoy Design

In order to prevent the controller and live video feed from disconnecting mid-session, the RPi and the VTX transmitter within the buoy needed to remain above water. The buoy also needed to be easily dragged along by the drone while maintaining all transmitters above water.

66FCF328-1A25-4B60-8542-B368B412C82D_1_201_a.jpeg
Proposed buoy electronics layout 
22D07D93-6FD6-468B-BB2E-2974602F09FE_1_201_a.jpeg
Hydrodynamics simulation: buoy being dragged as drone moves forward
C68AF011-E87B-454C-AC16-AFDDFF2819FE_1_201_a.jpeg
Weight distribution within buoy to achieve self-righting moment
MicrosoftTeams-image.png
Buoy design with ring to maintain stability
Velocity & Buoyancy Analysis

To get a conservative estimate for the forward velocity of the GoPro ROUV, we approximated the frontal geometry of the drone as a flat plate.

Screen Shot 2023-12-11 at 4.08.09 PM.png

Our buoyancy analysis showed that the drone had an immersed weight of 13.559N. The buoy had an immersed weight of -24.61N, meaning the buoy is able to support the weight of the drone in the event of the GoPro ROUV turning off unexpectedly. The drone can then be recovered from the surface.

Screen Shot 2023-12-11 at 4.23.28 PM.png
Screen Shot 2023-12-11 at 4.23.43 PM.png

Build Gallery

Testing

Waterproofing

Rather than attempting to create a large watertight container on our own under the tight time limitations, Prof. Whalen suggested that we get a professionally made waterproof container. The aluminum enclosure we got from McMaster-Carr featured a gasketed cover with a D-ring. It took much trial and error to develop a procedure to reliably ensure the enclosure was fully waterproof each time.

Screen Shot 2023-12-12 at 5.08.41 PM.png
3C0A857E-A8DB-447F-BFFA-5CAAC895407D.heic
Software Tests

The software was developed in stages, making sure each individual component worked before I integrated them together. 

Thruster Speed Control Test
Testing multiple thrusters/lights simulatenously
Systems Test
Strange error (aka rave mode)
Water Test

We took the GoPro ROUV to the Charles for a test drive. For safety purposes we only used the small battery, which altered the weight distribution of the drone and caused it to pitch upward.

Thermal Test

I ran a thermal test to better understand how the enclosure heats up throughout usage. Unfortunately, the test damaged some PWM pins on the RPi.

Screen Shot 2023-04-17 at 5.27.04 PM.png

FAQ

  • Is the GoPro ROUV saltwater-capable?
    While not intended for saltwater, the GoPro ROUV will operate normally in saltwater. Wiping off saltwater from the drone will go a long way in preventing corrosion. A sacrificial anode is also recommended. Attach a piece of zinc to the outside of the enclosure and go explore the high seas!
​​
  • What is the battery life of the GoPro ROUV?
The GoPro ROUV is driven by a 14.8V 22,000mAh, 4 cell LiPo battery. The power is distributed by a power distribution board (PDB), capable of 60A continuous per pad and 100A burst. Under regular usage, the estimated upper-limit current load is 27.3A. Thus, the battery should comfortably last at least 0.8h on a full charge.​
​
  • How deep can the GoPro ROUV go?
By using TCP/IP to transmit signals, the GoPro ROUV can be piloted at a depth of up to 328ft. However, the externally-mounted GoPro is only rated for 33ft without a case. Adding a case increases the GoPro ROUV's operational depth to 200ft.
​
  • What happens in the unlikely event of a _______?
-      Leak​
Leak sensors within the electronics enclosure trigger the LeakDetectedException. The Leak Indicator LED on the buoy lights up, and the drone moves upwards at full speed for 10 seconds to decrease the external pressure. Power to the thrusters is then cut and the GoPro ROUV can be retrieved.
-     Overheat​
The onboard RPi throttles at 80 deg C. If the RPi detects a CPU temperature of 75 degrees or greater, it triggers the OverheatException. The Overheat Indicator LED on the buoy lights up and the RPi cuts power to the thrusters.
-      Other
If the pilot notices something is wrong with the drone, the Emergency Shutdown button on the controller enables safe retrieval of the GoPro ROUV for repair.​​​

What I Learned

Software
Hardware
Other
  • Socket programming

  • PWM Control

  • Systemd

  • Python data types

  • Parsing & encoding data

  • Quaternions & Euler angles

  • Materials selection​

  • Component selection

  • Buoyancy principles

  • Power distribution

  • Waterproofing methods​


 

  • Project management

  • Experimental design


 

bottom of page