Hello! I am rebuilding an old APMBoat from a few years ago, and at the time was unable to find a way to get the boat to hold position. When it reached the final waypoint, it would just stop and float with the current/wind. The only thing I was able to do is have it change speed and repeat a pattern with the DO_JUMP command very slowly.
But that wastes power - is there a way to get it to return to a location if it drifts a set distance away?
I was thinking I would use a geofence, but it looks like that capability is not implemented iwth APMRover.
Any workarounds, suggestions?
An intelligent controller can detect and calculate wind's speed and direction in case of drones, so why not in case of a boat.
Developer/s should open API to software to let users to develop intelligent scripts to provide and offer nice features.
If this is not the case, try to ask developer/s behind this software and embedded control algorithms directly.
I agree fully, but of course APMRover is not as developed nor has the support of the plane/copter versions. I am grateful we even have a rover version to play with! That said, I basically just want my boat to detect that is has moved X number of meters from it's HOLD/LOITER position and return to the center.
If one wanted to add a LOITER mode to APMRover or fork APMRover and create a new APMMarine firmware - what would be required to do that and get community support/proper integration? I do not have the expertise to do this and maintain it, though would consider hiring a developer to do it and fund with kickstarter.... at least to get the ball rolling?
A few ideas:
- Loiter Mode (Where if the boat drifts outside of its target area, it returns)
- Implement GeoFencing (Would be nice to prevent the boat from running into the shore, whether drifting or driven)
- Implement some type of water speed sensor, and intelligent software which can detect current direction and speed.
BTW: Here is my drone boat. Made from a Child's kayak. This video is a bit old, I'm dumping the trolling motor and going with a low KV outrunner inboard to swing a large prop at low RPMs.
I thinks it's a very good idea to create an "arduboat" firmware with a dynamic positionnig mode!
But, perhaps that the boat's user community is too small for the moment, no???
Sounds like what you want is a dynamic positioning system ( https://en.wikipedia.org/wiki/Dynamic_positioning ). I've been thinking about designing one my self. There are a lot of factors to consider, one being how you are going to thrust the vehicle to the desired location. That won't be easy if all you have is a single prop / thruster. Much better to have three, and ideally 4 thrusters to accomplish this.
I can manage this project, called Boat Dynamic Positioning.
I can develop algorithms from the scratch, autoconfiguration, selftesting, autotuning, wind speed and direction control, current speed and direction control.
Fuzzy Logic, AI, SelfEgo, EcoMode
Any feature you wish can be developed and embedded.
Within one week I can start writing intelligent algorithms.
Just let me know your wish list
If budget can be offered just let me know lower/upper limit since a number of live, real tests have to be done and a number of boats have to be assembled and pretested to verify algorithms work fine, as expected.
I prefer interactive mode:
feature request > solution , script code
To build wire frame I need some response
my boat, 1-2... motors, top speed, battery type, control type, dimensions, image
I wish to have it equipped with Dynamic Positioning to feature:
blah blah blah ...
let me know your opinion
This is very interesting, I think I need to post perhaps a dedicated thread for this topic to gauge community interest and create a community wishlist. Personally, I didn't need dynamic positioning just rather a loiter function which will return the boat to the center when it drifts, say... 50m radius from the loiter_unlim waypoint. (same options as ArduPlane).
However, I also see the possibilities and applications for dynamic positioning - this would be a great concept.
I don't have any budget myself. I'm pretty broke at the moment, but I think this could be a possible kickstarter venture, and would be happy to use my boat or create another perhaps with motor pods for prototyping and testing. But because of that, I would need an fairly accurate estimate of cost prior to launching the kickstarter.
Darius - as I've explained to you previously the code is completely open source and open to modification by ANYONE. The API is completely open. Its open open open. Go for your life.
If you want "scripts" as you put it try DroneKit - http://dronekit.io/ - Rover supports that.
@Antimatter - I can implement what you request in terms of the vehicle returning to the waypoint if it drifts off. Give me a few days (I'm away again for week and a bit) and I'll have something. However, you will need to test it via loading custom firmware on your boat, trying it out and providing feedback and getting dataflash logs if we have problems. Also, as it will be alpha code if your boat crashes into the Queen Mary and it sinks its not my fault - although I will want to see the video ;-)
Sweet! I'll be happy to test it on my boat. This boat is also equipped with telemetry and video over cellular so you'd be welcome to test it as well. I'll PM you the connection details.
That being said, it'll be a couple more days before I get the motor/drive system working and get it in the water.
open source doesn't exactly mean, anything can be easily modified by third parties juniors like us.
Let me know your modifications to original Ardu code via API scripting.
Either Linux or Android are open source but it doesn't mean we can modify anything
since Ardu software looks to be highly sophisticated, professional software product, developed for years.
Just tell me what can be modifed or new feature added via API scripting just within few hours.
excellent boat, excellent video
have you tried running arduplane as a short term fix?
the code you need to add for loiter mode is a simple
throttle / distance to waypoint percentage with dead band(probably waypoint radius)
steering mapped to bearing to waypoint.