Close

Navigation Software from Scratch

A project log for OpenTransat

Building an Autonomous Sailboat That Pursues to Cross the Atlantic Ocean

andy-osuskyAndy Osusky 10/31/2016 at 12:450 Comments

Existing open-source solutions for drones were not suitable for this project. Below are the most important points where the boat differs from typical applications:

1) Tilt-Compensated Compass

A small boat is constantly bouncing up and down while riding high waves. Therefore a tilt-compensated compass LSM303D was used to find the correct heading. The compass combines a 3-axis accelerometer and 3-axis magnetometer.

2) Spherical Coordinates

If you fly a drone, you probably don't send it over vast distances across an entire continent. Some flight controllers do calculations by using the Pythagoras theorem, which is valid only on a flat surface. For a greater precision, we need to count in the Earth curvature which is significant for the path across the Atlantic.

3) More Sophisticated Error Correction

If you try to drive a small powerboat in wild ocean conditions, you will find out quite quickly that it's not as easy as driving a car. As the boat is often turned by the waves from side to side, it has to take action by adjusting the rudder, but not too often as the servo would quickly wear out. The servo has to be operational for months! A PID controller has to be implemented to keep the boat in one direction while being friendly to the servo at the same time.

4) Magnetic Declination

Magnetic declination, i.e. the angle between magnetic north and true north, can make a difference by as much as 20 degrees. While it is not absolutely critical for a successful mission, it's worth implementing the World Magnetic Model into the navigation software to measure the heading more precisely. The actual model is a very complex formula with plenty of experimental constants that can change over time. So, I calculated the values of declination on a sphere mesh and stored them in the Arduino flash memory.

Discussions