I have been reading about methods for autonomous sailing. I have got a collection of seven papers the and Robotic Sailing journal for the past seven years, and a couple of useful web-pages.
Not read all the papers yet, but I think I have a basic understanding. I can send the papers to anyone who is interested, but I better not post them here as I’m not sure how may off them are open access. Also if anyone has another paperers that would be great, or needs to access some I can have a go.
Essentially my understanding is that in order to determine the fastest way of getting to any one point you can use the boats polar plot to calculate tacking angles. This plot is just a record of the best/ideal case boat speed at each true wind angle and wind speed.
So the tricky bit in not really the navigation but generating this polar diagram for a wide range of conditions. So far there are three different approaches.
Generate a polar plot based on a number of none dimensional numbers calculated from the size and shape of your boat. There are a few sets of empirical equations that are commonly used. These equations however are based on measurements or full size yachts and will likely not apply to smaller scale craft very well. Especially unusual configurations.
Black box approach, the polar is drawn from only test data, The boat utilizes a maximizing algorithm to optimism its speed, once a good solution is found this becomes a point on the plot. This has the advantage of not needing to know anything about the boat. It will however take a significant amount of time to converge to a solution. As each trail and error step will take tens of seconds to reach a steady state. This could result in several hours to get a good polar for a range of wind conditions. I guess this method is similar to copters auto tune, sort of.
This is sort of a mixture, you generate you polar based on size and shape but then compare it to what can be achieved using method 2. Because your just sort of calibrating your parameters you just need to pick a couple of points rather than populate the whole polar so its quicker.
I think something a bit like 3. would probably be the best way to go. Would be nice to implement some sort of long term learning so it will continually improve. Possibly give it a generic polar plot to start with, each ‘point’ on the plot could have a low level of confidence then as it sails along it trys to optimizes speed and thus alters the polar to match this would then increase the confidence level in that point. Once it competently confident it would then stop trying to optimisme that point of sail and try another one near buy. Hope fully we would end with a polar that is quite accurate at the ‘useful’ points of sail that would be the fastest for going up and down wind.
These sailing boats it turns out are a lot more complex systems than copters and planes. In order to fully charictierise each boat I think we need:
at a range of sea states, wind speeds and true wind angles.
This will require a large number of parameters to competently define, Its I think essentially two 3dof polynomials. But is we want to update points as we go it would be better stored as a set of look up tables. I think this would be too much for parameters, possibly we could do something on the SD card, not too sure.
In the mean time I will keep reading the papers I have found, would welcome any other ideas or feedback.