手机挥剑姿态实验

使用 Android 手机本身的陀螺仪、线性加速度计和姿态传感器,测试握持姿态、快速挥动和短时平移在游戏控制中的可用性。

挥剑实验桌面监视页面
桌面监视页:3D 剑体、剑尖位置、速度与加速度矢量、传感器数据。

浏览器原型

200 HzGyroscope / LinearAccelerationSensor 请求频率
1 s静止偏置校准时间
12.5 Hz服务器监视快照上传频率

浏览器版本优先使用 Generic Sensor API;不可用时回退到 DeviceMotion 与 DeviceOrientation。传感器计算在手机端完成,服务器主要接收监视快照。

处理流程

Gyroscope + LinearAccelerationSensor ↓ Static bias calibration ↓ Grip orientation calibration ↓ Device → world coordinate transform ↓ Filtering / deadzone ↓ Short-window velocity & position integration ↓ Stationary detection ↓ ZUPT velocity reset ↓ 3D monitor

位移估计

已使用的处理

  • 加速度和陀螺仪静止偏置估计。
  • 软死区和低通滤波。
  • 运动窗口与静止检测。
  • 短时速度积分与位置积分。
  • 检测静止后执行 ZUPT,将速度归零。
  • 轴向位移范围限制,控制长时间积分漂移。

当前限制

  • 姿态变化可以较稳定地映射到剑体旋转。
  • 平移位置需要两次积分,对传感器偏置和时间误差非常敏感。
  • 快速前刺、抽回等短时动作容易出现位置幅度不稳定。
  • 浏览器传感器接口的采样与时间戳能力有限。

开发阶段

网页传感器采集

先确认手机能否稳定提供高速陀螺仪与线性加速度数据。

握持姿态校准

以当前持剑姿势建立相对坐标,使不同握持方向能落到统一剑体坐标。

3D 监视

建立桌面监视页,显示剑体方向、位置、轨迹、速度和加速度。

短时积分与 ZUPT

加入静止判断和速度归零,限制单次动作结束后的累计漂移。

Android 原生分支

建立 SensorManager 原生测试项目,用于继续测试更直接的传感器采样路径。