RESEARCH
Subsea Odometry Package
We designed this system for a senior capstone project in partnership with the Seattle Aquarium. The goal was to develop a downward-looking visual odometry/SLAM system for the BlueROV.

As a low-cost, rapid prototype system, we started with a Jetson Nano development kit which just barely fits in a 4" BlueRobotics housing. The original plan was to use Raspberry Pi Global Shutter cameras based on the IMX296 sensor, as they are readily available and inexpensive.
After a bit of thrashing, we determined the kernel driver for the bare IMX296 sensor was not mature in the Nvidia kernel (Sony and Pi have introduced a driver to more modern kernels to support the camera for Pi distributions). As a plan B, we switched to IMX296 modules from Vision Components. VC modules are slightly more expensive than the Pi, but are readily available from Mouser.
VC integates a lightweight abstraction layer into their camera sensors which lets them use a single, fairly simple kernel driver for their full line of MIPI cameras, but the module can still uses the argus image signal processing (ISP) built into the Jetson.
Here is a block diagram showing integration with the BlueROV
and the standalone test configuration (as shown in the image above).
Switching between the two is relatively straightforward as both connections to the camera (power and ethernet) will fit through an M10 hole. However, it still requires swapping the Wetlink penetrator between the 2" test housing and the 4" housing on the ROV.
Further documentation is on Github:
Back to cameras
Software Links
- vc-jetson-driver-release is a light remix of VC’s Jetpack driver to simplify the out-of-tree builds needed for Jetpack 6. It is designed as a single-clone-to-build rather than requiring downloading tarballs, patching, etc.
- vc-stereo-ros2 is a ROS2 driver for two Argus cameras. It contains constants for our VC cameras but could be modified to any pair of cameras. It supports external triggering to synchronize the two VC cameras.