GPS is notoriously inaccurate when it comes to vertical positioning. And it disappears entirely inside buildings. So pressure sensors are used to help calculate vertical positioning.
The thing is, a pressure sensor decides your altitude based on the pressure of the air, so it must be comparing it to some baseline. The problem with that is that there is no firm baseline pressure: weather, as we all know, affects the air pressure.
That means that pressure is, first of all, a moving target. Secondly, we can never really know our absolute altitude, only relative.
I posed these questions in a conversation with the Bosch Sensortec team at the MEMS Executive Congress where they were discussing the upcoming release of their new pressure sensors. They talk about being able to handle absolute altitude, so the obvious question is, what about the weather?
There are two pieces to the answer. The first deals with the fact that the baseline pressure isn’t constant. However, compared to pressure changes due to typical motion, the weather pressure changes extremely slowly. (If it’s changing so fast that it could be confused with you moving around, then navigation error is the least of your problems.) From a signal standpoint, the pressure changes of interest can be extracted with a high-pass filter, at least conceptually. More simply, you can think of it as a differential-mode measurement, with actual weather pressure being a common-mode error that’s subtracted out.
That allows you to get a reasonably accurate measure of relative altitude, but what about absolute altitude? Now you need to compare yourself to a sea-level baseline, and that baseline does depend on the weather. Well, there’s no magic available on this. The Bosch Sensortec software can get the data necessary to correct for the current sea-level pressure from the internet. Given that external sanity check, a pressure sensor can provide absolute altitude.
There are a couple other “faster-twitch” effects that can confuse pressure interpretation. The first is simply the fact that some buildings or rooms may have higher or lower air pressure based on the air conditioning or intentional implementation of things like positive pressure for a clean room. Even just opening a door can send a pressure surge. These effects won’t be eliminated or “de-convoluted” in the same way that weather impacts can be. Instead, the pressure data must be fused with other data to decide whether the pressure change reflects a change in altitude. Specifically, if an inertial sensor shows no vertical motion, then the pressure change can be “ignored” (although now it becomes the new baseline).
Pressure measurements also depend on temperature: a local temperature change can register as a pressure change when in fact the pressure didn’t change. Good temperature compensation is required (which is essentially data fusion between a thermometer and a pressure sensor); a pressure sensor less affected by temperature (as is claimed by Bosch Sensortec for their new BMP280) can also help.