long story short... I have a ROV I built a few years ago. Its controlled by a cat5 tether and a simple system of relays for forward - off - reverse of each axis of movement. A camera sends video over a pair of wires in the cat5 cable via video baluns. A compass sits in the field of view of the camera for simple heading information.
I want to upgrade my entire setup. im going to switch to 3 brushless thrusters with motor controllers that can be controlled via PWM. I also want to add a magnetic compass sensor and depth sensor.
My problem comes to HOW to control all of this. Im not a programmer but seen many projects using the arduino platform that use motor controllers, servos, compasss ect, and have seen sample codes.
So my question, is how would i control this from the surface?
I assume i need to have an ardunio on board to collect data from sensors, move the servos for the pan/tilt on the camera, and control the motors. What would be the best way to control this at the surface and output the data?
i would only need to see heading and depth on one of those small 24 character LCDs.
Take a look at this site - for one, it has a great solution for the "tether problem":
I would go for an on-board power source augmented by surface power; you may choose batteries on-board for the control electronics and/or servos, and surface power for the thrusters, or a combination of the two.
As far as communication, in theory you could use ethernet for everything (audio, video, data and control). You could also keep things as-is for the video, and perhaps use "proper" RS-232 (at +/- 12V levels) or RS-485 for telemetry and control.
It sounds like an ambitious project, and something I have often thought about trying (got so far as starting to build a thruster; right now I have a few Harbor Freight bilge pumps waiting for a day when I do get roundtoit).
You should be able to do every thing over the existing cat5 wire, even possibly using four of the wires for 10base-t communication, and the other four for power backup/battery charging. If the communication is ethernet based, you could use a web page for the the user GUI, and even have the possibility of operating the unit from starbucks while having a cup of coffee. Lot of possibilities.
Something I want to point out is that the author of the website (at the link I posted previously) has done quite a lot of the "heavy lifting" in the homebrew ROV arena, and he has developed some nice (and generally easy to implement) solutions to common problems that homebrew ROV builders have faced.
His tether management system is one such development; he has other ideas for all sorts of implements and devices as well - for instance, an interesting method of sealing the tether electrical connections to keep them as watertight as possible, even in the event of the tether's shroud (the outer sheath of the CAT5) rupturing. He has been gracious enough to share this information with the wider homebrew ROV community, which I think is a great service.
Arguably, his ROV designs are among the most advanced in the homebrew arena I have seen that can still be built on a modest budget. In fact, his latest design (though there haven't been updates to the site about it in a while) seems to incorporate much of what is being discussed here. I am not advocating for the copying of his work, but you would be remiss in your efforts to not study his work as you design your own system (its the same reason why we use libraries on the Arduino instead of reinventing the wheel each time).
One thing I would suggest for the operational (as opposed to testing) tether, though, if you can find it and afford it:
Use CAT5/6 with stranded conductors and silicone insulation and outer sheathing. It isn't easy to find, and it isn't cheap, but it should have better flexibility and be more resistant to conductor breakage over time (though nothing will last forever).
8+ inchs and the magnetic compass works just fine according to the research I have done, and considering i have a 24 inch enclosure, i can get enough clearance from the motors. Im actually thinking about mounting it ouside the enclosure near the very front of the ROV
homebuiltrovs.com is actually how I moved from being young years ago on my dads boat wishing I had a rov to play with to actually building one. Years have passed since then, and I have built several using techniques he has used on his website, and several other resources. Ive used his sealing method, i wired my control panel and relay boxes in the same way.
But I want to move away from this method , and onto something more professional. I dont want to have to run a pair of wires for each relay to control each motor, and I dont even get speed control.
The main body of my new ROV is a 5 inch ID 1/4 inch thick 24 inch long aluminum tube with oring slots machined on each end. Both ends are then capped with a 3/4 inch thick piece of plexiglass, which are then joined together with 12 threaded rods and bolts.
As for connections, I sourced some Subconn Ethernet connectors and Subconn Power connectors, which are specifically built for ROVs/AUVs.
I have no problem with the mechanical side as I have expeience in machining and have access to the tools.
I want to add control to the ROV, and I know it can be done.
In an ideal situation I would love to start with:
Motor Control via PWM and electronic speed controllers
Sensory Input: Magnetic compass
: Depth sensor
Camera (I dont mind running a seperate wire for video)
Id like to view the video on a monitor
Id like to control the ROV with a few joysitcks
something like this
Id like to have depth and heading displayed, like one of those 24x2 character screens
My problem is how do I connect surface to ROV, over what cable? do I create a network with arduno + ip cam + router on the ROV with another ardunio on the surface connect via cat5?
Later I would love to add some autonomous control like a gyroscope to keep the ROV on a level axis, ect.
It sounds like an ethernet connection is the way to go if you are willing to invest in an IP camera. You would need either an ethernet shield or some other ethernet adapter to connect the Arduino.
Since only 2 out of the 4 pairs are used, you could bypass using a hub/switch/router in the UAV and put the camera on 2 pairs and the Arduino on 2 pairs then have a network switch above water to connect everything (a router is unnecessary). This scenario would reduce power usage on the UAV.
Then you would need a way to control the UAV. This still gives you 2 options. Either just a laptop with a network connection or another Arduino with ethernet capabilities. Using the laptop would require creating a program that can talk to the Arduino via the network connection or maybe just using a web browser loading a page served up by the Arduino on the UAV.
Controlling it with another Arduino wouldn’t require a laptop present and would probably be about the same difficulty level.