Cracker Barrel: Reconstructing Position

Randall Maas 5/25/2010 8:57:28 AM

In the summer of 1990 I started as a student assistant for an oceanographer at the University of Washington's Applied Physics Lab. Somewhere along the way I was given a task to reconstruct where on earth (literally) a measurement was taken. I was given a few different tapes, and copies of handwritten logs. From there I tried to estimating position of measurements based on these different sources: the ships logs, recordings from the navigation equipment, the sensor itself, and so on.

Historical background

Wait, let's take a step back. Remember that this is the summer of 1990, and I was given tapes. This was pre-Gulf War, so GPS was an expensive gizmo that didn't work well yet. A GPS unit cost thousands of dollars, and required external antennas. The tapes were for data collected a year earlier, when there might be an hour or two a day where the GPS actually got a fix on your location. Second, did I mention TAPES? This was the reel-to-reel kind of tapes you saw in movies. Tapes were strange: we had rules that we had to re-tension the tapes before I used them, so that they had the best chance of being read.

(Re-tension? What is that!?! That means I had to put the tape in the machine and have it completely unwind, onto another spool, and then rewind onto the current spool. And by "machine" I mean I the tape player that it was written with, or so darned close that it was likely to be reliably read from.)

Anyway, back to story...

The Navigation Loop

The first tape I was given had data from the lab's instrument, which was sent into the ocean and recorded measurements at each depth. This included magnetic sensors that tracked its movements. (The sensor was pretty cool, since it used the earth's magnetic field to see how it moved; you still needed to know where it started though). There was a miscellaneous set of files from the scientific survey had other instruments that they wanted to merge the data with, including data from an instrument package called a SeaBird. And there was a tape that had the data log from the ships navigation systems (NAVLOOP) that was intended to provide data on where the ship was that put the probe in the water.

The navloop is pretty cool. Basically is a text file of records, about once a second, from a bunch of different instruments on the ship. Like a gyroscope, the GPS receivers, depth sounder, rudder position, magnetic compass, LORAN receiver, and so on. This tells you the ships orientation, speed, position, the environment, and a whole lot of other things.

Now the problems mount

The first problem was that none of the clocks matched quite right.

The second problem was that the handwritten logs were pretty sparse, and only useful for crude alignment.

Third, a scientific instrument attached to the side of a steel ship has limited use. For oceanographers, it might be because the water next to a ship moves with the ship, has a higher temperature and so forth. But it also means that the magnetic compass is useless. This was the case with the SeaBird.

Fourth, instruments on the navloop disappeared and reappeared. This might be due to it being serviced, or added. But in this case it was because the ships crew had a fellow changing the software during the cruise. This added a bug here and there, and fixed a bug here and there.

Fifth, just because a boat says has speed and direction, you can't use this to figure out its position very easily. The boat may be turning, which throws everything off. And the boats speed is measured relative to the water, which is moving. And so on.

GPS was available then, but only for a few hours day, if at all. (Remember this was before the Gulf War, so there weren't a lot satellites available). Loran was available, but it was sporadic and didn't match other items.

Reading this you might think: use a Kalman filter to integrate it all, silly boy. There are two problems: first, I did understand the basic idea of integrating position, acceleration, etc. but the data needed to be seriously cleaned up to know which acceleration went with which position, etc. Second, the sample period was pretty bad for Kalman filtering. Third, at the time the only material I had on Kalman filters was hair linear algebra with lots of derivatives, making it far from clear how it related. (Since then I've learned a bit how to simplify the Kalman approach).

The end result wasn't perfect. In effect, the processing tracked when an instrument or a field was not to be used. It tracked rough corrections for them. It gave precedent to major points that were known (every few hours) and tried to interpolate a speed of travel for them. This interpolation wasn't quite linear, since I was looking at all of this data. But the data wasn't good enough to be a pure velocity * time calculation.