在 IMU + 气压计的楼层融合定位场景里,EKF(扩展卡尔曼滤波)在楼梯间很容易出现楼层判断错误,而粒子滤波虽然能解决楼梯间这种状态跳变的问题,但它的计算开销大、硬件成本高,这是两种滤波器底层假设不一样造成的,不是简单调参就能完全修好。EKF 默认位置、高度的后验概率是单峰高斯分布,楼梯上下楼属于状态跳变,同一时刻存在 “还在本层” 和 “已经到邻层” 两种可能性,是双峰分布,EKF 没法同时表达两种假设,只能把置信区间拉宽,最后高度和楼层跟着噪声乱跑,出现楼层跳错;粒子滤波不用高斯假设,用大量独立粒子携带不同位置、楼层假设,能同时保留多个可能性,匹配楼梯这种离散跨层场景,但粒子数量直接决定精度,粒子越多,循环计算、权重更新、重采样的运算量线性上涨,手机、低功耗手环这类嵌入式设备跑起来压力很大。工程上做楼层定位一般不会二选一,大多会用 EKF 做连续平滑,搭配少量粒子或者地图约束做跨层修正,平衡精度和功耗。大家做方案选型的时候,要先看终端算力、是否频繁上下楼梯、气压环境稳不稳定,再决定主滤波方案。
两种滤波器核心对比清单
| 项目 | EKF 扩展卡尔曼滤波 | 粒子滤波 PF |
|---|---|---|
| 概率假设 | 强制后验为单峰高斯分布 | 用采样粒子近似任意分布,支持多峰 |
| 楼梯间表现 | 容易误判楼层(俗称撒谎),跨层跳变时误差放大 | 可以同时保留多层假设,楼层识别更稳 |
| 计算复杂度 | 低,矩阵运算,适合低功耗设备 | 高,算力随粒子数量线性增加 |
| 噪声适配 | 适合高斯噪声,非高斯、跳变场景容易失效 | 适配非高斯、离散状态跳变场景 |
| 内存开销 | 小,只维护均值、协方差矩阵 | 大,需要存储大量粒子状态和权重 |
| 典型适用场景 | 走廊平缓行走、连续高度平滑 | 楼梯、电梯、多候选假设的楼层判定 |
楼层定位融合实战步骤
- 传感器原始采集:读取 IMU 加速度、角速度、气压计高度,做基础去噪;
- 运动状态判断:区分平地行走、上楼、下楼、静止、电梯移动;
- 主滤波选择:普通走廊优先 EKF 做连续轨迹平滑;进入楼梯区域切换粒子辅助或者混合滤波;
- 楼层约束校正:传入建筑层高表、楼层地图,剔除不符合物理规则的粒子;
- 异常校验:气压突变、通风口干扰时,降低气压观测权重,依赖步态做楼层判定;
- 输出结果:融合后输出二维坐标 + 楼层编号,同时输出置信度;
- 调优落地:控制粒子数量,必要时做自适应粒子数,避免设备卡顿。
各自优缺点梳理
- EKF 优点:计算快、功耗低、代码简单,平地场景定位顺滑;缺点:楼梯这种状态跳变场景模型不匹配,容易楼层误判,气压扰动时漂移明显。
- 粒子滤波优点:模型限制少,能处理上楼、下楼这种离散跨层,多候选假设不容易丢楼层;缺点:算力开销大,重采样会出现粒子贫化,粒子太少精度差、太多实时性崩盘。
- 混合方案优势:平时 EKF 维持轨迹,检测到楼梯步态时,触发少量粒子做楼层假设校验,兼顾功耗和跨层准确率。
【相关 FAQ】
问题 1:楼层定位融合术里,EKF 为什么会在楼梯间撒谎、楼层判断出错?
回答 1:楼层定位融合术里 EKF 默认后验是单峰高斯分布,楼梯上下楼属于状态跳变,同一时刻存在两层的可能性,属于双峰分布,EKF 无法表达多假设,置信区间被撑开,就容易楼层误判。
问题 2:楼层定位融合术里,粒子滤波贵在哪里,为什么算力成本高?
回答 2:楼层定位融合术里粒子滤波贵在计算开销,它需要大量粒子采样、权重更新、周期性重采样,运算量和粒子数量成正比,在手机、穿戴设备上会拉高功耗,硬件算力要求更高。
问题 3:楼层定位融合做方案,是不是直接放弃 EKF 只用粒子滤波效果最好?
回答 3:楼层定位融合不建议直接放弃 EKF 只用粒子滤波,平地场景 EKF 足够稳定还省电,一般采用混合方案,EKF 负责连续轨迹,楼梯场景用粒子辅助修正楼层。
问题 4:楼层定位融合场景,气压计扰动会加重 EKF 在楼梯间误判吗?
回答 4:楼层定位融合场景,通风、空调带来的气压扰动会放大高度噪声,进一步破坏 EKF 的高斯假设,会加重 EKF 在楼梯间楼层误判的概率。
【参考资料】
[2026-11-11](楼层定位的融合术:为什么 EKF 会在楼梯间撒谎,粒子滤波又贵在哪里)搜狐网
[2026-10-25](IMU + 气压计楼层定位:扩展卡尔曼滤波失效场景分析)InfoQ
[2026-09-12](室内行人定位粒子滤波算力开销与粒子数优化)掘金
[2026-08-03](基于步态与气压融合的楼层识别算法对比)传感技术学报
【免责声明】
本文内容基于室内定位滤波算法公开技术文章整理,EKF、粒子滤波的实际表现还受传感器精度、建筑层高、气压扰动、地图约束等因素影响;本文仅为算法原理科普,不构成工程落地唯一方案;实际项目需要结合硬件、功耗指标做仿真与实地测试。
