Some Sailing Logic Coding Ideas
Course Optimization Using Polar Plots
-using a polar plot (plot of velocities for given angle and wind speed) to optimize path, trade off between speed and straight course
-use the polar to choose the fastest velocity, pre-route the fastest route based on existing wind speed and direction using a shortest path routing algorithm, ie Dijstra's alg, to find the best set of subwaypoints, then have the polars handle the rest.
Function for De-Powering Sails When Over Powered
-when wind gets to strong for a properly trimmed sail, allow boat to detect and let out sails effeciently, (may not be a problem as we may not sail in these conditions)
Taking Advantage of Velocity Lifts and Headers
-when windspeed gusts or lulls this effects the minimum angle which we can get to the wind, detecing and adjusting for this would be cool
Empirical Test for Close Hauled Course
-at given wind speed, taking boat speed reading through a variety of angles, ploting rate of change dependent on angle for different wind speeds, giving estimate of best close hauled angle
-using ticklers (ribbons on sail) and having the boat send angle data to compass
Tacking as a Function of Wind Speed
-tacks should be doen frequently to avoid being trapped after a wind shift, (one big tack may strand you down wind of the mark after a change in direction) but tacking must be done after the boat gets up to a reasonable speed as tacking is costly in terms of time/energy, ensuring we are at (an apporximate) max speed would be good for upwind legs
Function for Detecting and Exiting Once Stalled in Irons
-when a boat fails to tack it may become stuck pointing into the wind as it has no power here, detecting this cirumstance and exiting it (via backwinding??? cranking the rudder) will prevent the boat losing time waiting to get out.
-Leeway is drift off course caused by the wind, allowing the boat to approximate the amount of leaway for the given wind conditions (each time we go out?? via calibrating run) we could add an accomodating factor to add to our heading in order to stay on course (not applicable to close hauled)
Using Time Efficiently While Waiting for Boat to Respond to Rudder Adjustment
-depending on how much the boat needs to turn the rudder function may need to wait for the boat to respond, being able to allocate this time accuratly and usefully would be good, so other math/sail functions could run in background
Subwaypoints or Intercept Line for Tacking and Rounding Mark
-ensuring the final tack lies on the layline of the mark is important, calculating subwaypoints or the layline would be usefull in order to time this, allowing the boat to round the mark as closely as possible and at a decent speed. Would take over from generic tacking function when a set distance from the mark.
Strategy, Super Tacks vs Tacking While Underpowered
--having boat decide how long to spend on each tack, shorter tacks in faster wind and longer in slower etc.?? A minimum (but variable, dependent on wind speed, calibrated) speed rather than a corridor, or some combination of the two.
PID Control of Rudder and Decreasing Drag
-minimizing drag caused by stearing by having rudder stear proportionally to the amount of rotation required