Go Down

Topic: Robot Submarine Project (Read 3906 times) previous topic - next topic

killer_whale

First of all, I am new in Arduino and i am not sure it is possible (or not).

The purpose of this project is making a robot submarine that is able to go 5 to 100 feet in the fresh/salt water. I have a strict budget of $500.

Since the submarine may have to swim in the current (low water flows and waves) it will have to stabilize itself. Thats why a compass won't be enough. There are two options at this point. First is using a weight / floater to make it stay parallel to the ground. And the second way is to use a gyro + accelerometer and motors to do this.

The submarine will need to dive and ascend yet this part is a little different than the real ones. It won't be filling the tubes with water and air to do so, instead, i will be balancing the density of the submarine as close as possible to the water and use motor power to sink and elevate it.

Since the water it will swim in can be turbid or salty, line of sight will be a problem. Camera + light may not be enough to see the environment. Therefore i will need to place ultrasound sensors that can detect objects from higher distances. The camera and lights will only be used for closer distances as 1 to 20 feet.

To avoid harmful depth pressures, i also need to place a pressure sensor. Pressure sensor will be only used for warning purpose, not an automation.

When i add up all these things, i get the following requirements;
- Need to control 5 dc motors (acting independent from each other)
- Accelerometer + Gyroscope + Compass (MinIMU-9 or similar) for navigation and stabilizing the robot
- Underwater sonars (one 290 kHz, 15° and one 90 kHz, 55°)
- Pressure sensor
- Camera (low res webcam etc. will do) and light (led spot lights)

I don't have any idea how to control the submarine with less motors.

Can anyone help?

dave-in-nj

is the question to use less than 5 motor ?

one suggestion is to have  tether on the unit with a buoy to know where it is.

under pressure, the unit will collapse, even by fractions of a mm, like all submarines do.   as the physical size is compressed the density increases.  as that happens, the weight remains constant, but the density increases.  the comparative weight is equal to the water it displaces, the smaller size will mean that is will sink more.

if the batteries fail, the only way to retrieve it will be to use the tether.

as a note, every government submarine uses ballast tanks. they have unlimited funds, so they can pick anything they want.  they took the idea from fish who also have bladders to help them keep at a depth.

one possibility is to deploy the bouy after 30 minutes.  that way, if you can power it home, no problem. if it does sink, you will be able to retrieve it.


killer_whale

Quote
is the question to use less than 5 motor ?

Yes, one of my questions is how to connect 5 independent motors and that many sensors at the same time. There are motor boards for 2 but i will have 5. I searched the internet but there is no example with that motor count or over. I don't have any idea how to do a 3D navigation with just 2 motors.

Quote
if the batteries fail, the only way to retrieve it will be to use the tether.

I can use cables for controlling the submarine and also i think video streaming will be better that way. Battery can stay at the remote controller and that leaves me more space on the robot (if needed). RF is not strong enough and bluetooth etc transmission fades in water / air combo. Also retrieving the submarine from depth means just pulling the cable back.

Quote
under pressure, the unit will collapse, even by fractions of a mm, like all submarines do

Pressure won't be an issue, i will be using a waterproof PVC case with a transparent front. All holes (for sensors, cables etc) will be sealed with epoxy and i am pretty sure it will hold under pressure above 100 feet (approx. 400 kPa). Buoy may help to make it stay at certain depth, yes. That way i can discard the pressure sensor. But i am not sure about that solution.


I was also asking for an alternative solution on making a submarine. I was searching for possible solutions and i found this http://www.aquabotix.com/proddetail.php?prod=01-01-00-0000M. It is too expensive but seems it runs with less motors which stands as an example. Also there seems to be an example project built with arduino here https://github.com/OpenROV/ without sonar capability.

racemaniac


Quote
is the question to use less than 5 motor ?

Yes, one of my questions is how to connect 5 independent motors and that many sensors at the same time. There are motor boards for 2 but i will have 5. I searched the internet but there is no example with that motor count or over. I don't have any idea how to do a 3D navigation with just 2 motors.

Why the focus on existing shields? I view shields as a good starting point for simple projects, but if you're making something a bit more complex like this, just make something yourself?
Make your own board with 5 h-bridges to control the motors, and if the amount of pins required to drive them is an issue, control them via shiftregisters. If you're going for some more advanced projects, finding shields that do everything you need, and can all be used together is nearly impossible. But for something like this it shouldn't be hard to make your own :).
You can use existing shields as inspiration :).

PeterH


one of my questions is how to connect 5 independent motors


If you use motor driver boards (not shields) for the motors, you have full control over which pins they are connected to so you can connect multiple boards (subject to running out of pins). You will need to identify the voltage and current requirements of the motors in order to know which drivers are suitable. There are driver boards available that support three motors on a single board (perhaps more are available) so you may not need a huge number of boards.

You also have the option of using an RC model speed controller to drive each motor, in which case you would only need a single I/O pin to control direction and speed using the Servo library. This is the approach typically used for multirotor drones and is probably your easiest route, but not necessarily the cheapest.

Chagrin

Motor boards with L29x chips are really old tech. An RC ESC is a much better and more efficient choice; you can find them for either brushed or brushless motors (but the OpenROV site probably already explained the advantage of brushless motors).

The Servo library is used with RC ESCs.

dave-in-nj

Some of the motors could be driven with one pin.  just on/off.

some will need more control.  a typical submarine would have 4.  propulsion, elevation at the stern, direction control at the stern, then the bow planes.

the basic premise is that vertical is controlled by ballast, and forward movement uses the elevator and dive planes to allow more control of the decent or ascent.  of course this requires longitudinal movement to change depth.  a center mounted thruster could replace the ballast.

as for the number of inputs and outputs.:

There is no reason that you not use two arduinos.  one for sensing and one for control


Go Up