Skip to content

Latest commit

 

History

History
146 lines (98 loc) · 7.46 KB

File metadata and controls

146 lines (98 loc) · 7.46 KB

CCR ROV Survey Methods

🌊 Overview

This repository provides an overview of the Seattle Aquarium’s Coastal Climate Resilience (CCR) team’s remotely operated vehicle (ROV) survey workflow — spanning hardware configuration, field operations, telemetry data extraction, and visualization. It especially focuses on code and documentation for processing and organizing ROV telemetry data collected during benthic habitat surveys.

Our methods are designed for subtidal monitoring of nearshore habitats in the temperate waters of Puget Sound, where visibility and environmental conditions can be highly variable. Surveys are optimized to collect high-resolution, georeferenced imagery to support analyses of seafloor composition, kelp and algal cover, and associated benthic communities.

Our goal is to create an open-source reference that allows other research groups to understand, replicate, and adapt our methods for their own underwater survey applications.


⚙️ Hardware

🤖 ROV Platform

  • BlueROV2 (Blue Robotics) — Heavy Configuration with 150 m tether
  • Navigator Flight Controller (with Raspberry Pi 4, 8 GB Model B)
  • Modifications: Custom “kelp guards” fabricated from HDPE plastic to minimize entanglement with kelp stipes during surveys

⚡ Power and Tether Management

💡 Lighting

📡 Additional Sensors

  • Water Linked DVL A50 — Doppler Velocity Log for local positioning
    • Firmware: v1.0.8 (updated 2025-07-24)

🎥 Cameras

Camera configuration (for downward-facing imagery):

Setting Value
Mode Photo
Interval 3s
Lens Wide
Output RAW (.GPR)
EV Comp 0
White Balance Native
ISO Min–Max 100–200
Sharpness Low
Color Flat
Shutter Speed 1/300 s (!MEXPX=300 via GoPro Labs)

Time synchronization: GoPro Precision Time


🗺️ Positioning and Navigation


💻 Command Console

  • Custom Pelican case housing the surface control system
  • Ruggedized laptop for mission control (Cockpit / BlueOS)
  • 19-inch sunlight-readable monitor (MS190W1610NT)
  • Ethernet switch for network connectivity between ROV, GPS, DVL, and camera control systems


🧠 Firmware and Software

BlueOS Configuration


🧮 Telemetry Processing

Code

  • tlog_to_csv.py: This script processes .tlog files when GPS and DVL data are fused via an Extended Kalman Filter (EKF), producing more accurate tracks than using GPS or DVL alone. Instead of calculating DVLlat/DVLlon, this script incorporates the fused position data (GLOBAL_POSITION_INT) for improved accuracy.

  • transect_map.py: This script generates a Leaflet map displaying the ROV tracks as measured by different navigation sources: GPS (black), DVL (blue), and EKF (red).


General information; workflows ready to implement

The following repos contain general information about our work, and specialized repos for ROV telemetry analyses, processing and analyses of ROV-derived benthic abundance and distribution data.

graph TD

A["<a href='https://github.com/Seattle-Aquarium/Coastal_Climate_Resilience' target='_blank' style='font-size: 16px; font-weight: bold;'>Coastal_Climate_Resilience</a><br><font color='darkgray'>the main landing pad for the CCR research program</font>"]

A --> E["<a href='https://github.com/Seattle-Aquarium/CCR_analytical_resources' target='_blank' style='font-size: 16px; font-weight: bold;'>CCR_ROV_telemetry_processing</a><br><font color='darkgray'>analytical tools for working with ROV telemetry data</font>"]

A --> F["<a href='https://github.com/Seattle-Aquarium/CCR_benthic_analyses' target='_blank' style='font-size: 16px; font-weight: bold;'>CCR_benthic_analyses</a><br><font color='darkgray'>code to work with ROV-derived benthic community data</font>"]


Loading

Help wanted!

The following repos involve active areas of open-source software development, AI/ML implementation, and computer vision challenges; areas where we could use assistance are 🔶 highlighted in orange 🔶

graph TD

B["<a href='https://github.com/Seattle-Aquarium/CCR_development' target='_blank' style='font-size: 16px; font-weight: bold;'>CCR_development</a><br><font color='darkgray'>main hub for organizing active Issues under development </font>"]

B --> C["<a href='https://github.com/Seattle-Aquarium/CCR_image_processing' target='_blank' style='font-size: 16px; font-weight: bold;'>CCR_image_processing</a><br><font color='darkgray'>help wanted to implement AI/ML solution to expendite image processing</font>"]

B --> D["<a href='https://github.com/Seattle-Aquarium/CCR_kelp_feature_detection' target='_blank' style='font-size: 16px; font-weight: bold;'>CCR_kelp_feature_detection</a><br><font color='darkgray'>active research re: photogrammetry in kelp forests</font>"]

style B stroke:#FF8600,stroke-width:4px
style C stroke:#FF8600,stroke-width:4px
Loading