I am in the middle of a project whereby I am designing a ‘guidance system’ for a small unmanned boat (like a big rc boat)
The guidance system is meant to guide the boat to a point 1500m in a particular direction offshore.
So far I have a working prototype whereby an i2c compass is coupled to a pic16f877a micro and a servo. The boat is pointed in the direction of travel and a heading is aquired. The boat then sets off, if it deviates by more than 5 degrees in either direction the servo connected to the rudder brings it back into line.
My problems…
I only just realised (duh) that if the boat is deviated by a large amount for too long once it corrects its course the boat will be in the same heading but not going to the original point anymore.
The second problem is that the magnetic compass sensors give incorrect readings once they are tilted (in the waves)
I have purchased a EM406 gps as well as accelerometers from sfe and are looking at implementing either or both into my project.
I simply need 1500 metres in the original direction of travel so I am thinking if I use a compass module to aquire a heading then take the start lat and long and calculate the end point from there.
The gps module could then be used to guide the boat.
Am I overengineering the solution?
I need 50 metres of acuracy at 1500m offshore this must be achieved in spite of any waves and currents.
What are the chances that you would have the lon/lat of the point of 1500m ahead of time? If you did, you could employ a GPS solution and basically have it go to the “waypoint”. This would eliminate the need for a compass, accels, ect.
I’m thinking of it in terms of that big autonomous RC plane that was flown over the Atlantic. It had specific lat/lon points that it was supposed to fly to. Everytime it made it to a point, it would change course for the next and so on. I assume it was calculating simple point to point math, not sure if it was a flat earth or great earth (arc) model, though.
I am a wildlife researcher who, along with a colleague, has begun developing relatively cheap GPS collars for use in our projects, and we’re interested in the idea that the GPS might be able to control the switching on/off of other devices in the collars (e.g. cameras). In principle, the idea seems simple enough, particularly through the use of “waypoints”, however, we are complete electronics novices, and would be keen to get help in building a proof-of-concept prototype. We are happy to discuss payment for such help with anyone interested.
I think the 5Hz ETek GPS unit and a simple waypoint following system is the way to go here. It should be really simple to implement especially with only 1 waypoint (it gets trickier with multiple waypoints, speed control, turn rates vs speed, etc).
Thinking about using the Arduino to begin with. The basic idea will be to compare logged positions (our collars log fixes at various rates) each time a fix is taken with a stored waypoint (or list of waypoints) and trigger devices when a given fix is in relatively close proximity to a waypoint (e.g. give or take 50-100m radius from the waypoint position). We’ve been using the SparkFun GPS loggers with considerable success for basic logging projects so we’d like to continue to use them and, if possible, have the Arduino “tap into” logged fixes, or NMEA (probably only need RMC) sentences coming out of the engine and compare to waypoints.
I am however very open to suggestions, particularly easier ones.
I am a wildlife researcher who, along with a colleague, has begun developing relatively cheap GPS collars for use in our projects, and we’re interested in the idea that the GPS might be able to control the switching on/off of other devices in the collars (e.g. cameras). In principle, the idea seems simple enough, particularly through the use of “waypoints”, however, we are complete electronics novices, and would be keen to get help in building a proof-of-concept prototype. We are happy to discuss payment for such help with anyone interested.
Cheers,
Rob
You might want to start your own topic?? That really has nothing to do with this one.
Although to give you a bit of a help, what you are talking about is relatively simple, you just need to detect when you are within a ? meter radius is a supplied waypoint, and if so turn on an output.
You should have a look at the SFE Logomatic V2, that should be able to do exactly what you want to do without any hardware modifications.
Plus you can use the MicroSD card to store a track and also have a text file on it containing waypoints and their associated radius and switching output.
Thanks for the suggestions gussy. We’ve briefly looked at the logomatics before, but it is well worth a proper look. How difficult do you think it would be to reprogram one to switch on devices at given waypoints? Interested in helping?
PS Point taken on the need for a new post and I’ll definitely start one if people would prefer…just thought the “GPS guidance” idea was a close match for this one.
ROB:
Thanks for the suggestions gussy. We’ve briefly looked at the logomatics before, but it is well worth a proper look. How difficult do you think it would be to reprogram one to switch on devices at given waypoints? Interested in helping?
PS Point taken on the need for a new post and I’ll definitely start one if people would prefer…just thought the “GPS guidance” idea was a close match for this one.
Logomatics are be the way to go I think. Since they can run off a single LiPo cell and have the charging circuit onboard. Its pretty much a complete solution.
They wouldn’t need to be completely “reprogrammed” as such, only a few modifications to the code would be needed to get it all working. I can’t help out much at the moment (end of year, uni exams etc) but after that I may be able to help out.
Thanks for the reply and the offer to help once you’re not busy. Any chance you could give me some hints (e.g. example code on the Net etc) that might be worth looking at in the meantime? Appreciate any guidance.
Well first off I would say get yourself a logomatic, and setup WinARM using the help of the SFE USB Bootloader tutorial.
Have a play with the code first and get your head around it (its pretty simple), maybe try changing a few things here and there just to get a feel for it.
Basically all you need to do is each time you go to log the GPS data, put in a function that checks if the current position is within XX distance of a predefined waypoint, if it is turn on an output, or pulse it or whatever you need to do.
Once you get the basics working you could do more complex things like reading waypoints and their respective radius’ and corresponding outputs, from the SETTINGS.TXT file on the MicroSD card.
I am sure if you try and get your head around the current logomatic code and have a go at writing the above functions, people here will happily help out with any problems you may have.