同一段气压曲线,电梯、楼梯和站着不动是三个故事——气压与 IMU 融合的垂直运动识别

一、开篇:气压计没有骗人,是电梯在骗人
某写字楼项目联调,工程人员乘电梯从 1 楼直达 11 楼,终端报出的楼层却是 9 楼。查数据发现:气压计全程工作正常,但电梯下行的活塞效应让井道气流先压低再回弹,轿厢内的气压计读数先冲高、后回落,用首尾气压差算出的高度差比真实值矮了两层。第二天换走楼梯,同样的两个人,气压差算出来又“合理”了。
这两个场景背后是同一个问题:气压差只能告诉你高度变了多少,不能告诉你高度是怎么变的。 而楼层判定恰恰需要知道“怎么变的”——乘电梯、走楼梯、还是原地没动,三种模式的气压曲线长得完全不一样,处理策略也该完全不一样。这一篇拆解垂直运动识别:用气压计加惯性传感器,把乘梯、爬楼和静止分开,让楼层判定建立在“运动模式”之上,而不是裸的气压差之上。
二、问题定义:楼层判定缺的不是传感器,是运动上下文
主流卡片式、腕式定位终端都集成了 MEMS 气压计和三轴加速度传感器。气压计负责垂直维度的绝对参考:终端进入楼宇后,用室外露天固定放置的基准站上报的海平面基准大气压作对照,按层高换算楼层,这是气压楼层定位的基本框架。惯性传感器负责平面与运动感知:计步、里程、运动与静止识别,都是它的本职。
但两条线各自为战时都有硬伤:
- 气压线:海平面附近大气压换算高度,每一百帕大约对应八米的高度差,而常规层高三到四米,也就是说一楼层对应零点四帕上下的气压差。空调启停、开关门的活塞风、天气过程的自然气压变化,幅度都能轻易超过这个差值。裸气压差判层,噪声和信号在同一量级上纠缠;
- 惯性线:加速度计二次积分得高度,漂移在几十秒内就会累积到不可用,它给出的垂直速度只能看趋势,不能当绝对位置。
单独看,两条线各有死穴;合起来看,恰好互补:气压计慢但稳,负责“绝对高度”;惯性计快但漂,负责“运动模式”。 垂直运动识别就是把两者拧在一起的融合层。
值得强调的是,运动模式的识别结果本身就是业务数据,不只是判层的中间变量。平台侧的运动监测按段统计步数、运动时长与距离,停留记录单独记录停留时间与停留位置——这些既有能力都是按“平面运动”组织的,垂直维度的运动模式一旦识别出来,就能把“乘电梯上楼”“走楼梯下楼”“原地停留”补进同一套按段统计的框架里。楼层停留统计的口径也随之变严谨:电梯里的两分钟不应算进任何一层的停留时长,而应算作“层间移动”。这些业务口径的修正,都依赖运动模式识别这一层先立起来。
三、技术原理:三种运动,三种曲线指纹
把三种典型垂直运动放进同一张拓扑图里看:静止时气压缓慢漂移、加速度近似为零;走楼梯时气压按层高台阶式下降、加速度呈周期性步态脉冲;乘电梯时气压在十几秒内快速大幅变化、加速度呈启动-匀速-制动三段式。识别层的工作就是从气压与加速度双通道里把这三种指纹分开,再交给楼层判定层按各自策略处理。
电梯的指纹最好认。 加速度计上,电梯启动有约一平方米每秒量级的短暂超重或失重脉冲,随后是接近零的匀速段,到达时再来一次反向脉冲——整个包络十几秒到一分钟。这个三段式特征在水平走路时不会出现(步态脉冲小得多、且周期性)。气压通道上,乘梯期间气压变化速率远超开关门引起的风压扰动。两个通道同时命中,就判定为电梯模式。
走楼梯的指纹在步态里。 上下楼的步频、步幅与平地行走不同,垂直方向的加速度分量呈现规律的起伏,计步算法里的垂直位移估计(步数乘以经验步高,或用气压台阶校准)可以给出“走了几层”的粗估。楼梯模式的气压曲线是台阶状的:每上一层停顿一下,气压跟着跳一档。
静止的指纹是漂移。 人在工位坐着不动,气压计的读数并不老实:空调风场、门窗开合让它在真实值附近做低频摆动。识别出静止模式后,楼层判定层可以直接冻结楼层输出,把这段气压漂移当作噪声滤掉,而不是当成“人在微动”的证据。
类比一下:气压计像一支走得慢但准的体温计,惯性计像一块走得快但会漂的秒表。单独用哪支都量不准,融合的意义在于让秒表负责“什么时候量、量的时候人在干什么”,体温计负责“量的结果是多少”。
融合的工程实现不必然复杂。最小可行的融合可以很轻:气压通道按固定窗口算高度差变化率,加速度通道算合加速度的包络特征,两个特征拼成一个二维判别——垂直变化率高且加速度包络呈三段式,判乘梯;垂直变化率低且加速度呈周期脉冲,判走梯;两者都低,判静止。判别结果不是一次性输出,而是维持一个带迟滞的滑动状态,模式切换需要连续两个窗口一致才翻转。这套轻量逻辑在低算力的卡片终端上可以端侧运行,也可以把原始数据回传云端识别——端云怎么分工,取决于终端算力预算与上报流量预算的平衡,两种取舍各有项目在用。
四、方案对比:四条垂直判层路线
| 路线 | 核心依据 | 抗扰能力 | 主要短板 | 适用场景 |
|---|---|---|---|---|
| 裸气压差分 | 首尾气压差换算层高 | 弱,受风压与天气干扰明显 | 电梯活塞效应、气压漂移直接致错 | 简单楼宇、低速步行场景 |
| 纯惯性推算 | 加速度二次积分/步态推层 | 中,短时可用 | 漂移累积,长时不可用 | 卫星与信标均失联的短时段补位 |
| 气压+惯性融合 | 气压定绝对值,惯性定运动模式 | 好 | 需要模式识别与状态管理 | 生产环境主力路线 |
| 融合+楼层证据校准 | 再叠加 NFC 触碰、按楼层签到等强证据 | 最好 | 依赖点位部署密度 | 楼层判定精度要求高的场景 |
第四条路线本质上是在融合层之上再加一层“人工校准”:人在楼层签到点刷卡的动作,等于给垂直运动识别的结果盖了一个确认章。卡片式终端普遍支持 NFC 触碰签到,平台侧签到点本身就支持楼宇并指定楼层,这两项能力组合起来,就是垂直判层最便宜的纠错手段。
五、技术细节:工程上真正要花功夫的五个点
基准站的纪律性。 气压楼层定位的硬前提是室外基准站:必须露天固定放置,持续上报海平面基准大气压。基准站一旦被人挪到屋檐下、搬到车里,参照基准就失效,全楼层的判层跟着漂。现场最常见的问题不是算法不行,是基准站被保洁挪了位置。位置搬动或天气气压变化后都要重新校验——这句要写进运维手册,而不是写进部署方案就完事。
层高与首层海拔的标定。 平台侧建楼宇模型时要按层高设楼层、填首层预估海拔并指定地平层。层高填错半米,整栋楼的判层系统性偏移半层。标定不要抄图纸,拿终端在首层和标准层各测一组气压,反推实际层高更可靠。老建筑改造后的夹层、错层,是标定时最容易漏掉的陷阱。
滤波的截止频率。 气压通道的低通滤波要把步态抖动、风压毛刺滤掉,同时保住乘梯期间每秒几帕的快速变化。截止频率选高了一步态噪声漏进来,选低了电梯快速跨层时响应迟钝。经验做法是用运动模式自适应:静止和步行时滤波窗口长,检测到电梯特征时窗口收窄。
零速修正的垂直版。 平面惯导里的零速修正(ZUPT)在垂直维度同样适用:人静止站立时把垂直速度强制归零,阻断积分漂移。乘电梯的匀速段没有零速可用,靠制动脉冲收尾,把段内高度增量记到起止两层之间。
并联电梯与中庭。 两部电梯并排、人到底进了哪部,垂直运动识别分不出来——但这不重要,重要的是运动模式被正确识别为“乘梯”。真正麻烦的是开放中庭:中庭周边几层的气压互相连通,风压扰动跨层传播,气压判层在中庭附近要降权,让信标证据多扛一点。这是部署期就该做的区域化权重设计,不是联调期才补的补丁。
天气过程与基准数据的日内校验。 大风、寒潮这类天气过程会让室外气压在半小时内变化几十上百帕,折算高度差就是几十米——远超楼层判定能容忍的范围。基准站持续上报海平面基准大气压的意义就在于此:终端与基准站做的是同时间窗的差分,天气带来的共同漂移在差分里被抵消掉大半。工程上要做的是校验逻辑:当基准站与终端的气压差在无人移动时段持续增大,先怀疑基准链路(基准站断链、上报停滞)而不是怀疑所有人都同时在“垂直移动”。把这条校验做成例行巡检项,比等报表出现整层漂移再倒查要省力得多。另一个实用技巧是夜间静默期标定:凌晨人员全部离场后,楼宇内所有终端的气压读数就是当天各楼层气压的“标准照”,第二天的判层阈值可以拿它做基准复核。
误判的代价要按业务分级。 运动模式识别是概率判别,工程上要接受它偶尔出错,并把出错代价纳入设计:把“乘梯”误判成“走楼梯”,代价是中间层多落了几条观测,状态机的滞回能兜住;把“静止”误判成“移动”,代价是停留统计被稀释,报表层面能事后修正;但如果判层结果直接联动到按楼层配置的签到任务或楼宇门禁类业务,误判代价就变成业务事件,这时必须叠加强证据(NFC 触碰、按楼层的签到确认)再放行。同一套识别引擎,在不同业务出口上应该有不同的置信门槛——这是分层设计的价值:识别层专注识别,业务层自己决定信到什么程度。
六、局限与边界
垂直运动识别解决的是“运动模式分类”,不是“位置精修”。它把裸气压差的粗判变成有上下文的判层,但气压计的物理精度、信标的部署密度、楼层模型的标定质量,这些上游环节的天花板它抬不动。
几个天然不友好的场景要如实交底:超高层建筑里,气压随高度的非线性与天气过程的叠加让基准换算变复杂,需按厂商资料确认适配能力;通风井串联的老式楼宇,跨层气流让楼层间的气压边界模糊;双层轿厢电梯、跃层住宅这类“一步半层”的空间,任何离散判层都要面对半层归属的模糊问题。
还有一点必须说清:垂直运动识别是统计意义上的判别,乘梯识别的准确率再高,也不能把它的输出直接当应急处置的依据去承诺系统做不到的判定能力。涉及安全责任的场景,楼层结论要与签到点、门禁等强证据交叉核验后再使用。
七、结论
楼层判定要准,先要懂人怎么动。气压计给绝对高度,惯性传感器给运动模式,两者融合后,电梯、楼梯、静止三条路径各走各的判层策略,裸气压差的两大死穴——活塞效应和漂移噪声——才真正被绕开。
给一个可执行的建议:评估或自检一套气压楼层定位系统时,专门安排一次“乘梯测试”——从一层直达顶层,看系统报出的起止楼层和中间层的落库行为。 中间层有假停留、止层偏差超过一层,说明垂直运动识别这一层缺失或没调好;测试通过,这套系统在电梯场景下的楼层可信度才算立住了。