Sealbot 2.0 is a custom embedded platform for the BlueROV to support data collection as a part of the Hartmann Laboratory: Sensory and Neural Systems Engineering (SeNSE) Lab (SeNSE_Lab)
Sealbot 2.0 is designed to operate using ROS 2, utilizing Ubuntu and Docker to communicate across the station PC, BlueROV Raspberry Pi, and NVIDIA Jetson Orin Nano.
Prior work on this research topic for detecting flow patterns using artificial whiskers in water was performed by Sayantani Bhattacharya. My approach builds off this concept by creating a more uniform robotics platform for better data collection and future implementation. Sayantaniβs data collection methods can be found at (Sealbot_1.0)
Currently, Sealbot 2.0 is in a beginning stage for data collection. The goal is to have the station PC host manual control of the ROV during data collection, where the whisker array positions are detected onboard by the NVIDIA Jetson Orin Nano. This separation of detection handoff to the onboard computer allows us to save the data internally for missions and significantly reduces bandwidth across the tether, so that we do not need to send raw or compressed image data back to the station PC. I designed this process with the idea that future implementation may allow for real-time feedback control of motor commands given onboard flow pattern detections using an embedded ML framework.
Current work includes finalizing buoyancy testing and stabilization of the BlueROV to allow for fully submerged data collection, and integrating cross communication and time synchronization across PCs.
GitHub Link: https://github.com/ncknight-un/Ncknight_Sealbot_System_2026
Motivation & Background
- Why flow sensing? Seals detect hydrodynamic wakes with their whiskers, the lab theorizes that we can learn patterns in whisker oscillations to detect current flows and objects moving in front of the robot. This could allow for the potential of the robot to follow moving objects in the water by factoring out abnormalities in flow patterns. If successful, Sealbot 2.0 could be used as a bio-inspired alternative to vision/sonar in low-visibility water.
- Why the BlueROV platform? Repeatable, established platform for ROV use with existing ROS integration.
- What Sealbot 1.0 lacked: Poor data collection and consistancy, no onboard processing, limited repeatability, and poor ROV control.
Project Goals & Requirements
| Requirements | Target | Status |
|---|---|---|
| Modular, removable attachment | Minimal changes to existing ROV | Validated β |
| Waterproof Rating | ~3 meters | Validated β |
| Onboard Whisker Detection | 60 FPS | In-Progress π |
| Tether Bandwidth | No Raw/Compressed Images Sent to Station | In-Progress π |
| Time Sync Across PCs | ~5-10ms offset | In-Progress π |
System Architecture
Sealbot 2.0 system architecture consists of a station PC, the BlueROV Raspberry Pi, and an embedded Jetson Orin Nano. The Station PC utilizes Docker to run ROS2 Humble with CycloneDDS for data sharing with the onboard Jetson. The station PC is also responsible for running MAVROS to extract onboard information during data colection. The Jetson Orin Nano is running Ubuntu 22.04 with ROS2 Humble in order to operate the existing ROS2 VimbaX package for the Alvium ML camera used in tag detection. The PC will be responsible for operating the service client during testing for camera bringup, PWM light management, and ROS bag collection.
System Architecture Diagram
Data flow:
- Station PC β [Manual control commands / ROS2 Service Bringup]
- Raspberry Pi β [Motor commands / MAVLink / Telemetry]
- Jetson Orin Nano β [Whisker Detections, Camera Bringup/Light PWM Control, ROSbag]
Hardware Overview
| Component | Model | Purpose |
|---|---|---|
| ROV | BlueROV2 | Base Platform |
| Onboard Compute | NVIDIA Jetson Orin Nano | Onboard Detection, Data Logging |
| Camera | Alvium 1800 U-291m USB 3.0 2.9MP, Monochrome | Whisker Tag Tracking |
| Lens / Optics | 8MM MegaPixel Fixed Focal Length Lens | Working Distance Focus |
| Power | 4S 14.8V Lithium Ion Battery (2200 mAh) | Onboard Jetson/lights power source |
| Jetson/Camera Enclosure | Machined Aluminum + Optical Dome | Waterproofing + Light Control |
Sealbot 2.0 Physical Assembly
-
The Sealbot 2.0 embedded assembly is housed on a BlueROV Payload Skid. This attaches to the BlueROV main housing via 4 stainless steel bolts. The onboard Jetson and Camera attachment housing in the custom aluminum housing is connected via a single waterproof ethernet cable which plugs directly into ethernet switch housed in the BlueROV main housing cylandar.
-
The Embedded System in the custom housing contains a Lithium Ion Battery to power the Jetson, onboard lights, and Alvium camera. The chamber contains a 12V DC-DC converter to supply a steady voltage to the Jetson during operation and another 5V DC-DC converter for the onboard lights power supply.
ROV Assembly with Sealbot 2.0 Mod
Embedded Assembly
Software & Embedded Design
- The robot runs Ubuntu 22.04 LTS with ROS 2 Humble on a Jetson Orin Nano.
- Control logic is implemented using ROS 2 nodes that manage camera bringup, time synchronization, and whisker array detection.
- Station PC: [Ubuntu 24.04 LTS, ROS2 Humble, Docker]
- Jetson Orin Nano: [JetPack version, Ubuntu 22.04, ROS2 Humble]
- Networking: [DDS - Cyclone DDS, ROS_DOMAIN_ID - 16, static IPs - 192.168.2.0/24 (BlueROV)]
- Time synchronization: [ Plan to use chrony for Time Sync]
Key ROS 2 Nodes / Topics:
| Node | Runs On | Publishes | Subscribes |
|---|---|---|---|
| Camera Bringup | Jetson Orin Nano | Camera Info, Image Raw | None |
BlueROV Modification CAD Design
- Designed a modular attachment for the BlueROV for easy assembly and disassembly of the Sealbot 2.0 embedded apparatus.
- This was a project constraint due to shared resources of the BlueROV across laboratories at Northwestern University.
- Developed layout for embedded detection and camera optics optimization using an Alvium USB 3.0 camera and NVIDIA Jetson Orin Nano computer.
Simulated Array Optical View
Machined Components for Waterproof Seal & Water Testing
- Initial waterproof testing using 3D-printed parts proved to be insufficient. As a result, I machined my own waterproof components to correctly seal the whisker array and embedded system.
- Due to the complexity of the headpiece and its non-planar shape, I coated the part in resin epoxy to improve its water impermeability for layer line leaks.
- The system is also designed so that if the front mask fails and floods, the embedded computer and camera are completely enclosed by aluminum machined parts, with an optical dome separating them from the whisker array mask, so that the second inner chamber will not flood.
Machined Parts - Water Test
Machined Parts - Water Test
3D Parts - Water Test
3D Parts - Water Test
Initial Buoyancy Testing
- Initial tests have been performed for systemic buoyancy and locomotion with the embedded attachment.
- (#) Weights were added to the BlueROV Payload Skid, so that no changes are made to the existing ROV.
ROV Buoyancy Test - Faceview
ROV Buoyancy Test - Sideview
Next Steps / Roadmap
- Finish buoyancy testing and stabilization for full submersion
- Complete time synchronization across all three computers
- Onboard mission logging + offline analysis workflow
- Closed-loop feedback control from flow detections
- [Flow pattern classification / estimation]
Additional Media
Skills Improved
- CAD design for modular, waterproof underwater attachments
- Machining (mill/lathe) and 3D printing for sealed enclosures
- ROS 2 across multiple computers with Docker and Ubuntu
- Embedded computer vision on the Jetson Orin Nano
- Time synchronization and bandwidth-aware system design
Acknowledgments
- Hartmann Lab (SeNSE Lab), Northwestern University
- Sayantani Bhattacharya for Sealbot 1.0
- Mathew Elwin, Project Advisor