3、行人运动特征分析

做惯导这么多年,我始终觉得一个道理特别朴素——你得先懂人怎么走路,才能做好人的导航。这话听起来像废话,但很多做零速修正的同行,恰恰是栽在了「不懂走路」上。

行人运动特征分析,说白了就是搞清楚两件事:脚什么时候是静止的,什么时候在动。你想想看,零速修正的核心不就是靠「脚完全着地」那一段来校准误差吗?如果连这段都找不准,后面再好的滤波算法也是白搭。

核心观点:零速修正的成败,70%取决于零速区间判定的准确性,30%才靠滤波算法。而零速区间判定,又完全建立在对行人步态周期的理解上。

3.1 行人步态周期分析

人的走路过程,其实是一个周期性的重复动作。我习惯把一个完整的步态周期分成两个大阶段:摆动相支撑相

  • 摆动相(Swing Phase):脚离开地面,在空中向前摆动。这时候IMU测量的加速度和角速度变化剧烈,数据噪声大,不适合做零速修正。
  • 支撑相(Stance Phase):脚接触地面,承受身体重量。其中又细分为:
    • 足跟着地(Heel Strike):脚后跟先接触地面,冲击力大,加速度会出现一个明显的尖峰。
    • 全足支撑(Mid Stance):整个脚掌贴地,身体重心移到支撑脚上方。这是零速区间最理想的部分——脚几乎完全静止。
    • 足尖离地(Toe Off):脚后跟抬起,脚尖准备蹬地发力,开始进入下一个摆动相。

我在项目里遇到过一种情况:有些初学者把整个支撑相都当成零速区间,结果发现修正效果很差。为什么?因为足跟着地和足尖离地这两个时刻,脚其实是有微小运动的,加速度和角速度并不为零。你硬把它当零速,反而会引入误差。

我的经验:零速区间只取全足支撑那一段,大概占整个步态周期的20%-30%。具体来说,就是足跟着地冲击过去之后、足尖离地开始之前的那段平稳期。

3.2 足部运动轨迹特征

把IMU绑在脚背上,你会看到什么?我刚开始做实验时,盯着数据曲线看了整整一下午,越看越觉得有意思。

足部运动轨迹有几个典型特征:

  1. 加速度曲线呈「M」型:一个步态周期内,加速度会出现两个波峰。第一个波峰对应足跟着地时的冲击,第二个波峰对应足尖蹬地时的加速。中间那个低谷,就是全足支撑的零速区间。
  2. 角速度曲线呈「S」型:脚在空中摆动时,角速度先正后负,形成一个过零点的S形曲线。零速区间内,角速度应该接近于零。
  3. 高度变化明显:脚离地时高度上升,着地时高度下降。这个特征可以用来辅助判断步态相位。

我记得有一次调试数据,发现加速度曲线在零速区间内居然还有小幅波动。排查了半天,原来是IMU绑得太松了,脚着地时传感器本身在晃动。嗯,这里要注意——传感器安装的刚性直接影响数据质量

3.3 零速区间判定依据

判定零速区间,说白了就是设计一个「门限判决器」。我个人习惯用三种判据组合使用,效果比单一判据好得多。

判据类型 计算公式 物理含义
加速度模值判据 |‖a‖ - g| < Th_a 加速度模值接近重力加速度,说明脚没有主动加速
角速度模值判据 ‖ω‖ < Th_ω 角速度接近零,说明脚没有旋转运动
加速度方差判据 σ²(a) < Th_σ 加速度变化平缓,说明脚处于稳定接触状态

实际应用中,我建议采用「与」逻辑组合:三个判据同时满足,才判定为零速区间。阈值怎么设?这个没有标准答案,跟传感器噪声水平、走路速度、地面硬度都有关系。我一般先采集一段静止数据,统计噪声的均值和方差,然后取3-5倍标准差作为初始阈值,再根据实测效果微调。

避坑指南:我曾经犯过一个错误——阈值设得太宽松,结果把慢走时的摆动相也判成了零速区间。修正后的轨迹看起来平滑,但实际上位置误差反而变大了。后来我学乖了:宁可漏判几个零速区间,也不要误判。漏判只是少了几次修正机会,误判却会引入错误信息。

3.4 典型运动模式分类

行人运动不是只有「匀速直线走」这一种。不同的运动模式,零速区间的特征差异很大。我根据项目经验,把常见模式分成以下几类:

  • 正常步行:步频约1.5-2Hz,零速区间持续时间约0.3-0.5秒。加速度和角速度特征明显,最容易处理。
  • 快速行走/跑步:步频加快,零速区间缩短到0.1-0.2秒。这时候阈值要适当放宽,否则容易漏判。我建议跑步模式下单独调一组参数。
  • 上下楼梯:足部运动轨迹有垂直方向的大幅变化。零速区间仍然存在,但加速度模值判据的阈值需要调整——因为上下楼时重力方向的分量会变化。
  • 转弯/转向:转弯时角速度明显增大,但零速区间内角速度仍然接近零。这个特征可以用来区分转弯和直行。
  • 倒退行走:足部运动轨迹与前进方向相反,但零速区间的特征基本不变。判据不需要调整,但航向推算时要小心。

你想想看,如果只用一套参数去适配所有运动模式,结果会怎样?大概率是「正常走路还行,一跑就崩」。我建议的做法是:先做运动模式识别,再根据模式切换参数。模式识别本身不复杂,用加速度方差和步频就能区分个七七八八。

小结一下:行人运动特征分析是零速修正的地基。步态周期告诉你「什么时候该修正」,足部轨迹告诉你「修正什么」,零速判定告诉你「怎么判断」,运动模式告诉你「怎么适配」。这四个环节环环相扣,缺一不可。

行人运动特征分析知识体系 行人运动特征分析 步态周期分析 摆动相 + 支撑相 足部运动轨迹特征 加速度M型 / 角速度S型 零速区间判定依据 三判据组合逻辑 典型运动模式分类 步行/跑步/楼梯/转弯 足跟着地 全足支撑 足尖离地 加速度模值判据 角速度模值判据 加速度方差判据 核心目标:准确识别零速区间 为惯性导航误差修正提供可靠依据

一点补充:上面这张图是我自己梳理知识体系时画的。每次做新项目,我都会先对着这张图过一遍,看看当前场景下哪个环节最容易出问题。你也不妨试试这个思路——把知识画成图,比死记硬背管用得多。

专注资料整理