本发明涉及脚步运动识别技术领域,尤其涉及一种基于六轴传感器的脚步运动识别方法。

背景技术:

现代人很多非常注重自己的日常锻炼,计步作为一种有效记录、监控锻炼的监控手段,被广泛应用在智能跑鞋中。现有的智能跑鞋在其内安装有三轴加速度传感器,但是它只能简单的计步,不能识别人运动时脚的落地姿态,不利于用户了解自己的走姿或跑姿。

技术实现要素:

本发明的目的是克服目前智能跑鞋中安装三轴加速度传感器,只能简单计步,不能识别人运动时脚的落地姿态的技术问题,提供了一种基于六轴传感器的脚步运动识别方法,其能够识别人运动时脚的落地姿态,便于用户了解自己的走姿或跑姿。

本发明的一种基于六轴传感器的脚步运动识别方法,包括以下步骤:

微处理器读取六轴传感器输出的检测数据,绘制XYZ三轴合加速度的合加速度变化曲线图,检测合加速度变化曲线图中的波峰,当某个波峰对应的XYZ三轴合加速度小于或等于设定值F时,将该波峰去除,当相邻两个波峰之间的采样点小于设定值K时,将这两个波峰中XYZ三轴合加速度最小的波峰去除,波峰对应的时间点为脚落地的时刻;

微处理器判断每个脚落地时刻的脚落地姿态,判断某个脚落地时刻的脚落地姿态的方法包括以下步骤:查找出该脚落地时刻之后的连续N个采样时间点对应的Y轴角速度值,找出这N个Y轴角速度值中的最小值MIN(Gy),从这N个Y轴角速度值中选出位于最小值MIN(Gy)所在的采样时间点之后的采样时间点对应的Y轴角速度值,从选出的这些Y轴角速度值中找出最大值MAX(Gy),计算最小值MIN(Gy)和最大值MAX(Gy)的平均值AVG(Gy),如果AVG(Gy)大于M1或MAX(Gy)大于M2,则判断该脚落地时刻的脚落地姿态为前脚落地姿态,否则判断该脚落地时刻的脚落地姿态为后脚落地姿态。

在本技术方案中,本方法的六轴传感器设置在鞋体内,六轴传感器的X轴正方向朝向鞋体前方,Y轴正方向朝向鞋体左侧,Z轴正方向竖直向上,通过检测人体单脚的运动情况计算出脚落地姿态。

本方法根据合加速度变化曲线图中变化曲线的极大值来判断波峰,当XYZ三轴合加速度超过设定值F时,即可进入波峰的判断条件里面,同时也会引入伪波峰,由于人走路或者跑步的极限频率可以估算出来,波峰之间的间距不会小于K个采样点,所以当两个波峰之间的间距小于K时,即可根据波峰值大小,选取较大的值作为一个计步的波峰,即数值较大的波峰为真波峰,数值较小的波峰为伪波峰。

波峰对应的时间点为脚落地的时刻,通过前面计算的波峰,可以得到脚落地的时刻,从理论上分析,前后脚落地的过程基本都是在绕Y轴旋转的过程,绕Y轴逆时针方向旋转,值为正,绕Y轴顺时针方向旋转,值为负。本方法提取脚落地时刻之后的连续N个采样时间点对应的Y轴角速度值,先找出这N个Y轴角速度值中的最小值MIN(Gy),再找出最小值MIN(Gy)所在采样时间点之后的剩余采样时间点对应的Y轴角速度值中的最大值MAX(Gy),计算最小值MIN(Gy)和最大值MAX(Gy)的平均值AVG(Gy),如果AVG(Gy)大于M1或MAX(Gy)大于M2,则判断该脚落地时刻的脚落地姿态为前脚落地姿态,否则判断该脚落地时刻的脚落地姿态为后脚落地姿态。

作为优选,所述一种基于六轴传感器的脚步运动识别方法还包括以下步骤:微处理器根据合加速度变化曲线图中的波峰数目A计算出当前计步步数B,B=(A-1)×2,当步数B小于c时,缓存步数B的数值,微处理器不输出步数B的数值,当步数B大于或等于c时,微处理器输出步数B的数值。

c≥6,由于只在一只鞋子上设置六轴传感器,合加速度变化曲线图上出现一次波峰,人左右脚各走了一步,所以,波峰与步数是1比2的关系,即一个波峰对应走路2步。由于存在伪波峰,所以最后一个波峰不能判断是否是真波峰,本方法在最新出现一个波峰时,才计算前一个波峰是否是真波峰,所以本方法计步有一个波峰的滞后。缓存步数主要用在判断何时开始进入计步状态,为了避免一些扰动,比如脚的任意晃动等,这里设计了缓存步数就是当步数大于或等于c步时候开始进入计步模式,微处理器输出步数B的数值到显示屏等模块,后面产生的步数将进行累加,在没有达到c步的时候则先暂时缓存这些步数。

作为优选,所述一种基于六轴传感器的脚步运动识别方法还包括以下步骤:当合加速度变化曲线图中的最后一个波峰之后连续d个采样点都没有出现新的波峰时,微处理器结束本次计步,将合加速度变化曲线图清零,如果此时步数B大于或等于c,计算出本次计步的总步数C=B+2。

c≥6,当最后一个波峰之后连续d(如80)个采样点都没有出现新的波峰时,判断人体停止运动,结束计步,总步数加2,即把滞后的最后一个波峰换算成步数加进总步数。

作为优选,所述六轴传感器的检测频率为25HZ ,K为8-15。

作为优选,所述N为8-12。

作为优选,所述M1为80-120度/秒,所述M2为30-50度/秒。

作为优选,微处理器读取六轴传感器输出的检测数据时,采用卡尔曼滤波方法对六轴传感器输出的数据进行滤波。卡尔曼滤波方法使得到的数据更加平滑,计算复杂度更低,效率更快。

作为优选,六轴传感器的数据上报模式采用FIFO模式。

本发明的有益效果是:能够识别人运动时脚的落地姿态,便于用户了解自己的走姿或跑姿,进而矫正走姿或跑姿,避免运动扭伤。

附图说明

图1是本发明的一种工作流程图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:本实施例的一种基于六轴传感器的脚步运动识别方法,如图1所示,包括以下步骤:

微处理器读取六轴传感器输出的检测数据,采用卡尔曼滤波方法对六轴传感器输出的数据进行滤波,绘制XYZ三轴合加速度的合加速度变化曲线图,检测合加速度变化曲线图中的波峰,当某个波峰对应的XYZ三轴合加速度小于或等于1.5g时,将该波峰去除,当相邻两个波峰之间的采样点小于设定值10时,将这两个波峰中XYZ三轴合加速度最小的波峰去除,保留XYZ三轴合加速度最大的波峰,波峰对应的时间点为脚落地的时刻;

微处理器判断每个脚落地时刻的脚落地姿态,判断某个脚落地时刻的脚落地姿态的方法包括以下步骤:查找出该脚落地时刻之后的连续10个采样时间点对应的Y轴角速度值,找出这10个Y轴角速度值中的最小值MIN(Gy),从这10个Y轴角速度值中选出位于最小值MIN(Gy)所在的采样时间点之后的采样时间点对应的Y轴角速度值,从选出的这些Y轴角速度值中找出最大值MAX(Gy),计算最小值MIN(Gy)和最大值MAX(Gy)的平均值AVG(Gy),如果AVG(Gy)大于100度/秒或MAX(Gy)大于40度/秒,则判断该脚落地时刻的脚落地姿态为前脚落地姿态,否则判断该脚落地时刻的脚落地姿态为后脚落地姿态。

微处理器根据合加速度变化曲线图中的波峰数目A计算出当前计步步数B,B=(A-1)×2,当步数B小于6时,缓存步数B的数值,微处理器不输出步数B的数值,当步数B大于或等于6时,微处理器输出步数B的数值并保存。

当合加速度变化曲线图中的最后一个波峰之后连续80个采样点都没有出现新的波峰时,微处理器结束本次计步,将合加速度变化曲线图清零,如果此时步数B大于或等于6,计算出本次计步的总步数C=B+2。

六轴传感器采用MPU6500这款传感器来举例说明,MPU6500传感器设置采样率为25Hz、采集的计算轴为AxAyAz和GxGyGz、加速度的量程设置为正负8g、陀螺仪的角速度量程为正负500度/s和数据上报模式采用FIFO模式等。出于省电考虑,传感器在不工作情况下将进入低功耗模式。在这种低功耗模式场景下还可以被唤醒,这里主要采用运动中断唤醒的方法,就是当XYZ三轴合加速度超过一定阈值(如250mg)时,传感器重新进入工作模式。

本方法的六轴传感器设置在鞋体内,六轴传感器的X轴正方向朝向鞋体前方,Y轴正方向朝向鞋体左侧,Z轴正方向竖直向上,通过检测人体单脚的运动情况计算出脚落地姿态以及运动的步数。六轴传感器输出的检测数据经过卡尔曼滤波方法滤波后,再由微处理器处理识别。卡尔曼滤波方法使得到的数据更加平滑,计算复杂度更低,效率更快。

本方法根据滤波后合加速度变化曲线图中变化曲线的极大值来判断波峰,当XYZ三轴合加速度超过1.5g时,即可进入波峰的判断条件里面,同时也会引入伪波峰,由于人走路或者跑步的极限频率可以估算出来,波峰之间的间距不会小于10个采样点,所以当两个波峰之间的间距小于10时,即可根据波峰值大小,选取较大的值作为一个计步的波峰,即数值较大的波峰为真波峰,数值较小的波峰为伪波峰。

波峰对应的时间点为脚落地的时刻,通过前面计算的波峰,可以得到脚落地的时刻,从理论上分析,前后脚落地的过程基本都是在绕Y轴旋转的过程,绕Y轴逆时针方向旋转,值为正,绕Y轴顺时针方向旋转,值为负。本方法提取脚落地时刻之后的连续10个采样时间点对应的Y轴角速度值,先找出这10个Y轴角速度值中的最小值MIN(Gy),再找出最小值MIN(Gy)所在采样时间点之后的剩余采样时间点对应的Y轴角速度值中的最大值MAX(Gy),计算最小值MIN(Gy)和最大值MAX(Gy)的平均值AVG(Gy),如果AVG(Gy)大于M1或MAX(Gy)大于M2,则判断该脚落地时刻的脚落地姿态为前脚落地姿态,否则判断该脚落地时刻的脚落地姿态为后脚落地姿态。

由于只在一只鞋子上设置六轴传感器,合加速度变化曲线图上出现一次波峰,人左右脚各走了一步,所以,波峰与步数是1比2的关系,即一个波峰对应走路2步。由于存在伪波峰,所以最后一个波峰不能判断是否是真波峰,本方法在最新出现一个波峰时,才计算前一个波峰是否是真波峰,所以本方法计步有一个波峰的滞后。缓存步数主要用在判断何时开始进入计步状态,为了避免一些扰动,比如脚的任意晃动等,这里设计了缓存步数就是当步数超过5步时候开始进入计步模式,微处理器输出步数B的数值到显示屏等模块,显示屏显示步数,后面产生的步数将进行累加,在没有达到5步的时候则先暂时缓存这些步数,微处理器不输出步数B的数值到显示屏等模块,显示屏不显示步数。

当最后一个波峰之后连续80个采样点都没有出现新的波峰时,判断人体停止运动,结束计步,总步数加2,即把滞后的最后一个波峰换算成步数加进总步数。

html5读取运动传感器,一种基于六轴传感器的脚步运动识别方法与流程相关推荐

  1. matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程

    本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法. 背景技术: 目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家.为了降低糖尿病患者长期处于高 ...

  2. 一种基于敏感度可调的语音情感识别方法及系统

    一种基于敏感度可调的语音情感识别方法及系统 技术领域 本发明属于语音识别领域,尤其涉及一种基于敏感度可调的语音情感识别方法及系统. 背景技术 情感是人类交流手段的一种常见的表达方式,在人机交互中起着重 ...

  3. java识别农作物病虫害源码,一种基于微信公众号的农作物虫害识别方法及其系统与流程...

    本发明涉及农业技术领域,具体涉及一种基于微信公众号的农作物虫害识别方法及其系统. 背景技术: 针对目前我国农作物害虫诊断大多停留在人工阶段,存在着客观性差.效率低.劳动强度大等问题,以及现有的基于图像 ...

  4. 一种基于说话人识别和数字语音识别的身份认证方法与流程

    本发明属于语音处理技术领域,具体涉及到对数字语音序列进行说话人识别和语音识别,确定说话人身份的身份认证方法. 背景技术: 说话人识别也称为声纹识别,可以从说话人发出的声音中提取其个性特征,从而识别出当 ...

  5. matlab 零速检测,一种基于车辆零速检测的惯性导航误差修正方法与流程

    本发明涉及车载导航与定位领域,尤其是涉及一种基于车辆零速检测的惯性导航误差修正方法. 背景技术: 惯性导航系统(inertialnavigationsystem,ins)能根据惯性传感器(陀螺仪.加速 ...

  6. matlab模式识别提取特征向量,一种基于小波特征向量提取的手机检测方法与流程...

    本发明涉及到手机检测领域,尤其涉及到一种基于小波特征向量提取的手机检测方法. 背景技术: 随着保密要求的不断提高,很多场合严禁携带手机.录音笔.录像机等电子产品,亟需一种设备可以检测出该类电子产品.目 ...

  7. catia制作物料明细_一种基于CATIA的国标标准物料清单的生成方法与流程

    本发明涉及一种物料清单的生成方法,尤其涉及一种基于CATIA的国标标准物料清单的生成方法. 背景技术: 众所周知,CATIA是法国达索公司的产品开发旗舰解决方案.作为PLM协同解决方案的一个重要组成部 ...

  8. 双向长短期记忆网络模型_一种基于双向长短期记忆网络的定位修正方法与流程...

    本发明属于行人导航定位修正领域,具体涉及一种基于双向长短期记忆网络的定位修正方法. 背景技术: 近些年来,随着室内定位技术的不断发展,很大程度弥补了类似gps等利用卫星信号进行定位而卫星信号穿透力较差 ...

  9. matlab 野值剔除,一种基于多项式拟和的野值剔除方法与流程

    本发明涉及一种基于多项式拟和的野值剔除方法,适用于通信. 导航等测控系统领域. 背景技术: 在通信.导航等测量数据中往往包含了大量的严重偏离被测量真 值的数据点,这些异常数据就称为野值.尽管野值数量较 ...

  10. 皮肤范围检测matlab思路,一种基于S21相位的无创血糖浓度检测方法与流程

    本发明属于微波无创血糖检测技术领域,涉及血糖浓度的检测评估. 背景技术: 社会经济不断发展,随之而来的快速的生活节奏.不健康的饮食习惯.久坐缺乏适当运动的生活方式等都增加了糖尿病的发病率.糖尿病作为一 ...

最新文章

  1. 即将 50 岁的雷军,重新回到手机战场
  2. VC++中的通知消息
  3. c语言中和if语句作用相似的运算符,南开18秋学期(1709、1803、1809)《C语言程序设计》在线作业【答案】...
  4. 面具卡米怎么删模块_魔兽8.3咋肥事——面具带几个收益高?对小怪宝箱水晶有加成吗?...
  5. kvm服务器中心管理,IP KVM如何在公共场所数据中心合理应用
  6. 五月份哪里有有计算机考试,2021年5月全国计算机等级考试报名时间
  7. activemq消息丢失_基于Redis实现消息队列的典型方案
  8. 手机 测试php代码大全,VIVO手机测试指令代码大全
  9. CDSN文章转载方法
  10. 优秀的项目经理应该具备的能力
  11. python中stack.stack_Python stack
  12. 关于获取电信光猫超级密码
  13. CSDN博客中Markdown代码转为pdf
  14. BT源代码学习心得(十):客户端源代码分析(相关对象一览) -- 转贴自 wolfenstein (NeverSayNever)
  15. printf输出bool值 | printf转换符
  16. 初出茅庐的小李第114篇博客项目笔记之机智云智能浇花器实战(3)-基础Demo实现
  17. Mesos的未来DCOS已经明朗化
  18. 使用CityScapes数据集训练实例分割网络YOLACT
  19. 如何用ARIMA模型做预测?
  20. Spark常见故障诊断(一)

热门文章

  1. 进销存mysql数据库_进销存管理系统数据库设计
  2. LoRa网关市场现状及未来发展趋势
  3. 使用Silvaco设计构建NMOS晶体管、PNP、NPN双极型晶体管并提取各项工艺及器件参数:半导体器件和工艺模拟
  4. 原生select下拉框样式修改:去除聚焦的黄色边框样式
  5. vue组件库开发遇到的regeneratorRuntime is not defined
  6. android 微信地图定位失败,微信端H5使用百度地图定位获取当前位置安卓定位不准...
  7. Scrapy + selenium + 超级鹰验证码识别爬取网站
  8. COMSOL仿真软件入门学习(一)
  9. JavaScript(翁凯老师笔记)
  10. RC电路 微分器 积分器 滤波器