Kiwirov's ROV Build

What are you working on .... Show off your Rov's Projects here.
Post Reply
kiwirov
Posts: 1
Joined: Apr 30th, 2016, 2:43 am

Kiwirov's ROV Build

Post by kiwirov »

Hey everyone,

Bit of background first, I'm an engineering student and thought this ROV would be a good test of my skillset. This actually isn't my first ROV however. My first ROV was over 6 years ago, and it was this website and and Steve's tutorials that inspired me to go through and actually build it. That design used bilge pump motors and relays, with an analogue camera feed and simple joystick to control. Pretty much the design of the seafox, but with a completely different frame. She worked ok, but was clumsy, unbalanced and completely unmodular. Being 15, I didn't have the money or the motivation to fix it at the time, and she got put away after only a few test dives. Over the years since, i've played around with ideas in my head for a new and improved design. Last year, the ideas in my head were finally starting to match up with the affordable technology available, and I decided to take another crack at it.

Here's my old one:
Image

The two big things I'd been waiting for were affordable LiPo batteries (to have the batteries onboard and more portable), and HD, low latency, digital video. Seeing the Raspberry Pi 2 come out, with much improved specs on the first, is what triggered me to start this project. I believed that once paired with the Picam, it'd be the exact solution I was looking for.

So, I ordered the Picam and RPi2, and played around with them for several weeks, looking for the best streaming solution. I wanted to use a windows laptop for control, and have the video embedded in a webpage, which eliminated a few good options. Eventually I settled on UV4L drivers, using the MJPEG stream url. WebRTC technology for the camera also comes with the drivers, with much improved bandwidth usage, but with higher latency and difficulty in incorporating it with the webpage. As it is, MJPEG streaming is hugely bandwidth intensive, eating up the entirety of the RPi's 100Mbit/s port. This has caused some issues with quick camera motion saturating the connection and freezing the feed, requiring a refresh. Hoping for a better solution for this, or I may just have to lower the resolution further. Currently it's streaming 1200x896 at 24fps. Latency is probably around 500ms, I measured it at one point but I've forgotten. Definitely usable.

The control and interface was all written from scratch in HTML, CSS and Javascript, using the socket.io library. I'd never done any web development before this project (Mechatronics major, I normally stick to microcontrollers), so I had to learn all three languages. I did know other programming languages like C++ though, which made them fairly easy to pick up. I also had little experience with linux, which certainly lead to some frustrating problems. I soldiered on though, and the control interface is nearing feature completion. A controller from my xbox original, modified to use USB, is used for control. Socket.io is used to send telemetry and controller commands back and forth down the line. Using socket.io was the result of a fair amount of research, and I later noted one of the users on here seems to have come to a similar conclusion. It does still has a fair few bugs I've yet to nail down, no doubt to do with the intricacies of websockets that I don't yet understand. But it works, for the most part. I'm especially proud of the compass wheel, which was animated using a canvas element in HTML.

The current panel (it's missing a few elements because the controller isn't plugged in, and also bugs):
Image

The connection to the ROV is just 2-wire speaker cable, 100m long. This is enabled by the use of gutted Tenda Homeplugs, as used by the folks over at openROV. Those things are amazing for the price. The bandwidth you get for the reduction in tether size is something to behold. This is all mounted on a scratch built reel, using 2 sliprings with contacts salvaged from an old relay. Connection seems to hold up fairly well even while turning the reel, so i'm pleased with that.

The ROV design itself was actually one of the first things I did, sketched out on CAD software. I wanted it to be sleek and streamlined, sexy even. Which seemed fair given the effort I was putting into other parts of the design. The real design I think looks even better that what I drew, and when she's finished in paint I think she'll look better again. Lateral and depth thrusters were embedded inside the main hull, for maximum streamlining. About half way through building her it occurred to me that the water trapped in them would effectively increase her inertia for some movement directions, but oh well. It still looks cool. Thruster placement was a tradeoff between estimated centre of pressure and mass calculations, and being able to fit all the electronics inside. This lesson came from the inbalanced thruster placement on my first ROV. The benefit of an all digital design is that it will be trivial to implement a control system that throttles different motors to make sure she stays in the correct orientation for different movements.

Belly shot and face shot:
ImageImage

Thrusters themselves are just brushless motors running in open water. I noticed the great results one of the users here got on 3D printed thruster blades, and designed my thrusters around the idea of using a similarly sized one. I've yet to get these printed yet however, not owning my own printer. Wire entrances, as well as LED lighting, are potted in epoxy resin. All wires are stripped to the core inside any of the pottings, or have solder connections open to the resin. Batteries are 4x 3S1P 2150mah batteries, all wired in parallel. Two are in each battery bay on either side of the main housing. Inside the main housing are all the electronics. In the back are the wire entrances, a shunt resistor and 5 speed controllers. Wires from here snake forward to the main electronics bay in the front. Here resides a 10DOF IMU (of which i'm using the magnetometer+gyro for direction, barometer and temperature), a 4 channel ADC, a 16 channel PWM module, 5 and 3.3V power supplies, 2 PWM LED drivers (which let me control brightness), Tenda Homeplug board, Picam and of course the Pi. The picam is mounted on a little servo controlled pan/tilt mount I made for it, using 2 servos, and mounted inside an acrylic security cam dome I modified on the front.

Lights and skids on (though skids aren't attached yet):
Image

Overall, I think she's coming along quite well. Most of this was completed in about 3 months around the new year (my holiday). I ran out of motivation for a little while, due to uni and having to redo the flanges on everything thanks to a poor design decision, but i'm making progress again. Next up, i'm gonna be looking at mounting the skids and ballast, and then pressure testing her by attaching a bit more weight and letting her sink down with nothing inside to 15 or 20m. There's a few things beyond that that still need to be done or redone, but I can almost see the light at the end of the tunnel. I'm convinced she'll look super slick once I've tidied her up and given her some paint and decals at the end.

Bit of a blog post, but thanks for reading! Also, thanks to Steve for the inspiration all those years ago, and keeping this website up and running the whole time.

Happy to answer any questions if there are any. I'll likely keep this thread updated with any progress I make.

Current progress: Bath (leak) testing
Image
rossrov
Posts: 383
Joined: Feb 28th, 2013, 5:01 pm
Location: Australia

Re: Kiwirov's ROV Build

Post by rossrov »

Very impressive bit of work, Kiwirov. Yes, Canvas is a fantastic thing for GUIs. You make a good point re the inertia/constrained water, but depending on what the ROV usage is may not be a problem. Personally I have yet to find this out for myself, my "latest" ROV, (on the shelf now for over 18 months :? ) has the entire hull envelope flooded, bar the space taken up by the electronics housings. Also using through-hull thrusters. Looking forward to your further postings.
Post Reply