The software of the sailboat will be based on a layered system which can be seen above. The behaviour is based on a incremental process of data refinement level by level. The main entities will be:
- Long Distance Route Planner (LDRP): it is the top level. It is not influenced by sensors readings nor by lower levels or obstacles. It divides the whole trip route in segments based on weather forecast, base-control choices and off-limit zones (eg coasts). As output it gives the next objective coordinates. The route is dynamic: the LDRP can change it in case of bad weather forecasts, base decisions or if the boat has drift away from the original route (due to marine currents or due to other meteorological phenomena) in any given moment.
- Short Distance Route Planner (SDRP): it takes as input the next objective coordinates and divides the route to reach it in segments based on wind direction and strength. It is mainly in charge of avoiding the "not sailable" zones (in the following picture), maintaining an optimized route in regard to the wind strength and avoiding marine obstacles.
Furthermore it can dynamically change the route in case of repentine changes of the wind conditions or if the boat has come too far from the next intermediate objective or if an obstacle is approaching. It gives as output the desired direction to follow in degrees) to reach the next intermediate objective.
The following picture represent a typical LDRP and SDRP interaction:
- At the bottom of the system there is the helmsman. It receives as input the desired direction from the SDRP (in degrees), the actual boat heading and speed. It operates the rudder computing (to put it simply) the difference between the SDRP desired direction and the actual boat direction and filtering the rudder movement speed with the actual boat speed to avoid rough tacking or jibing manoeuvres.
- The last component is the bowman. It is in charge of pull and release the sails. It is completely independent to all the other entities and it makes decisions only based on wind strength and boat heading. This independence imitate real life conditions in which communication between helmsman and bowman is mainly unnecessary.
I'm developing a little Java software that will visually simulate the path choosing algorithm in optimal conditions. It will also show the dynamic changing of the path in case of wind direction changes. Hopefully I will finish it soon and upload both the code and a demo version :)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.