2024 Senior Capstone Project
Objective
• Make a low-cost, unobtrusive sensor to measure water flow around a submersible.
Outcomes and Contributions
• Tested and discounted IR Interferometry for turbidity sensing
• Developed a working PIV prototype with mostly off-the-shelf parts with $800 budget
For my senior year Capstone project at UCSB, I worked with COAST lab to design a sensor for their autonomous submersible. Our objective was to make a low-cost, low-profile, non-intrusive sensor that could measure the fluid flow around the sub.
Even clear-looking water has some turbidity, meaning it is full of suspended particles, and the initial approach proposed by our PI was to adapt a computer mouse to measure their velocity. This was going off a paper he found which successfully used a high end gaming mouse’s laser-Doppler sensor to measure the tiny currents inside a soap film. So the thinking was, if the particles in the water scattered back enough light to the sensor, we could theoretically measure the water’s velocity the same way.
To test the concept, I designed and fabricated a test rig. I went through two iterations, V1 and V2.
The setup was:
• An SLA-printed enclosure
• A Laser-cut acrylic optical window with a stick-on sapphire phone camera protector
• Some rubber gaskets, cut on a Cricut Maker
• The PLN2020 Twin Eye Sensor from a "Mad Catz R.A.T.5 Gaming Mouse"
• Blue robotics shielded cable and a waterproof grommet for the USB connection
• The python script from the paper for USB data processing
Bottom side of V1 showing PLN2020*
V1 Render
V1 IRL*
V2 Render
V2 IRL (note: missing fully assembled picture at the moment)
*Background removed using AI
Testing showed that the sensor could track the movement of wet sand on the ocean floor, but couldn’t measure the flow of turbid water all. After contacting the author of the doppler velocimetry paper, we determined it was a non-starter for our application. The likely failure modes we discussed were:
• The IR signal path was too lossy due to absorption by the water
• Any actual measurements were too unstable or intermittent for the Logitech IC to parse
Not only was it a shame that such a cheap, compact, easily implementable, off-the-shelf sensor as the PLN2020 wasn't up for the task... its failure made moot a really killer design concept:
Unfortunately the LaserFin™ concept will not be plumbing the ocean depths profiling fluid flow...
So with the laser-doppler sensor off the table, our team decided to split up—each of us researching and trying out a method.
I began my approach thinking about those two failure modes. First, since the particles are sparse in the water and all moving around a little randomly, any single-point measurement in space would always be too jumpy to get a good reading. So it’s necessary to collect many data points at once then average them to get something representative of the surrounding water. Second, whatever signal carrier used (light, sound, etc) has to be able to make its way through water unharmed--not get absorbed like the doppler's IR beam.
I did a fun exercise asking, “How can you measure a bunch of particles at a time very cheaply?” which mapped cleanly to “What is the sensor with the highest information density to cost ratio?” After listing out a variety of flow sensors, it was obvious CMOS image sensors won out by a large margin (like 10^5). Because each pixel on a CMOS is it's own independent sensor, it's a really good bang for your buck! The choice of a camera facilitates a large degree of parallel measurement needed. Just as importantly, it uses visible light which has no problem passing through water.
From the literature I landed on an image-based method called particle image velocimetry (PIV). The measurement setup is simple, all that’s needed are a light source to illuminate the particles and a camera to take their picture. An algorithm called cross-correlation breaks up frames into segments and infers motion from the change in the number of particles per segment from frame to frame. Ultimately you get a vector field representing fluid flow. A single net velocity is just the average of all the vectors, and it's representative of the global flow because the measurement window can be sized to cancel out any small perturbations around the sub.
I decided the Capstone project to finish out the year would be building a test rig to demonstrate PIV with ocean water. It would contain a fish tank, pump, laser, power electronics, simple optics, cameras, and a linux computer to do OpenCV. No tracer particles would be added, so I could test the hypothesis that regular ocean turbidity could work with a low-cost setup.
One thing required some consideration was the light source. The most common choice in the literature were 4-5W pulsed He-Ne lasers. However, those are large, hot, power hungry and, most importantly, expensive. Since most of the papers I referred were over a decade old, they really came before before the advent of cheap laser diodes. I wanted to see if a $100 5W CW laser cutting diode off Amazon.com would work. Helpfully, the limited scope of the project (1-dimensional measurement, low particle velocity, completely dark box) meant that a low peak-power diode had a real chance of working.
To steer the reflected beam by the cameras I resin-printed a tiltable mirror mount with adjustment screws on the face of the control panel:
Instead of expensive high-speed cameras, I opted for more recently-developed, cheaper global shutter “Arducam” camera modules. To do the real-time image processing, I chose to use an NVIDIA Jetson which supports Arducam’s cameras to run OpenCV. The hope is that with recent advancements in technology, it might be possible to replace all of the expensive components of Steinbuck et al.’s approach to make a truly compact and cheap flow-profiler.
In accordance with UCSB laser safety guidelines, I was required to to build in the proper safety features such as a key, emergency stop, and light seals. I also had to get the apparatus inspected by the safety officer. The enclosure would also have the benefit of making the experiment more robust and portable, and be a good frame for mounting electronics such as the cameras and computer.
Execution
Dry Ice Sanity Check
Results
Raw Stereo Output
Experimenting with Velocity Color Maps in OpenCV
Frame-Averaged Streak Velocimetry
Adding Sediment
<This page is in progress>