I need a little guidance, well frankly I need a lot of guidance :(. I'm looking to create a boat that follows the shoreline. I'm thinking that I will need to use an Arduino chip with a Rasperry pi chip possibly. I would like the boat to stay as close to shore as possible, using another sensor to ensure the depth stays above say a foot or a meter. I want it to be completely autonomous after placed in water. Any guidelines as far as what hardware (chips, sensors) or any other advice would be greatly appreciated.
I think the hard bit about your project will be deciding what sort of sensor and what control algorithm you will use to find where you are relative to the short and choose your path relative to that. Choosing the platform to implement that solution on comes a long way down the road.
An Arduino should be more than adequate for the task, if that is all there is to it. A RPi would be overkill, I think.
Problem is the sensor. There are plenty of ultrasonic distance sensors like this for example available that Arduino folk use all the time but they are designed for use in air (far less dense than water, would give an incorrect reading) and are not waterproof (so would not last 10 minutes). You need something similar to what real boats have. They may be expensive and large. They are also not accurate to better than around 0.1m in my experience, which may be enough.
If you can find one, then it should be an interesting project/algorithm to work on. For example what if the boat is heading directly into shore, or approaches an inlet?
You may find an electronic compass module like this for example is needed (may be called a magnetic field senor), so you can work out how far the boat has turned. They are readily available, cheap and Arduino compatible.
There is lots of information on autonomous vehicles and navigation at DIYDrones.com including a very active forum. In particular the spinoff Ardupilot project features open source navigational software for Arduino and vehicles of all sorts. http://ardupilot.com/
When I first read the topic title I was going to direct you to the Microtransat Challenge, but after you mentioned "another sensor to ensure the depth stays above say a foot or a meter" I'm pretty sure that won't do.
So, you'll have to answer a few questions and provide a bit more information.
What kind of boat are we talking about (size, type...)? Power source? Autonomy (time and distance)?. Expected water surface conditions (shores of the Pacific are quite different from some small lake)? Why do you want it to follow the shore? Why do you want it to follow the shore so closely?
As PeterH said, my main problem would be making sure that the boat would continue in the proper direction (for example, not reroute downstream when it is supposed to be going upstream). I read about the electronic compass PaulRB and I feel like that could be very useful. For sensing the shore, I thought of possibly using a sensor, such as the Maxbotix LV-EZ0. As far as depth is concerned, I read about wireless transducers, similar to fish finders and depth finders, are small enough to fit on the boat.
So if I had the depth reading telling the chip to say above XX meters and a sensor on show saying stay as close to shore as possible, how would I program it to respond if the depth is wrong, without sending it out into the middle of the lake?
As far as distance goes, what if I used two sensors on one side of the boat, pointing to shore, comparing them and trying to keep them equal at all times? That would keep the boat parallel to the shore. My question is would the response be too late to correct any misdirection?
Thank you everyone for your time and responses. I hope that wasn't too confusing.
@ jremington: thank you for that page, I'm bookmarking it for reference and reading through it now. I'll also look into ardupilot.com.
@Shpaget: I honestly wish I could provide you with information. The size and type of boat is a small electronic rc boat. So it would be like a foot long. I could use advice on the power source, I would only need the boat to run for 5 or 10 minutes. At the end of this time, I would simply grab it out of the water, or if I could still use the original remote, shut off the chip and drive it in. I want it to follow the shore to map the shoreline. I will handle the mapping later, I just wanted the shore following to work first.
Again, I hope I don't sound ridiculous in my requests or suggestions. I'm really new with arduino.
CheddarFries:
So if I had the depth reading telling the chip to say above XX meters and a sensor on show saying stay as close to shore as possible, how would I program it to respond if the depth is wrong, without sending it out into the middle of the lake?
As far as distance goes, what if I used two sensors on one side of the boat, pointing to shore, comparing them and trying to keep them equal at all times? That would keep the boat parallel to the shore. My question is would the response be too late to correct any misdirection?
I would think the basic approach would be to program it to follow a depth contour. Get it to zig-zag 90 degrees port then starboard, crossing the depth contour. Lets say you choose 1.5m depth. The boat would keep going in the same direction until it determines the depth is over 1.5m and getting deeper, or has just crossed the 1.5m contour and is getting shallower. Then it would bear away 90 degrees. Something like that, I haven't really thought it through!
Yeah Exactly Paul! That was what I was thinking. Have it follow the two shore sensors unless if the depth was under 1.5 meters. Then automatically make the ship turn portside, until the depth was over 2 meters (this would keep it from just bouncing back and forth incessantly). Then the two starboard side sensor's kick in, noticing that the nose is further from shore, so it then would veer to the starboard side.
If anyone has any criticisms or suggestions, let me know!
By the way, thank you for your continued responses Paul.
No, you don't sound ridiculous, but every bit of information helps us in helping you.
You mention upstream and downstream, so it's a river? Rivers I know of often have debris floating around. Your small boat could easily get entangled in a branch of something.
If you navigate very close to the shore, there are even plants that live there. Also man made structures could easily protrude from the shore and disrupt your boat. Even if you anticipate that and add various sensors to avoid such obstacles, you will be hard pressed to filter them out of the final shore contour.
Are you sure the a boat is the best way to do what you want done - map the shore? Wouldn't an aerial photo be not only faster and more accurate, but cheaper as well? (hint: You don't need an airplane.)
I was considering doing a small pond or river. I know the particular stretch of river or pond where I would do this, so I could clear the debris and ensure there are no protruding structures. Plants are my main issue, especially in the pond. I am doing this as a project for school, so it doesn't have to be too precise. It simply has to show that I have knowledge of coding and sensors. Also, I have a classmate doing a quad copter and many people have RC cars/robots, so a boat would be different.
I am looking into sensors, does anyone know of a proximity/distance sensor that shoots around like 5 meters that I could use?
I suggest you think in terms of a much larger boat with a greater mass to give it more inertia and momentum so it is less likely to be disturbed by every little ripple or breeze. I would go for something about 1metre or 3ft long.
Make sure you have a long string attached for the initial sea trials.
Okay I will look into that! Yeah having a way to reel it back in is very important! If anyone has experience with boats, do you know what kind I should get? I don't know if it has to have rudders, adjustable throttle, etc.
A boat with twin propellers that can be driven separately will give a lot more control than a boat with a single propeller and a rudder.
A displacement hull (like a commercial fishing boat) rather than a planing hull would also give more stability. However a displacement hull won't go fast.