320×400px
🎯 实时计算过程
👆 👆 拖动顶部移动 | 拖动底部调整大小
📊 1. 📊 1. 加速度计读数(原始数据)
accX=0.000g
accY=0.000g
accZ=0.000g
|acc|=√(0²+0²+0²)=1.000g
dynMag=|1.000-1.000|=0.000
融合:未启用 | useFusion=-- | hasGyro=--
🔄 2. 🔄 2. 方向角(加速度→角度)
pitch=atan2(accY,√(accX²+accZ²))×180/π
roll=atan2(accX,accZ)×180/π
pitch=0.0°
roll=0.0°
yaw=0.0°
tilt=√(0²+0²)=0.0°
变化率=0.0°/s
📈 3. 📈 3. 动态阈值(自适应窗口)
阈值=振幅Min + 系数×σ
mean=0.500
σ=0.150
β=0.90
阈值=0.10+0.90×0.150=0.235
⚡ 4. ⚡ 4. 步态检测(振幅>阈值?)
当前振幅= 峰值-谷值
=0.00
=0.00
amp=0.00
0.00 > 0.235❌ 无效
ZCD步态检测引擎 v5
信号源=--
窗口=48
ampFloor=1.50
ampSigma=0.30
dynMag mu=0.000
dynMag sig=0.000
ZCD阈值=0.000
间隔=--ms
振幅=0.000
判定=待定
sensor-zoo步态算法 v6 (Madgwick AHRS + 双计数器)
Adaptive步0
Peak步0
rawMag0.00
uAccMag0.00
qYaw0.0
qPitch0.0
Beta:0.05 Prom:1.5 Cool:0.3 Win:0.6s
主频=0.0Hz (范围:0.6-3.0Hz)
suppress= | conf=100% | tilt=0.0°
roll=0.0° | rate=0.0°/s
🛡️ 5. 🛡️ 5. 方向置信度(稳定性分析)
参考公式≈100−(rollStd+pitchStd+yawStd/yawGate);大字号为引擎综合可信度(与参考式可能不完全相同)
rollStd=0.0°
pitchStd=0.0°
yawStd=0.0°
参考公式≈(0.0+0.0+0.0/35)→--% 引擎=100%
🎯 6. 🎯 6. 最终判定结果
步态
静立
移动
静止
姿态
稳定
累计步数
0
步频: 0.0 步/分
🔍 MQTT服务状态
Nginx
检测中...
MQTT
检测中...
v68:极简MQTT架构,所有设备自动连接到 wss://www.szhkdg.com/mqtt 并订阅同一主题 pdr/v2/all.
新功能: 手机-手机配对功能,配对成功后双方显示对方的传感器数据。
设备模式:自动:PC环境→展示,手机环境→采集(使用 ?mode=mobile|pc 覆盖)
迷你地图 / PDR HUD
空闲
N TRACK / MOBILE SENSOR
等待轨迹数据...
当前暂无有效步进位置。
融合轨迹 原始轨迹 当前位置 / 朝向

🚀 PDR 前端调试 · v19 单一Broker · ZCD + sensor-zoo · 0406v68

0406v64:简化架构配置,删除多个Broker的旧描述:wss://www.szhkdg.com/mqtt
0404v56:① ① PC UI改为WebSocket优先 - 连接状态优先显示Relay WS,MQTT断开不影响"已连接"提示;② 移动状态更新逻辑修改 - WS已连接时不显示MQTT断开警告;③ ③ MQTT仅作为备用桥接,不影响主通讯功能显示。
0332:缩小MQTT传感器包体积(避免公共Broker拒收大包);电脑端同步手机 hasGyro/融合 状态;连接后记住伙伴ID,滑块参数可同步。 数据仍走 /stream+/data双主题QoS1。
0331 MQTT 兜底:データ走 /stream + /data 双主题、QoS1、序号去重;手机测试期2s心跳;PC订阅双通道。仍请两端同一Broker(URL参数一致)。
保留: 手机采集/电脑展示权限分离,只增不减,原结构保留。

1. 1. 设备模式

本机联机ID(8位,给对方输入):
根据浏览器环境自动进入手机采集端或电脑展示端;若识别不准可用 ?mode=mobile o ?mode=pc para forzar.
手机:采集传感器数据 → 电脑:展示数据波形和轨迹

2. 2. 控制区

连接状态:正在初始化设备和MQTT连接...
等待开始测试。
实时调参状态: 已就绪。
参数版本号: v6; 最近修改参数: ; 最近修改时间: --.
当前模式:手机采集/电脑展示分流;slider仅作辅助;手机滑块显示优化已启用。
🎯 权限修复规则:
1. 1. 电脑端不再参与任何传感器权限申请
2. 2. 2. 手机端才允许申请权限;
3. iPhone / iPad 上で最初にクリック“请求传感器权限”,次にクリック“开始测试”;
4. PC側点“开始测试”起動しないセンサー监听,展示のみ;
5. 5. 5. 这样可以避免电脑端打开相同网页后扰乱手机权限流程;
6. 6. 如果手机授权后仍无数据,请优先使用 Safari / Chrome 正式浏览器,不要用微信内置浏览器。
参数快照区
当前页面支持将整套参数保存到本地localStorage,刷新后仍可恢复。
暂无参数快照
クリック“保存当前参数快照”后,这里会列出スナップショット。

3. 3. 参数设置

3.1 3.1 保留原有参数输入区域
当前策略:α=0.98;步态频率带=0.5~3.5Hz;连续有效步数≥2;姿态变化率阈值=150°/s;倾斜上限=120°;Yaw抑制阈值=180°;融合步姿态可信度门槛=20%;移动中门槛=10%;疑似步态门槛=5%。
3.2 3.2 参数影响力排行面板
当前参数影响力排行
排行实时更新;卡片默认不实时换列,仅更新内容与标记。
全开放输入 + slider辅助 + 超范围直接执行 + 手机滑块显示优化 + 权限修复
阻碍通过判定参数比例
等待实时数据...
0%
Open Param System + 手机传感器修复 + 电脑展示端
手机负责采集权限与数据,电脑只展示,不再碰权限逻辑
本版核心是修复采集流程:手机端负责申请传感器权限和数据采集,电脑端只是展示界面,不再触发权限逻辑。 これにより大幅に削減可能“権限は成功したがデータコールバックなし”的混乱した状況。 同时保留全开放参数系统和手机滑块可视化增强。
3.3 3.3 全判定逻辑滑块区
🔥 高影响参数组
固定槽位区。手机上已改为稳定单列显示。参数允许超范围执行。
Roll 放出上限 0%#--
90°
リアルタイム: |roll|=0.0° | 設定:45° ✅ 放行
【計算】rollAllow > |roll| 时放出。roll加速度計で計算:roll = atan2(accY, sqrt(accX²+accZ²))×180/π。【合成】rollAllow = 直接設定値。
姿态变化率抑制阈值 0%#--
150°/s
リアルタイム: 0.0°/s | 設定:60°/s ❌ 抑制
【計算】attitudeRate > attitudeRateGate 时抑制。attitudeRate由姿态角差分:attitudeRate = d(roll)/dt 或 d(pitch)/dt。【合成】attitudeRateGate = 直接設定値。
姿态倾斜上限 0%#--
120°
リアルタイム: tilt=0.0° | 設定:50° ✅ 放行
【計算】tilt > tiltGate 时抑制。tilt加速度で計算:tilt = |pitch| 或 sqrt(pitch²+roll²)。【合成】tiltGate = 直接設定値。
融合步放行最小姿态可信度 0%#--
20%
リアルタイム: 100% | 設定:42% ✅ 放行
【計算】attitudeConfidence = 1 - (rollStd/tiltGate + pitchStd/tiltGate + yawStd/yawGate)。【合成】attitudeConfidenceGate = 直接設定阈值。
移动中判定最小姿态可信度 0%#--
10%
【計算】同attitudeConfidence。【合成】移动判定需 attitudeConfidence > moveConfidenceGate 才判为移动。
疑似步态最小姿态可信度 0%#--
5%
【計算】同attitudeConfidence。【合成】疑似判定需 attitudeConfidence > suspectConfidenceGate,用于过渡ステータス。
移动中最小连续有效步数 0%#--
2
【計算】consecutiveValidMoveSteps 累加。【合成】連続有效步数 ≥ moveStepNeed 才判为"移动中"。
最小步间隔 0%#--
200ms
【計算】相邻峰谷时间差 dt。【合成】dt < minInterval 的峰谷对被丢弃,认为是噪声或非步态动作。
融合步幅度下限(基础值) 0%#--
0.05
リアルタイム: amp=0.00 | σ=0.150 | 阈值=0.235
【計算】振幅 = peak - valley。【合成】振幅 > fusionAmpMin 才算有效步。实际阈值 = fusionAmpMin + fusionAmpSigma × sigma。
融合步幅度sigma系数 0%#--
0.50
【計算】sigma = std(振幅Window)。【合成】实际阈值 = fusionAmpMin + fusionAmpSigma × sigma。系数越大对噪声越敏感。
🟠 中影响参数组
固定槽位区。slider只是辅助,不是边界。
真实移动dynMag下限 0%#--
0.50
【計算】dynMag = sqrt(accX² + accY² + accZ²) / g - 1。【合成】dynMag > dynMagMove 视为有动态运动证据。
Yaw 漂移抑制閾値 0%#--
180°
【計算】yawStd = std(yawSeries)。【合成】yawStd > yawGate 时抑制(防漂移干扰步态判定)。
Roll 惩罚归一化阈值 0%#--
90°
【計算】rollPenalty = roll / rollPenalty。【合成】|roll| 越大惩罚越大,振幅 × (1 - rollPenalty) 影響步幅計算。
姿态稳定性抑制阈值 0%#--
20%
【計算】stability = 1 / (1 + rollStd + pitchStd + yawStd)。【合成】stability < stabilitySuppress 时抑制步态判定。
步态频率下限 0%#--
0.5Hz
【計算】dominantFreq = fft(振幅Window)。【合成】dominantFreq < gaitFreqLow 时判定为非人行频率,丢弃。
步态频率上限 0%#--
3.5Hz
【計算】dominantFreq = fft(振幅Window)。【合成】dominantFreq > gaitFreqHigh 时判定为非人行频率,丢弃。
动态阈值强度 β 0%#--
0.50
【計算】dynamicThreshold = mean(振幅) - β × std(振幅)。【合成】β越大阈值越高,越严格。
带通主频窗口长度 0%#--
48
窗口长度任意实验。
原始步幅度下限(基础值) 0%#--
0.05
原始リンク开放实验。
原始步幅度 sigma 系数 0%#--
0.90
允许任意 sigma 实验。
🔵 低影响参数组
固定スロットエリア。所有参数都可以像游戏控制台一样实验。
弱移动dynMag判定上限 0%#--
0.55
【計算】dynMag = sqrt(accX²+accY²+accZ²)/g - 1。【合成】dynMagWeak < dynMag < dynMagMove 时判定为弱移动。
弱移动振幅上限 0%#--
0.16
【計算】振幅 = peak - valley。【合成】振幅 < weakAmp 且 < fusionAmpMin 时判为弱/疑似步态。
摆臂误判振幅上限 0%#--
0.22
【計算】振幅 = peak - valley。【合成】振幅 < armSwingAmp 时可能判为手臂摆动而非行走。
摆臂误判姿态变化率倍率 0%#--
1.20x
【計算】effectiveRateGate = attitudeRateGate × armSwingRateMul。【合成】手臂摆动时使用放大后的阈值。
spinLike dynMag 上限 0%#--
1.00
【計算】dynMag = sqrt(accX²+accY²+accZ²)/g - 1。【合成】dynMag < spinDynMag 时判定为原地旋转而非移动。
无步抖动姿态变化率阈值 0%#--
45°/s
【計算】attitudeRate = d(pitch)/dt 或 d(roll)/dt。【合成】attitudeRate > noStepShakeRate 时判定为无步抖动动作。
无步抖动最小步数上限 0%#--
2
【計算】无步态序列中的候选步数。【合成】> noStepCount 的无步态序列被抑制。
姿态稳定性窗口 0%#--
24
【計算】windowSize = attitudeWindow。【合成】窗口越大姿态稳定性分析越平滑,但也越滞后。
说明: 本版正式采用游戏化参数系统:
1) 所有 input 都可输入任意值;
2) 不再强制 min / max 裁剪;
3) slider 只做辅助,不再拥有覆盖权;
4) 输入超出 slider 范围时,系统仍按真实输入值执行;
5) yaw / roll / tilt / pitch 相关参数全部开放实验;
6) モバイル滑块区已重做样式与布局,避免表示不出来;
7) 权限逻辑已修复:PC側不再トリガーセンサー权限申请。
現在为全开放实验模式:所有主要判定逻辑参数均可任意输入,超出 slider 范围照样执行。

4. リアルタイム结果与重点判定

人体移动判定: 未開始。
判定原则:姿态异常、原地旋转、纯電話动作優先抑制;只有步态与姿态证据同时成立时,才判为移动。
人体是否移动 重点功能
未開始
结合步态证据与姿态稳定性证据联合判定
累計有效步数(融合)
0
峰谷ペアリング + 频带约束 + 姿态约束
累計距離(融合)
0.00 m
逐步累加
現在ステータス
未開始
未開始 / 未移动 / 疑似步态 / 移动中
現在步频
0.00 Hz
最近有效步序列估计
姿态可信度
--
サポート与各判定参数的リアルタイム影響联动分析
原始リンク步数
0
基于原始模长的对照リンク
姿态抑制状态
--
旋转过强 / 倾斜过大 / 姿态不稳定时触发
项目 原始リンク 融合リンク 说明
检测输入 原始模长 重力补偿后导航系垂向动态加速度 融合リンク更能抑制姿态变化影響
姿态参与度 本版参数完全开放,适合实验展示与“极值演示”
現在原始步数 0 0 リアルタイム对照
現在原始距離 0.00 m 0.00 m リアルタイム对照
Pitch (俯仰)
0.00°
互补滤波输出
Roll (侧倾)
0.00°
互补滤波输出
Yaw (航向)
0.00°
开放到 0~360,并サポート超范围实验值
姿态变化率 变化
0.00°/s
高变化率时优先抑制误判
姿态倾斜角
0.00°
由 Pitch/Roll 合成
姿态稳定度
--
越高说明姿态变化越平滑
主步态频率
--
落在步态频带才作为有效证据
原地动作抑制标记
--
原地摆臂 / 转圈 / 抖電話優先判为未移动

5. データ展示窗口

現在原始模长
--
融合主信号
--
高阈值
--
低阈值
--
トリガーステータス
未激活
最近步间隔
--
峰谷振幅
--
姿态可信度
--
姿态抑制
--
移动判定
--
現在版重点:
1) PC側不碰权限逻辑;
2) モバイル正常申请权限;
3) モバイル正常测;
4) 電話滑块表示修复保留。
暂无传感器信息。
融合ステータス:未起動

6. 判定说明

本系统判定的是“人是否真实发生位移”
本版强调参数开放与结果直出:
- 不对输入做保守裁剪;
- 允许极端参数做演示和实验;
- 系统尽量直接反映输入的真实效果;
- 适合科技展示、实验交互和参数探索;
- 現在已完成電話滑块表示优化;
- 現在已修复权限逻辑:電話収集,电脑展示。
© 2026 步数と距離計算 京ICP备2026014367号-1
技术驱动 · 开放共享