This codebase contains the control code for a homemade remotely controlled submarine and the Unity app for an android device that can be used to record video and drive the sub.
It uses a Raspberry Pi 2 as its central control unit, a Pi Camera V2 (later with D160 sensor) for custom video recording, sensors and drivers as described in the schematic below:
The repository is divided into three parts:
-
/Submarine which contains a NodeJS implementation of the submarine control software, along with video streaming and sensor AHRS, interfacting with the app using Socket.io
-
/ROVCommander which is a Unity mobile app that allows for ease of control from a beach or boat
-
/ROViz that contains the telemetry visualization application written in Godot (project source + exported Win64 binary)
See the subfolder README files for more information on each.
A test vehicle was constructed out of PVC-U sewer pipe with custom 3D printed PLA parts and an acrylic dome, all sealed together using epoxy glue.
The following video contains a short summary of construction and testing.
All recorded uncompressed video during testing will be available for download if I ever find a place to host 50GB for free.