The talking boat - Part 8 - Route Finder

Last year we were fortunate to be able to go with a group of out-doorsy friends on a sea-kaying expedition to the San Juan Islands, between Vancover Island and the mainland north of Seattle. Our expedition leader is a very experienced kayaker and I assisted with navigation. The tidal currents are quite strong and at typically paddling speed of about 2.5 knots it is crucial to be going with them rather than against, so a lot of research went into tidal prediction and to planning the route to make good use of the current. The trip was over 9 days, camping on state park campsites on the islands. A simply wonderful trip.

Navigation when kayaking is challenging. Ideally, the navigator would be able to refer to the chart, the tidal data, the compass bearing and the GPS - not easy when paddling at the same time.  The San Juan islands are prone to fog and bad weather. So this variant of the talking boat is the sort of device I wish I had had in the San Juan islands.

The application uses a USB GPS device for location and velocity and a compass for boat heading with the usual audio output and, as yet, the presenter as input. The route is described by a sequence of waypoints. A waypoint may be a destination, a point of interest or something to avoid. Waypoints are described by  name, latitude and longitude, possible date and time and descriptive text.

From the combination of GPS and compass data we can compute where a given waypoint lies relative to the direction you and the boat are pointing, how far away it is and how long it will take to get there at the current speed.  This data can be vocalized either on request or periodically.

The full code for the project is on Github

For a usable system, I will need to replace the presenter by an alternative input. The presenter has always been rather flaky but that seems likely to be a power problem. (TP1-TP2 voltage is down to 4.77v  with all devices running) Perhaps the RPi version 2 board would be better. In any case the presenter is not weatherproof so  I'd like to get hold of a student RF clicker like the Iclicker or an audience response keypad as reverse-engineered in this hack. Ideally we need other ways of communicating.  Voice recognition is one avenue I want to explore although typically the environment is noisy.