基于重力感应的计步器_第1页
基于重力感应的计步器_第2页
基于重力感应的计步器_第3页
基于重力感应的计步器_第4页
基于重力感应的计步器_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现在的智能手机嵌入了一些微小的传感器,比如重力传感器、光传感器、声音传感器等。如何有效地利用这些传感器来开发一些应用,是一个值得深入研究的课题。比如开发医疗健康的应用、运动量监视器等。本文采用htcTouchPro智能手机的重力传感器来开发一款监视步数的程序,程序的关键在于计步模型的建立。智能手机所谓的智能手机是指,具有独立的操作系统,用户可以自行安装第三方应用软件,通过此类程序来对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的手机,它实际上就是一台迷你的个人电脑。智能手机的操作系统主要有:Android,Symbian,WindowsMobile,iPhone,BlackBerry,Linux等。步数识别系统步数识别系统是指运行在移动手机上,能够监视用户走了多少步的应用程序。它一般由以下3个部分构成:•传感器模块,用来采集传感器数据;•特征提取模块,处理和分析原始数据,并进行特征提取、建立模型;•步数识别模块,把所提取的特征用来识别步数。硬件设备重力传感器(G-Sensor)又称为加速度传感器,用来感知加速度的变化,它使用三维方向的加速度分量来表示。G-Sensor被用在很多智能设备当中,比如IBM的高端笔记本电脑内置了G-Sensor,在发生剧烈的拉动时(如跌落),立即启动硬盘保护,避免硬盘损害。再如Apple的iPhone使用G-Sensor来感知手机屏幕的方向,当在观看视频时手机横放,屏幕自动跟着旋转,这使得用户体验大大增加。本文采用htcTouchPro手机上的G-Sensor,同样也适用于htc其它型号的G-Sensor。方案实现日常生活当中,人们使用手机一般是拿在手上,放在裤兜里,女士也经常把它放在包里。因为手机外界环境总是很复杂的,裤兜有松有紧,放在松裤兜的手机比放在紧的更容易抖动,产生的噪音也更多。为了使该算法尽可能的适用于不同的应用环境,需要对大部分的使用环境进行测试。首先,由4个人(8个或更多也可以)各自对不同手机使用环境进行数据收集,因为人们在同样的场合使用手机的习惯是不一样的。其次,对采集来的这些数据分别进行特征提取。最后,使用提取的特征模型进行识别检验。数据采集htcTouchProG-Sensor提供的数据如表1所示。表1.htcTouchProG-Sensor提供的数据

字段含义X加速度在手机坐标X方向的分量大小,类型为doubleY加速度在手机坐标Y方向的分量大小,类型为doubleZ加速度在手机坐标Y方向的分量大小,类型为doubleLength加速度大小,值为曲+丫类型为doubleXangle加速度在手机坐标X方向的分量与地平面的夹角,范围为-180。~180。,类型为intYangle加速度在手机坐标Y方向的分量与地平面的夹角,范围为-180。~180。,类型为intDateTime采样的时间,不是G-Sensor提供的,为了方便算法计算保留采样的时间类型为double本文算法采用的采样频率为20HZ,采样环境有:慢走、快走、跑步、骑自行车、坐的士、坐公交、坐电梯(上/下)、坐地铁、上下楼梯。其中,有走路的采集走100步的数据(慢走、快走等),不是走路的采集1分钟的数据。由于开始和结束的时候放置手机(放口袋、包里)会有一些波动,不是我们想要的,因此这两个时间段的数据可以删去,或不考虑。手机放在口袋,收集的原始Length字段数据,在Excel2007上绘制波形图如图1。横轴为每个采样点的索引,纵轴为Length值大小,也就是加速度大小,值在9.8附近变化。特征提取图1.Length字段波形图

特征提取图1.Length字段波形图由于收集的数据包含有噪声,特别是在两个动作切换之间Length字段值的波动比较大,比如慢走和上楼梯的过程。这里使用快速傅里叶变换(FFT)来处理Length字段的数据,波形图如图2。纵轴已向下平移9.8。LengthFFT■LgngthfFI■LgngthfFI图2.经过FFT处理的Length字段波形图我们发现上面经过FFT处理的波形表现出一定的规则,就是在一定的时间间格内总有一个波谷,我们称这个点为“踩点”(如图3中的1、2、3、4点),也就是加速度最小的时刻(脚往下踩,手机相对有一个往下'掉”的过程)。另外,图3上A点也是波谷,但这一点是一个波动点,需要排除。所以踩点还必须小于一定的值-Threshold。当脚抬起来的时候(“起点”),身体对手机的作用力会增大,加速度也增大。所以起点必须大于Threshold,大于Threshold的都称为起点,因为我们只关心状态的变化。通常地,走路的时候步与步之间的有一定的时间间隔,走快些间隔小,走慢些间隔大。如果是跑的话,人类的极限是1秒种跑5步,也就是1步0.2秒。从起点到踩点状态变化1次就是走了1步。所以,我们建立包含如下2个要素的模型M:Length满足一定阀值,比如一Threshold<Length<Threshold两个连续踩点的时间间隔必须在Timespan(200~2000毫秒)之内

L#ngfhFFT:-:“世uhieJioldTim&spaL#ngfhFFT:-:“世uhieJioldTim&spa门LengthFFT图3.模型满足的条件步数识别我们把建立的模型用来检验在坐的士环境下所采集的数据,波形图如图4.图4.用模型检验的士环境下的数据我们可以看到后面的一段时间是比较平稳的,前面有一些波动,这些波动导致了错误的识别,识别为走路。我们可以改进这个模型,增加一个约束条件:在监视了连续k(比如3)个踩点后才开始计步,所以从图3上标号为4的点开始计步。这样的约束就可以把大部分的抖动给去掉。把最终的模型用来检验所采集的不同环境下的数据得到的计步结果还是比较准确的。存在问题如果拿着手机左右摇摆,采集的数据经过FFT处理后的波形也符合上面的模型,但这并不是走路的状态,产生了错误的计步。直觉上认为这可以通过监视Xangle,Yangle两个字段(在某一范围来回变化)来预防这种情况的发生。但使用htcG-Sensor采集的这两个字段的数据得到的效果并不好。经验教训以上模型使用的数据只有Length字段,其它字段并没有用到。实际上,在决定只使用Length字段建立模型之前,有尝试使用Xangle,Yangle,并推导出Zangle(htcG-Sensor没有给出这个字段),使用这三个角度的状态变化来辅助判断计步。事实上这三个量的数值并不可靠,比如把手机水平放置,做左右摇摆,得到的Xangle,Yangle的范围变化有超过30啲。另外,也可以尝试使用Samsung,iPhone上的G-Sensor,但本文并没有实现该想法。总结使用智能手机来计步这个课题比较新颖,而且很容易实现个人健康监视的手机助理。收集不同使用环境下的数据是一个比较耗时的过程,需要由不同的人员在不同的环境下收集。整个计步的关键过程在于模型的建立,而且必须满足使用手机的任意性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论