Rover Sailboat Auto Mission

This is a short video demonstrating the progress that has been made on rover sailboat support in the past few weeks.

The boat is a International One Meter class that has been fitted with a pixhawk, standard set up with GPS and telemetry. The only bit of special equipment is a wind vane. This is used to sense the direction of the wind allowing the sails to be trimmed and the best course to be chosen.

The sensor is a 360 degree rotation potentiometer, this allows the wind direction to be read using a analog input. A new wind vane library has been written, we hope to support other devices and methods of sensing the wind direction and speed in the future.

Sailboat now supports:

  • Maunal mode, rudder like standard rover, throttle controls sail position
  • Acro mode, the heading is controlled like a standard rover but the sails are trimmed to the wind automatically.
  • Hold mode, the sails are let out and the boat steers into the wind to try and minimize is speed
  • Auto mode, if the next waypoint can be reached the sailboat takes a direct route like a standard rover, the sails are trimmed automatically. If the next waypoint is upwind and cannot be reached directly the sailboat will tack into the wind to the next waypoint. By default this results in a long leg and a single tack to reach the waypoint so for confined water a tack can be triggered from a transmitter switch or from a full rudder input in the correct direction.
  • RTL mode, the same logic as auto mode is used so the sailboat will tack upwind to reach the home location if necessary

Still a few more things to be done before its ready to merge but its coming along nicely. If anyone has and use-cases or ideas that would be great. The clear advantage is the power efficiency as our propulsion is free. Possibly for mapping a boat with both sails and a motor would be the way to go, we can do the easy bits with the sails and the tricky bits with the motors.

The main thread is here: Sailboat Support
and the code is here: https://github.com/ArduPilot/ardupilot/pull/9322

If anyone has a sailboat and fancy’s doing some testing that would be great!

5 Likes

That is really really great. This is super exciting!

Fantastic. Well done!

Randy pointed to this video of yours at the partners call yesterday, which I thought was also very impressive:

That is really fantastic. I will have to build a sail boat and try to cross our lokal “bay”. Exiting!

Great progress! Makes us land rover’s navigation tasks seem trivial! :slight_smile:

Im thinking about doing a project like this with my high school student. Is there anything in the AUTO mode that would make a decision on whether to tack or not going to an upwind waypoint based on wind shifts? Can you set up a boundary for the boat to stay in? This is really cool. I could see this being used to take sea surface readings like temperature, salinity, any kind of water sampling or analysing, wave hight and period measuements, current mapping.

I think the answer is yes to all your questions.