Remote Operated Vehicle for Underwater Surveillance

Remote Operated Vehicle for Underwater Surveillance

Category

May 15, 2024

Underwater Robot for Surveillance and Mapping

Underwater Robot for Surveillance and Mapping

Services

May 15, 2024

Underwater Surveillance and Mapping

Underwater Surveillance and Mapping

Client

May 15, 2024

Potential Robotics Pvt. Ltd.

Potential Robotics Pvt. Ltd.

Year

May 15, 2024

2024

2024

Abstract

This project focuses on the design and development of a next-generation Remotely Operated Vehicle (ROV) built from the ground up at Potential Engineering, blending mechanical design, electronics, and autonomy. From architecting a ROS based controller using PixHawk and MavROS to implementing multimodal sensor fusion for underwater localization, this was an end-to-end challenge in harsh aquatic environments. My work spanned hardware prototyping, custom ROS-based architectures, thruster testing, and a web-based digital twin UI all aimed at pushing underwater robotics closer to reliable real-world deployment.

Introduction

Underwater environments are hostile to everything robotics relies on: low visibility, no GPS, no wireless communications, high drag, and constant hardware stress. At Potential Engineering, I led the software development of a full-stack ROV platform designed and built entirely from scratch. One that could handle these challenges while providing accurate localization, reliable control, and intuitive operator interfaces.


Motivation

PotROV was built for customers who needed reliable underwater surveillance and mapping in environments where humans simply cannot operate. Deep water, murky visibility, dangerous or inaccessible areas where sending a diver is either impossible or not worth the risk. The demand for this kind of capability is real across industries like infrastructure inspection, search and rescue, marine research, and defense. The challenge was building a platform robust enough to actually deliver on that promise in real field conditions, not just in a controlled pool.

System Overview

ROV Control

The control system was built around a PixHawk PX4 running MavROS, bridged into a custom ROS architecture that tied together every subsystem on the vehicle. CAN J1939 protocol was added for power monitoring and cross-system communications.

Key integrations:

  • DVL, SideScan Sonar, Ping360, and Bar30 depth sensor

  • VESC ESCs and thruster control

  • Power supply monitoring and management

Localization & State Estimation

Localization started with DVL-based dead reckoning and quickly ran into its limits in real water. Accumulated integration error over time, heading bias from the IMU, and DVL bottom lock loss in turbid conditions all compound into position drift with no absolute reference to correct against. The solution was expanding to full multimodal EKF sensor fusion, bringing localization error down from 3 meters to 1 meter, validated against ArUco marker ground truth in pool testing.

Sensors fused:

  • Doppler Velocity Log (DVL)

  • Onboard IMU

  • Bar30 Pressure Sensor

On top of state estimation, a PID-based stabilization system used real-time roll, pitch, and yaw data for closed-loop control. This actively counteracted external disturbances and thruster noise across three axes, meaningfully improving hover stability and station-keeping performance in turbulent water.

Software Architecture

The ROS control stack was the backbone of everything running on PotROV. I designed and implemented the full communication architecture handling:

  • Sensor integration across all onboard systems

  • Thruster feedback loops via VESC

  • Power pack monitoring (J1979 CAN Protocol)

  • Control systems and exception handling

The Control module supported four modes of operation:

  • Manual mode with joystick control

  • Stabilized mode with IMU-based disturbance rejection

  • Position Hold and Depth Hold via PID control

  • Waypoint Navigation leveraging DVL dead reckoning

Before any behavior went into the water it was validated in OpenROV, a custom underwater simulation environment built in ROS using UUV Simulator. This let us catch navigation and search behavior failures in simulation before committing to hardware testing.

The operator-facing side of the stack was PotOS (Currently Not included in Production), a fully custom ground control station built using Flask, Python, React, and ThreeJS. It consolidated every subsystem into a single interface:

  • Live camera feeds with real-time telemetry overlay

  • 3D digital twin synced to real vehicle orientation

  • Per-thruster VESC telemetry

  • Dual power monitoring across 1000 meters of tether

  • Real-time Ping360 and Cerulean SideScan Sonar visualization

  • Real-time fault detection and operator alerts

  • Built-in terminal for on-the-fly debugging

Buoyancy Testing:

Electronics Stack

Sensing
  • Water Linked DVL A50 for velocity based positioning

  • Ping360 sonar for 360 degree acoustic scanning

  • Cerulean OmniScan for side scan acoustic imaging

  • ZED 2i Stereo Camera for depth perception

  • 1080p Camera for live video feed

Compute
  • Jetson Nano for high level compute and ROS

  • Pixhawk PX4 for low level thruster and sensor control

  • VESC (Vedder ESC) for per-thruster motor control

  • Arduino UNO for auxiliary I/O

Thrusters
  • Flipsky Brushless DC Motors

Power Management

The power system was built around a high voltage DC supply stepping down from 800V at 5A to 22V at 150A through a 4000W SMPS switching power supply, controlled over J1939 CAN protocol. This architecture allowed stable high power delivery across 1000 meters of tether while maintaining the ability to monitor and adjust power remotely from the ground station. Buck converters handled final voltage regulation to individual subsystems. We also had a switchable bottom container containing a custom battery pack for backup power.

Pipeline Diagram

  • Pixhawk PX4 + MavROS → Thruster control and low level sensor feedback

  • Sensor Suite (Water Linked DVL A50, Ping360, Cerulean OmniScan 450ss, ZED 2i, Bar30)

  • ROS Communication Layer → Synchronizes data across all subsystems on the Jetson Nano

  • Digital Twin UI (React + Flask + ThreeJS) → Operator visualization and monitoring via PotOS

  • ROV Hardware → Real-time actuation and closed loop feedback

Thruster Test Bench

One of the key pieces of hardware I developed was a thruster benchmarking test bench. I designed and built a modular but low cost rig to mount and test different thruster models instrumented with sensors to measure thrust, torque, and power draw. The bench was used to compare commercial thrusters against in-house 3D printed designs developed by the team, evaluating Thrust and Power Draw. The data from these tests directly informed the final thruster selection on PotROV, eliminating guesswork and reducing wasted cost on underperforming units.

Results

  • Reduced localization error from 3 meters to 1 meter through EKF-based fusion of DVL, IMU, ZED 2i, and Bar30 sensor data

  • Built and validated a thruster test bench comparing commercial and in-house 3D printed thruster designs

  • Deployed PotOS as a fully functional ground control station with live digital twin, sonar visualization, and real-time telemetry

  • Successfully integrated a multi-sensor ROS architecture including J1939 CAN-based power monitoring across 1000 meters of tether

  • Underwater mapping was scoped and the sonar integration was completed but full mapping capability was not achieved within the project timeline

PotOS

PotOS is the nerve center of the PotROV platform. It is a fully custom-built ground control station engineered to give operators complete situational awareness across every subsystem of the vehicle. Designed for real operational conditions, it consolidates live sensor feeds, power telemetry, acoustic sonar, autonomous navigation, and vehicle state into a single unified interface. Whether running a manual dive or executing a fully autonomous waypoint mission, operators have everything they need to stay in control through 1000 meters of tether.

PotOS was built entirely from scratch using Flask, Python, React, and ThreeJS.

One thing worth noting: the UI screenshots shown here are running on mock data. Full hardware integration was validated during pool and lake testing.

Features

  • Live camera feed with real-time telemetry overlay

  • Dual power monitoring tracking supply from the ground station and power delivered to the ROV through 1000 meters of tether

  • Per-thruster thrust readout via VESC motor controllers

  • Speed, depth, and DVL-based velocity displays

  • Compass for continuous heading reference

  • Ping360 sonar feed for 360 degree acoustic scanning

  • Cerulean SideScan Sonar feed for lateral seabed imaging

  • Waypoint navigation using DVL dead reckoning for autonomous mission planning and execution in GPS-denied environments

  • 3D digital twin rendering live ROV orientation in the browser

  • Exception handling with real-time fault detection and operator alerts

  • Built-in terminal for direct system access and on-the-fly debugging


Conclusion

Building PotROV from the ground up taught me that real systems fail at the boundaries between subsystems, not inside them. The ROS node works in isolation. The sensor works on the bench. The thruster calibration is perfect on dry land. It is only when everything runs together underwater, through 1000 meters of tether, with no GPS and no wireless fallback, that you find out what the engineering is actually worth. Every problem we solved on PotROV made me a better systems engineer, and that is something no simulation can replicate.


Create a free website with Framer, the website builder loved by startups, designers and agencies.