editor's blog
Subscribe Now

Gravity Leaking

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.

Leave a Reply

featured blogs
Aug 14, 2018
I worked at HP in Ft. Collins, Colorado back in the 1970s. It was a heady experience. We were designing and building early, pre-PC desktop computers and we owned the market back then. The division I worked for eventually migrated to 32-bit workstations, chased from the deskto...
Aug 14, 2018
'€œPrediction is difficult, especially the future.'€ '€” Niels Bohr Okay, in my post last week , I revealed that I was a deterministic Newtonian, and my reasoning was about two hundred years old. I posited, '€œIf I could identify all the forces and weights and measur...
Aug 14, 2018
Introducing the culmination of months of handwork and collaboration. The Hitchhikers Guide to PCB Design is a play off the original Douglas Adams novel and contains over 100 pages of contains......
Aug 9, 2018
In July we rolled out several new content updates to the website, as well as a brand new streamlined checkout experience. We also made some updates to the recently released FSE locator tool to make it far easier to find your local Samtec FSE. Here are the major web updates fo...
Jul 30, 2018
As discussed in part 1 of this blog post, each instance of an Achronix Speedcore eFPGA in your ASIC or SoC design must be configured after the system powers up because Speedcore eFPGAs employ nonvolatile SRAM technology to store its configuration bits. The time required to pr...