Club · Purdue IEEE ROV
ROV
Purdue IEEE ROV's underwater robot. I'm Vice President and work on its vision stack: detection, stereo depth, photospheres and 3D scans you can measure.
- Year
- 2024 - Now
- Role
- Vice President + Software Engineer
- Stack
- Python, OpenCV, TensorFlow, Open3D, MiDaS, COLMAP, React Three Fiber
- Links
- Source ↗
The team
Purdue IEEE ROV builds an underwater robot for the MATE ROV competition. I'm the club's Vice President and a software engineer on the team, and I work on the vision stack for the robot.
The problem
At the MATE ROV competition, a lot of tasks come down to measuring things you can only see through a camera: underwater, through murky water and a fisheye lens. Eyeballing it from a video feed loses points.
Seeing underwater
The vision stack is a team effort. Our real-time underwater object detection pipeline, built on OpenCV and TensorFlow, reaches 92.6% accuracy, including a YOLO model that classifies three species of crab for a competition task.
On the depth side, I engineered a stereo vision approach that cut depth-estimation error by 18%, and built a 360° photosphere stitching method for immersive underwater views.
From photos to geometry
A pipeline that turns what the ROV sees into geometry. Photos go through photogrammetry (Reality Capture and COLMAP) to produce a textured mesh; single frames go through MiDaS monocular depth estimation and get back-projected into point clouds with Open3D.
The 3D viewer
I wrote the viewer above: a React Three Fiber app with scale calibration, a measure tool and clipping planes so the pilot can pull real-world dimensions straight off a scan. It opens on the scan of our PVC ROV frame and can switch to the Reality Capture scan of our PVC rig in a lecture hall, the model the viewer was first built around.



