Monday, 22 June 2026

11th Bass Strait Voyage - Software Bugs and Good Luck

11th Bass Strait Voyage - Software Bugs and Good Luck

Wednesday 17/6/2026 6:30pm. Launch of Voyager 2.9 on a quick 24 mile / 24 hour voyage across the edge of Bass Strait from Torquay to Rye Ocean Beach. 

The vessel was fairly much the same configuration as the previous Bass Strait voyage, in late 2025.

Final Checks Before Departure to Launch Site



Ready for launch at Torquay 6:30pm 17/6/2026


The vessel made it through the destination, but it took 59 hours, rather 24, and took some large diversion on the way.
This voyage revealed new software issues. 

The image below shows the vessel heading eastward, in a generally northerly wind, slowly drifting out of the corridor, around a third of the way across.

The wind was fading, and the vessel was unable to make way in the light conditions, possibly with tidal influence.
The Voyager OS software does change it behavior to cope with course deviation outside the corridor.
This is defined as Cross Track Error (CTE) exceeding Maximum CTE (MaxCTE), the boundary.

The vessel continued to drift out of the corridor, beyond 150% MaxCTE, where a further behaviour threshold commences.
When the wind returned, it failed to return toward the rhumb line, but continued further off course.
Analysis of the logs revealed that the vessel  had adequate wind power to sail, but was running on port tack and refusing to head toward the rhumb line, despite the fac that it could have, if it tried.
I called this the "stuck running" bug, where it was in running mode, and refused to leave this mode.

Good Luck #1

Eventually, the wind backed to north west, which allowed the vessel to successfully make the centre waypoint, while "stuck running".
Once it returns within 25% of MaxCTE, all flags related to exceeding boundaries are cleared and the sailing algorithm returns to normal.



Voyage from Torquay to Rye Ocean Beach, including excursions


As the vessel continued eastward approaching the destination, the scenario repeated.
The vessel drifted out of the corridor beyond MaxCTE in light conditions, and continued to drift south in the light north westerly wind.
Eventually, the vessel drifted several miles south, when the wind returned. 
but "stuck running" meant it wouldn't return to course.

Good Luck #2

The wind did come in from the SSW at around 30knots. 
This allowed the vessel to run back to the final waypoints with good speed and good control.
The image below shows the vessel approaching from the south and then heading eastward to the shore.





Landing at Rye Ocean Beach 5:30am 20/6/2026



Software Bugs

"Stuck Running" Bug

Analysis of the code highlighted several issues related recovering from values of CTE greatly exceeding MaxCTE.
The primary bug, the "stuck running" bug is caused by some specific maneuvering cases not being covered.
When the vessel is running down a course, it is forced to gybe back and forth to avoid sailing closer to dead-downwind than around 30 degrees. 
This is for reasons of speed and more importantly to prevent downwind rolling (which is a problem that afflicts monohulls with self-trimming wing sails).
The downwind tacking behaviour generally consists of tacking downwind from one boundary to other. And in each case when a boundary is reached, the mode changes to running on the other tack.
The "stuck running" bug was complex to unravel, but it in simple terms it was related to a problem where the vessel is outside of the corridor, running on a divergent tack, away from the course, and never meeting the boundary.
This is now believed to be resolved, by ensuring that the gaps in the logic are covered to ensure the vessel tries to return to the course as one of its highest priorities.

"Waypoint Reached" Bug

This has not been a problem, but this latest voyage highlighted a potential problem.
A waypoint is considered passed, when the vessel passes across a line perpendicular to the course, that bisects the waypoint circle. The vessel must be within the circle as it crosses the perpendicular line to be considered past the waypoint.
This means the vessel must be within MaxCTE to do that.
A situation may arise where the vessel is outside of MaxCTE as it passes the waypoint.
It may be pointless, fruitless and counterproductive to force the vessel to pass within a distance of MaxCTE, when the vessel is already outside MaxCTE.
Instead, a change has now been made to remove the requirement to be within the MaxCTE distance of a waypoint when crossing the perpendicular line, for it to be considered passed.
Of course, the vessel will always try to pass precisely through each waypoint, but if it is push past a waypoint outside of MaxCTE, there is little point trying to go back.