[Cyborg] indoor positioning system using magnetometer
tomm.fire at gmail.com
Tue Jul 10 18:08:33 PDT 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