ArduPilot in offshore autonomous boat

Thanks in advance for any answers/advice. I’m a newby to whole field of electronic boat control, so please bear with me if my questions reflect this. We are developing a solar electric autonomous boat to cross the Atlantic Ocean, and I am hoping to use Rover Ardupilot for navigation. It’s a larger 24’ boat (please see the pic of the prototype boat below). I’ve spent quite a bit of time reading through the forums and manuals/articles, but still have some questions.

  1. Method for Navigating to Waypoints: Does Arupilot boat steer along a track, or does it simply point to the waypoint regardless of sideslip. All off-the-shelf autopilots (for larger crewed boats) follow a track, although this is not necessarily the best way to go. In our situation, the vectors at play will (winds currents) will roughly cancel each other out over the long run, so it is better that the boat simply steers straight at the distant waypoint, sometimes drifting south, sometimes north relative to the track line, rather than continually fighting these vectors. A good example that illustrates this concept is a row I once did across the English Channel - during the course of our row from one side to the other, the tide flooded and then ebbed. These two vectors cancelled each other out over the time of our crossing. Had we compensated to do a straight line across, our overall speed would have been slower than the route we did, where we held a relatively constant heading , and our overall track looked like a parenthesis . The biggest issue with steering a track with an autonomous boat, is if the boat is inactive for hours at a time due to limited power supply, the boat may drift far from its track. When it’s back in motion, it would be better off heading for a distant waypoint, rather than continually struggling to get back to its track.

  2. Corrective Action: In big waves, it is beneficial to vary the reaction of the rudder depending on what is required. The off-the-shelf models of crewed boat autopilots usually have two rudder responses depending on how much the boat deviates from course. For example, if a big wave hits the boat and throws it thirty degrees off heading, greater corrective rudder movement is initiated than if the boat moves three degrees off course. Does the Rover autopilot have a feature like this?

  3. Potential Problems? We’ve pondered using a small off-the-shelf tiller pilot for our boat, hooked up to a basic autopilot, but there are a number of reasons why this doesn’t work well. The units are programmed so that a button needs to be manually pushed before the boat will proceed to the next waypoint. This is a bit of a showstopper for an unmanned boat. Additionally, if the power supply is interrupted (for our boat, a couple of foggy days could create this situation) the whole system needs to be manually restarted, before it will resume operating. There is the potential of creating parallel relay switches at the tiller pilot buttons controlled by an Arduino to sequentially provide the required inputs, however, it seems more elegant to simply operate the Rover autopilot system. Are there any problems anyone can envision that could arise from using an Ardupilot in a long-term unmanned environment? For example, if the power supply is interrupted will the system resume operations once the power returns, or does it require manual intervention? Or perhaps a small bug in the system causing it to crash?

  4. I’m still a little unclear (and again, excuse my ignorance in this realm) as to how to integrate the Rover autopilot into the system we will be using for our boat. Since the boat is bigger (about 300 lbs and 24 feet long), it won’t be possible to use the smaller rc linear actuator servos for the rudder. Instead, we will be using a larger 12 volt actuator (here’s a model that we might be using; www.firgelliauto.com/products/os-series) Since the PixHawk outputs at 5.7 volts, or so, I’m assuming the way to control the rudder actuator is to use a relay board, with 12 volts coming from another power source. I’m also a little unsure how the position sensor of the actuator is wired in back to the main board. If anyone has any advice on the specifics of what would be the ideal way of connecting/wiring the Pixhawk to the steering system would be much appreciated.

Anyway, that’s it for now. I look forward to hearing some thoughts.

2 Likes

That is one sexy looking boat. To answer your questions:

  1. Yes ArduPilot will just point to the waypoint regardless of sideslip.
  2. ArduPilot users a PID controller so the further “off” it is the hard it will try to return to the correct course. But it doesn’t have a feature to engage a second rudder if its significantly off course. It will only push the existing rudder as hard as it can. So small wave - small rudder adjustment - big wave big rudder adjustment. Hope that makes sense.
  3. It will require the correct configuration settings to ensure it starts again after a reboot. Arming checks disabled, startup in AUTO mode (http://ardupilot.org/rover/docs/parameters.html#initial-mode-initial-driving-mode) and MIS_RESTART disabled so it continues the mission from where it left off. Hmmm, I’m not sure if it remembers the waypoint number between power restarts - let me check that and get back to you.
  4. The Pixhawk outputs 3.3v. There is no way to wire the position sensor of the actuator into the Pixhawk at this stage. The Pixhawk can be configured to output a PWM range and that’s it. So if it wants to turn left it outputs the PWM for left and if its not turning left it outputs more PWM until it gets to the maximum. It doesn’t care what position the rudder is in - only that the boat is moving in the right direction.

Hope that helps a little. And of course TEST TEST TEST TEST TEST :slight_smile:

Thanks, Grant.

Many thanks for your detailed response, Grant. It sounds like the Ardupilot will work well for our application. We will be installing it in the boat over the next few months, and I’ll post updates here.

It looks great Colin. I can only imagine how much the boat will cost. If I were you I’d build the cheapest possible prototype first and test everything on that.

I would be worried that in the open ocean big waves it would flip your boat over and then it can’t right itself which is why mono hulls with large keel weights are so popular.

Looking forward to your updates.

Thanks, Grant.

Yes, using a monohull with a weighted keel is the simplest way of creating a self righting vessel. And self-righting is imperative with a small boat is in the open ocean. The problem with using a monohull, however, is that you are really limited by the surface area to lay your solar array. For the 1200 watt array we plan on using, it would end up being a sluggish barge. A multihull is the ony way of creating a truly slippery hull that has the space for a large deck. The challenge was in creating a multihull that easily self rights (and without using deadweight to lower the CofG). We’ll be demonstrating the self-righting aspect in a few months.

We’ll be testing all the electronics in the prototype pictured. The same vessel will be used for refining the rough water attributes, self righting aspects, navigation system, etc. Even more daunting than the cost is the time required! More info on the quest is on our website here; https://angusadventures.com/expedition/autonomous-ocean/

Things are moving along. The steering hardware will be installed in the proto-boat over the next couple of weeks, and we’re hoping to start the autonomous navigation testing around Christmas. Our current project is developing an efficient electric motor pod. Our overall goal is to have the boat moving at 3.5-4 knots with 100 watts of power. The solar array will be rated for 1200 watts, which will conservatively give us a 24 average of 80-100 watts. You can see more about our motor design here - https://angusadventures.com/propulsion-system-for-autonomous-boat/