Tacking is only necessary when traveling directly into the wind, thus programming it would be trivial with a digital weather vane to determine wind direction. If desired direction == wind direction, then vary direction by several degrees for a minute or two, then switch to the other direction in a minute or two.
Also, driverless cars may just have two controllable independent variables, but the environments they work in are incredibly complex, with hundreds if not thousands of objects to track at any one moment. Boating in the middle of the ocean would still be complex, but it wouldn't compare to autonomous driving on land.
Well don’t forget that the current/surf are just as important, it’s not just wind. Then there’s also the fact that you don’t really ever stop, unless you’re heaving to or setting anchor. These factors when added together sort of compound the difficulty in programming intelligent decision making, because you can’t avoid accidents by hitting the breaks as easily or just steering out of the way, everything has to work with this universe of waves and wind and (almost) never stopping.
That’s just under fair conditions. Under foul conditions, I can’t really imagine how you can have a program make sense of this stuff, since all the sensors are going to be all over the place, and you sort of need a human to make sense of it all. So under those conditions the it’d probably be easiest to just heave to, but then it’d probably get off course.
Also don’t forget that GPS is unreliable. The ship could probably do dead reckoning better than Columbus, but that’s something it absolutely must be taught in addition to everything.
I think a fair analogy would be to flying. You could make the argument that flying isn’t as complex as autonomous driving, but they’re just different. Sailing is about one degree of freedom more simple than flying.
I think the worst part is ropes and stuff getting tangled. Unless you run some sort of fixed wing sailboat, which has it’s own share of problems (how to reduce sail in strong winds or make a full stop?)
What I am interested is using CV and sensors inside ropes to optimise for speed or comfort, without user intervention. Takes quite a bit of training to learn how to read sail.
Well, of course designing an autonomous system to operate in an environment where malicious actors are actively spoofing and jamming your sensors with pathological inputs is a pretty huge challenge - admittedly one the military is probably very interested in - and is not the purpose of any of these competitions. It's hard enough when you trust your sensors, at the moment!
Sailing is slightly more complicated than that. Take a look at a polar diagram for a typical boat. They're fastest sailing at ~90 to ~120 to the wind, and generally you can't get closer to the wind than 30 degrees or so. Because of this the best velocity made good is often by alternating on two tacks rather than sailing directly toward your destination, even when sailing off the wind.
There's a lot to consider when sailing. None of it is some sort of magic that can't be automated, but there is quite a bit more to it than how you describe it in your first paragraph.
Also, driverless cars may just have two controllable independent variables, but the environments they work in are incredibly complex, with hundreds if not thousands of objects to track at any one moment. Boating in the middle of the ocean would still be complex, but it wouldn't compare to autonomous driving on land.