This is my first post here, but I think I came to the right place. Two years ago, I watched Blue Planet II. After that, I wanted to make it impossible for people to ignore what was happening beneath the ocean. I’ve been working hard to design this DIY ROV kit in my dorm room ever since. (It’s taken a while because I was finishing a double major at Berkeley until this March). Now, my goal for this project is to continue open sourcing the ocean, and hopefully build a company along the way. Here’s my Raspberry Pi - based ROV, the Model C:
Success! A finished Model C - not bad for being 3D printed in my closet!! (Photo taken on my desktop photography studio XD)
To aim for my goal of open-sourcing the ocean, I designed this ROV to work with all off-the-shelf electronics. The motors are controlled with a Raspberry Pi. The FPV feed is captured by a standard 5 Megapixel Raspberry Pi Camera.
The proprietary ROV parts (propellers, side rails, main deck, internal chassis, etc) were designed and 3D printed 100% by me. A major learning curve for an Astrophysics+Marine Science major - I wouldn’t say the design is perfect, but I truly think it’s something special AND useful. Needless to say, this ROV has taught me a lot about engineering
Control signals are received by a topside WiFi module, and sent to the sub over a cat 5 ethernet tether.
To control the ROV, I wrote an android app (now available on Google Play)! This part was a MAJOR hurdle for me to overcome, because, when I started this project, I had virtually no coding experience. Luckily, about a year into my ROV odyssey, I started work at NASA’s Space Sciences Laboratory, where I learned enough Matlab to slowly start experimenting with Python and Java.
Using the app is straightforward. There are two trackpads: one vertical scale on the bottom left of the screen, and a square on the bottom right. To control horizontal maneuvers, track your thumb along the square pad in the direction you’d like to travel or turn. To move up or down, track your left thumb up or down along the left trackpad. And to control the FPV camera’s tilt angle, press the “unlock camera” button, and tilt your android device in the direction you’d like to look! The app sends throttle and camera tilt values as UTF-8 coded characters to the sub’s onboard Paspberry Pi.
I’ve seen many low-level, complex, and thorough examples of open sourced ROV software. However, I know that most people (especially my fellow marine scientists) aren’t trained to work with low-level code. Because of that, I wanted the ROV’s software to be written in a language in which many people are literate. So I chose to write the “Archimedes” software package in Python. That way, as many people as possible will be able to contribute to the ROV’s software development.
And it turned out to be surprisingly straightforward, and only requires three scripts to carry out all the commands sent to the Model C from an android device.
The scripts (https://github.com/costassoler/Archimedes):
RPiCamServer.py - Controls the Raspberry Pi Cam’s live feed (Based closely on https://randomnerdtutorials.com/video-streaming-with-raspberry-pi-camera/)
Cytron27Aug2019.py - Controls motor drivers via gpio pins
ControlServer.py - Decodes and converts commands from the app and carries out ROV functions.
Thanks for reading! I really hope you like this invention of mine - I’ve poured my heart and soul into his thing. If you want to learn to build your own, you can look up my website and ask some questions in the forums!. I don’t want to include a link because I really don’t want this post to become an ad I just wanted to breath some new life into the open source ROV scene and see what everyone thought!
Since I’m still a new user, I’ll have to ad some extra images in the replies