[Cyborg] indoor positioning system using magnetometer

Tomm tomm.fire at gmail.com
Wed Jul 11 01:08:33 UTC 2012

On 7/10/12 5:08 PM, miloh wrote:
> shouldn't using a combo of magnometer, accelerometer, along with entry 
> and exit points for GPS allow for precise dead reckoning to map 
> building interiors?
Nope - not for more than a few minutes.  Accumulated errors on 
accelerometer reads tends to cause drift, which needs to be zeroed out 
from time to time.

I did a project about 15 years ago reading an accelerometer using a 10 
bit ADC at ~20 khz.  After 30 seconds of walking down a hallway and 
stopping (0-2 m/s and back to 0 m/second), the device never thought I 
was completely stopped: it would invariably think I was still moving in 
a random direction at a few cm/second.  Even though it tracked my 
movements with 99.95% accuracy, after a few minutes, the accumulated 
error would indicate I was in the next room.  Even though I now know 
that my signal conditioning was crap back then, and electronics are a 
lot better now with 16-20 bit ADCs, the issue of accelerometer drift 
isn't gone.  If you enter a building and use dead reckoning for an hour, 
you might as well be playing pin-the-location-on-the-map unless you're 
using a variety of sensors/methods to zero out this drift.  GPS could 
work, but it doesn't work indoors or in tunnels (a common problem on 
vehicle nav systems).  I think they're using footfalls (or a lack 
thereof) to zero out drift errors, or at least, that's how I'd do it.  
But since most phones either bounce around in a pocket or swing around 
in a purse, and even footfall detection could be challenging.

Also, magnetometers are very slow devices, updating at 1-10 Hz or so.  
If you walk quickly around a curved corridor, your average angle error 
will be a few degrees, and over a 50m hallway, that's some significant 
Abbe error.  Spacecraft use gyro feedback while executing a spin 
maneuver because a gyro can provide 1khz+ update rate, then will use 
star tracking to determine final orientation. But then you've got two 
angle-sensing devices: what do you do when they disagree?  That's what a 
Kalman Filter is used for: integrating data from multiple sources with 
weightings for accuracy (ie, you know when your GPS data is bad because 
you don't get any, and you know when your accelerometer data is bad 
because it hasn't been zeroed in 15 minutes).


More information about the Cyborg mailing list