GNSS 进楼就哑火:人员定位系统的楼层判定,到底难在哪
一个在监控中心看不出来、到了现场才炸开的问题
先说一个做人员定位的人都碰到过的场景。某厂区做了定位系统,监控大屏上几百个人员图标显示得清清楚楚。楼里出了状况,管理方拿着屏幕上的位置去找人,到了地方发现人不在这一层——同一栋楼,横向坐标偏差不大,纵向差了一整层。地图上两个点重合,实际上一个人在三楼,一个人在四楼。
这不是系统坏了,而是大多数定位系统在室内根本没算"高度"这一维。GNSS 信号穿不了屋顶,进了楼只剩漂移的点;普通的二维定位把所有楼层的位置都投影到同一个平面上,三层的人和五层的人在地图上是同一个坐标。平面定位解决"在哪一片",楼层判定解决"在哪一层",这是两个不同的问题。
这篇文章把楼层判定这件事拆开讲:为什么难,主流的几条技术路线分别怎么解,工程上怎么取舍。
问题定义:垂直维度为什么比水平维度难
先看物理条件。人员定位常用的信号测距手段,无论 UWB 的飞行时间还是蓝牙的 RSSI,解算的都是标签到基站的距离或角度。要做三维定位,锚点的空间分布必须能约束垂直方向。而现实是:
- 室内锚点大多装在墙面或走廊,同一层内的锚点高度差往往只有两三米,几何布局(工程上叫 DOP,精度衰减因子)在垂直方向上天然劣化;
- 楼板、吊顶、密集的人群对信号的反射和衰减没有规律,多径效应让高度解算的误差经常超过半层楼;
- 商用终端上的天线排布、人体遮挡姿态,都会让垂直分量抖动。
另一条路是不做连续的高度解算,直接把"人在几楼"当成一个分类问题。楼层不是连续量,是离散的整数,且大多数应用场景只需要这个整数——考勤按楼层打卡、巡检按楼层签到、报表按楼层统计停留。放弃毫米级的垂直精度,换取"楼层号判对"这个离散结果的稳定,是绝大多数人员定位系统的务实选择。 这也是楼层判定和三维定位经常被混为一谈的原因:目标不同,技术路线就不同。
三条技术主线
业界解决楼层判定的方案,归拢起来是三条主线,对应"猜层、算层、解层"三种思路。
第一条:指纹推断。 在楼内布设蓝牙信标或其他已知位置的信号源,终端扫描后拿 RSSI(接收信号强度)与预先采集或标定的指纹库比对,判断最可能所在的楼层。信标布得密,甚至可以直接用"扫到了哪个楼层的信标"做多数表决。这条线的成本最低,一张智能工牌自带蓝牙芯片就能扫信标,不增加硬件,云端把信标 MAC 地址按楼宇录入,终端开启信标扫描后,平台上的定位方式就从卫星定位切换成了信标定位。精度取决于布设密度,粗一些的做到楼层级,细一些的能到房间级。
第二条:气压推断。 气压随高度变化,对流层内大约每上升 8~10 米气压下降 1 百帕(行业经验值,随温度和天气浮动)。楼层层高一般 3~4 米,对应气压变化只有 0.3~0.5 百帕量级,但 MEMS 气压传感器的分辨率足以分辨这个量级。终端在楼内连续采样气压,解算相对高度变化,落到楼层分箱上。气压计不依赖任何室内基础设施,这是它最大的优点;代价是基准漂移问题——天气变化、空调启停、大门开关都会让整栋楼的气压基准整体移动,需要校正机制。
第三条:三维解算。 UWB 或蓝牙 AoA 这类测距测角技术,直接在三维空间解算坐标,楼层是解算结果的副产物。这条线精度最高,可到亚米级甚至更优,但锚点要覆盖垂直维度的几何约束,天花板或楼梯间都要布站,成本和工程量明显高出前两条。
原理示意(文字描述):把一栋四层楼竖着切开。左侧是三条主线各自的感知方式——指纹路线靠楼内散布的信标"投票";气压路线靠终端自身传感器感知高度差;解算路线靠多台锚点交叉测距。中间汇合到同一个"楼层判定器",输出带置信度的楼层号。右侧接应用:楼层签到、楼层停留统计、分层围栏。
方案对比
| 技术路线 | 楼层判定能力 | 典型精度量级 | 终端成本增量 | 楼内基础设施 | 适用场景 |
|---|---|---|---|---|---|
| 蓝牙信标指纹 | 可稳定到楼层级 | 楼层级至房间级 | 几乎为零(复用蓝牙) | 需布设信标 | 办公楼、园区、养老院等中低密度场景 |
| MEMS 气压计 | 可到楼层级,层间分辨率约一层 | 楼层级(相对高度误差数十厘米到数米) | 低(单价几元到十几元) | 不需要,最好有楼内参考点 | 已有气压计的多层楼宇 |
| UWB 三维解算 | 三维坐标,楼层是副产物 | 亚米级(以厂商实测为准) | 高 | 需按三维几何布设锚点 | 化工、矿山等高价值高精度场景 |
| 蓝牙 AoA | 三维坐标,依赖基站覆盖 | 亚米至米级(以厂商实测为准) | 中高 | 需天线阵列基站 | 室内导航、资产跟随 |
表里的精度都是量级描述,不是承诺值。同一个技术,布设密度、标定质量、楼宇结构不同,实测结果可以差好几倍,选型时以厂商现场勘测数据为准。
技术细节:楼层判定器才是真正的分水岭
很多人以为楼层定位的关键在传感器,做了几年工程会发现,真正决定体验的是判定器这一层的算法工程。无论输入来自哪条主线,最终都要经过三个环节。
第一,滤波。 蓝牙 RSSI 单次读数抖动可以到 10 dB 以上,直接用原始值判层会来回跳。通行做法是滑动窗口加卡尔曼滤波,把短时噪声压下去。气压计的抖动小一些,但楼内人员走动、电梯启停都会造成短时扰动,同样需要平滑。滤波窗口取多长是个权衡:窗口长了判定稳定但响应慢,人已经上了三楼、系统还认为在二楼;窗口短了响应快但容易误判。
第二,滞回与状态机。 楼层是离散状态,状态切换不能只看单次采样。常见做法是设置切换阈值和最小驻留时间:新楼层的状态必须持续满足若干个采样周期才确认切换。电梯是典型的压力测试场景——几秒内跨四五层,期间指纹、气压、解算结果全都在剧烈变化,状态机要保证既跟得上又不震荡。这一段没有标准答案,各家实现差异很大,也是"标称都支持楼层定位、实际体验天差地别"的主要来源。
第三,置信度与降级。 判定器输出不应该只有楼层号,还应该有置信度。扫到的信标横跨两层且票数接近、气压曲线与楼层分箱边界重合,这些情况下应输出低置信度,让上层应用决定是保守维持原状态还是标记为不确定。没有置信度的楼层判定,错误会静默地流入考勤和报表,事后无法追溯。
第四,数据链路与判定位置的选择。 楼层判定放在终端侧还是云端做,是个架构决策。终端侧判定省流量、响应快,断网时楼层状态依然可用,但终端算力和内存有限,复杂的滤波与状态机要精简,固件升级维护成本高;云端判定可以跑完整的算法、随时调参、算法迭代不用碰固件,代价是原始采样要上传,弱网时判定滞后。工程上的折中是两级判定:终端跑一个轻量状态机维持基本楼层号,云端跑完整判定器做校准与修正,楼层号以下沉的终端结果为准、以上浮的云端修正为校准。两条链路的时间戳对齐要做好,否则"云端修正一个终端一分钟前的状态"这种事会制造新的混乱。
从选型到上线:一套楼层判定系统的落地流程
把流程摊开看,有助于理解成本到底花在哪。
第一步,楼宇勘测与建模。 拿到楼宇图纸,确认层数、层高、错层关系、中庭与竖井位置、地下室范围,建楼宇数据模型。这一步的输出决定后面所有技术的约束条件:错层楼不能套通用分箱参数,封闭楼梯间影响跨层布点可行性。
第二步,技术路线确认与试点。 按业务需求选定主线(或组合),选一个典型楼层做试点:布少量信标、放几台终端,跑一至两周,观察判层稳定性和异常分布。试点阶段暴露的问题(覆盖真空、信标混叠、气压漂移量级)远比纸面推演真实。
第三步,标定与全量部署。 分箱标定、指纹采集(如果用指纹法)、信标台账录入全量做一遍。标定要留验收记录:哪天标的、天气如何、标定人是谁。天气不同分箱边界会漂移,标定记录是日后排查的第一手资料。
第四步,联调与考核。 楼层判定结果与门禁刷卡记录做交叉核对,统计一致率;安排人员在天气变化日做全楼上下行测试;把判定器的滞回参数、滤波窗口按现场数据调定。这一步做到位的项目,后期误判投诉能少一大半。
第五步,运行期维护机制。 楼宇变更同步、信标健康巡检(电池耗尽的信标是判定盲区)、楼层判定的抽检制度。楼层定位系统的精度不是出厂指标,是运维出来的。
常见的三个误区
误区一:把二维轨迹当三维用。 系统支持楼层判定之前,很多客户已经习惯用平面轨迹做管理依据。上了楼层判定后,平面轨迹和楼层号有时"对不上"——同一段轨迹在地图上画在三楼位置,楼层号却显示四楼,客户认为系统坏了。其实是平面坐标在楼内的误差本来就有一层楼高,过去没人校验所以没暴露。上线前要给管理方讲清楚这个误差的物理来源,否则信任很难建立。
误区二:追求单一技术的精度极限。 在信标方案上调上几个月参数,不如加一路气压数据。单条技术路线的精度天花板由物理决定,融合破天花板。
误区三:验收只测好天气好时段。 楼层判定系统在风平浪静的下午表现都体面,差距全在极端工况:天气骤变、空调检修、消防排烟启动、下班高峰电梯满载。验收用例必须覆盖这些工况,下文结论里会给出具体测试建议。
评价体系:怎么量化一套楼层判定系统
选型和验收都需要指标,楼层判定的评价体系和二维定位不同,核心是四个量。
判层准确率。 被判楼层与真实楼层一致的采样占比。这个指标的关键在"真值"怎么来:门禁刷卡记录、人工跟测、以及测试时段的工况记录都要留档,否则准确率就是一张没法复核的成绩单。同时要看混淆矩阵——错层集中在哪两层之间,往往能定位到具体的环境问题(比如三、四层之间总错,八成是那一段的楼梯口信标布置有问题)。
切换确认延迟。 从人真正到达新楼层到系统确认切换的时间。延迟大,实时管控场景不可用;延迟小,往往意味着滞回松、跳层风险高。这个指标要和跳层率一起看,单看一个都是误导。
跳层率。 静止或非跨层移动期间发生楼层号变化的频率,单位通常是次每设备每天。这是稳定性指标,也是报表可信度的底线——跳层一次,停留统计就多出两条错记录。
置信度覆盖率。 输出结果里带有效置信度的比例。一个只会输出楼层号、从不输出"我不确定"的判定器,在工程上是不合格的。
四个指标里,判层准确率决定下限,跳层率决定口碑。多数项目的返工,不是因为判层准确率低,而是因为跳层太多让报表失去信任。
局限与边界
楼层判定不是装上就能用的技术,几类场景要诚实面对。
中庭和贯通空间。 挑空中庭横跨多层,信标混叠、气压梯度异常,任何单一技术在这里都不可靠,需要结合门禁刷卡等其他事件源辅助。
跃层与错层建筑。 楼层号与物理高度不再一一对应,简单的按高度分箱会出错,楼宇数据模型必须把错层关系建进去。
地下室与地库。 卫星定位完全失效,如果信标和气压方案都没覆盖,就是盲区。地库层高与出入口坡道对气压法的干扰也需要单独标定。
对"哪一层"无感的场景。 室外作业为主的工地、单一平层的厂房,投入做楼层定位是浪费。技术选型先看业务要不要垂直维度,再谈方案。
结论
楼层判定是把人员定位从二维平面补全到三维楼宇的关键一步,它不是一个传感器,而是一条"感知、滤波、状态判定、置信度输出"的完整链路。蓝牙信标指纹便宜通用,气压计零基础设施但怕漂移,UWB 与 AoA 精度高但成本高,多数成熟系统是几条线的组合。给选型的人一个可执行的判断标准:先看你的应用要"楼层号判对"还是"三维坐标",前者信标加气压的组合通常够用,后者才值得为 UWB 的三维布站买单。