I recently had a wide-ranging discussion with Kevin Shaw, CTO of Sensor Platforms. It originated out of this nagging thing I had going on in my head about what can be done exclusively with accelerometers. Early thoughts on the topic stimulated my whimsical figure skating article, but my curiosity hadn’t been satisfied.
The gist of my thinking was that, while, in general, you need an accelerometer and a gyroscope to establish both direction and orientation, if you were in a fixed frame like an automobile, then your direction established your heading, so knowing your direction meant knowing your heading. And you can get direction from an accelerometer. You could even get altitude change by detecting vertical acceleration.
Turns out it’s not quite that simple. Let’s say you’re out in a flat surface (like Nebraska) with an accelerometer that’s perfectly flat – that is to say, coplanar with your flat surface. If it’s a 2-axis accelerometer, then it won’t notice gravity, which would be orthogonal to the two sensed axes. If (as is more likely) you had a 3-axis sensor, then the Z element would detect gravity, and you would subtract that out.
So in both cases, you would calibrate to zero vertical acceleration. And as you drove around on the flatlands, you could figure out where you were. But at some point, you’re going to encounter a hill. Or heck, even an overpass. Now you’ll move vertically. And that’s where it gets tricky.
If you had your sensor mounted in a flexible way that guaranteed it would always remain flat (that is, with gravity being perfectly down), no matter where the car goes, then things would still work. But most of us don’t have that: as we go up a hill, our car tilts, as does any sensor in the car. Gravity is no longer in the Z direction. And we’re only subtracting out gravity in the Z direction. So now gravity is going to show up in some other direction. Not full gravity, perhaps, but a component of it.
The sensor can’t tell whether that appearance of gravity represents gravity in a tilted sensor or acceleration in a flat sensor. And gravity is a large acceleration compared to what our cars can do, so just the mere tilting of the car will suddenly result in a large “leakage” of gravity into the other directions, misleading the accelerometer. That leakage will also reduce what the accelerometer sees in the Z direction, making it think you’re levitating.
This is all the stuff of thought experiments, since we do have and use gyroscopes to eliminate the ambiguity. But I found it an interesting insight into how some of these calculations work as well as a minute aspect of what the sensor fusion guys have to deal with.