卡尔曼滤波在人体姿态检测中的应用
2015-12-21杜波,张卓,刘垚
卡尔曼滤波在人体姿态检测中的应用
杜波,张卓,刘垚
(长春工程学院电气与信息工程学院,长春 130012)
主要研究检测技术与自动化装置。
摘要:为了尽早发现老人的意外跌倒,避免长躺现象,争取救护时间,对人体姿态进行检测。由控制器STM32F103和传感器MPU6050构成信号采集系统,采用无线蓝牙模式进行数据传递,由接收系统进行数据分析和显示。建立人体坐标系,对采集的加速度信号进行卡尔曼滤波,调节参数,补偿测量误差,实现最优估计。对滤波后的加速度信号进行整合,并以角度信号为辅助,进行姿态判断,及时判断跌倒事故。通过Matlab仿真发现,卡尔曼滤波的使用有效地提高了系统的测量精度,有助于姿态判断的实现。
关键词:卡尔曼滤波;姿态检测;加速度信号;Matlab;蓝牙
doi:10.3969/j.issn.1009-8984.2015.03.024
收稿日期:2015-06-29
基金项目:吉林省教育厅项目(120140059;12014K013)
作者简介:杜波(1976-),女(汉),长春,副教授,硕士
中图分类号:TP29献标志码:A
0前言
当今社会老龄化日益严重,无人监护的居家老人频发意外跌倒事故,如果跌倒后躺在地上的时间超过1 h,称为“长躺”。长躺对于老年人来讲很危险,可导致虚弱、疾病,甚至死亡[1]。因此,对人体姿态的检测,特别是对跌倒的及时发现就显得尤为重要,为意外跌倒患者的进一步救护争取宝贵时间,意义重大。
人体在运动中会有很多的信息量,比如速度、角度、加速度等,捕捉人体运动中的特征量,并对其进行分析,从而对人体运动状态进行判断。加速度信号能够体现人体运动的激烈程度,因此,采用加速度传感器对人体运动中的加速度信号进行采集,并进行分析和处理,从而实现人体姿态和跌倒的判断。针对采集的加速度信号进行卡尔曼滤波,使采集波形更加平滑,特征突出,并通过Matlab软件进行仿真,为姿态分析和判断提供准确的数据。
1系统组成
整个系统由采集系统和接收显示系统2部分构成。采集系统通过传感器进行信号采集,并通过无线方式进行数据发送。接收显示系统通过无线方式接收数据,进行数据处理和分析,并实现显示和报警。
图1 系统框图
1.1 控制器
控制器采用STM32F103,STM32F103是ARM公司最新推出的基于ARMv7体系架构的处理器核,具有高性能、低成本、低功耗的特点。STM32F103RCT6是基于Cortex-M3内核的32位微控制器,工作频率为72 MHz,内置高速存储器(高达128 k字节的闪存和20 k字节的SRAM),满足采集频率高,处理数据量大的要求。[2]
1.2 传感器
传感器采用MPU6050(三轴陀螺仪 + 三轴加速度),对加速度和角速度信号进行采集。MPU6050供电电源电压为3~5 V,标准IIC通信接口,芯片内置16 bit AD转换器,16位数据输出,陀螺仪范围:±250°/s、±500°/s、±1 000°/s与±2 000°/s,加速度范围:±2g、±4g、±8g、±16g[3]。MPU6050传感器如图2所示,图3为MPU6050三轴方向示意图,标出了三轴加速度方向和三轴陀螺仪角速度方向,图4为MPU6050与STM32F103接口电路图。
图2 MPU6050传感器模块图
图3 MPU6050三轴方向示意图
图4 MPU6050电路接线图
1.3 数据传递
为了便于信号的采集和输出,采用无线方式进行数据传递,使测量者摆脱导线的束缚,使测量数据更加真实。控制器将采集到的MPU6050的加速度和角速度信号经过蓝牙进行无线发送,可将数据发送到接收系统进行处理和显示,也可以发送到PC机进行Matlab仿真。PC机可通过USB 4.0的蓝牙适配器接收数据,并通过上位机记录测量数据。
1.4 显示和报警
显示器采用OLED显示屏,小巧轻薄,节省电能。报警电路采用蜂鸣报警。
图5 蓝牙模块实物图
图6 蓝牙模块接口电路图
图7 USB 4.0蓝牙适配器实物图
图8 OLED液晶显示电路图
图9 蜂鸣报警电路图
2算法实现
2.1 坐标系
通过传感器采集到的加速度信号一共有3个轴,即X轴、Y轴、Z轴,通过加速度信号可以分析出运动的强度和运动的方向,因此需要建立坐标系。参考Kangas等[4]人的研究结果,将传感器佩戴于人体的不同部位进行测试,发现佩戴于腰部身体中轴时,加速度信号的变化更能够体现人体运动的变化,因此,将传感器佩戴于后腰部正中。人体垂直站立于地面时,使传感器的+Z指向人体的正上方,+Y指向人体的正左侧并平行于地面,+X指向人体的正前方并平行于地面,如图10所示。当人体进行运动时,X、Y和Z轴的加速度信号将发生相应的变化,角速度信号也会有所变化。
图10 坐标系三维方向示意图
2.2 卡尔曼滤波
卡尔曼滤波是通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于输入数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。数据滤波是去除噪声还原真实数据的一种数据处理技术,能够对采集到的数据进行实时更新和处理。
按照奈奎斯特抽样定理,只有当采样频率大于被测信号最高频率的2倍以上时,才能够完整地、无失真地恢复原始信号[5]。人体活动频率不会高于20 Hz,本系统的采样频率为50 Hz,即采样周期为20 ms。系统对采集到的加速度信号进行卡尔曼滤波处理,列写卡尔曼滤波公式如下:
pre=a0,
(1)
式中:pre为预测加速度值;a0为上一状态最优加速度值,假定姿态变化缓慢或不发生改变。
covp=cov0+Q,
(2)
式中:covp为pre的协方差;cov0为a0的协方差;Q为系统过程偏差协方差,即预测偏差协方差。
a1=pre+kg*(data-pre),
(3)
式中:a1为当前状态最优加速度值;data为采集加速度值。
kg=covp/(covp+R),
(4)
式中:kg为卡尔曼增益,R为测量过程偏差协方差。
cov1=(1-kg)*covp,
(5)
式中cov1为a1的协方差。
通过调节预测偏差和测量偏差,从而使数据达到最优。
2.3 加速度信号整合
从检测到的三轴加速度信号直接判别跌倒和姿态并不明显,也并不直观,因此需要对采集信号进行分析和处理。定义AX、AY、AZ为经过卡尔曼滤波的MPU6050输出的三轴加速度信号,对数据进行初步整合:
(6)
SVM表征了人体运动的剧烈程度[6],不同的运动姿态,计算得到的SVM值也将不同,因此,将SVM值当成判断是否跌倒的一个重要依据,表1对快走、慢走、站立和跌倒的SVM进行了整理,当跌倒发生时,SVM值将迅速增大。
表1 SVM值
通过SVM值对姿态和跌倒进行判断还不够准确,因此,以MPU6050输出的三轴陀螺仪信号为辅助,对人体的角速度进行采集和处理,从而通过对角度的变化,进一步判断姿态和跌倒,提高准确度。
3Matlab仿真
Matlab是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。采用Matlab仿真软件实现对采集数据进行卡尔曼滤波,然后计算SVM值,并输出波形。
分别对快走、慢走、站立和跌倒这4种姿态进行数据采集,进行Matlab仿真,并输出波形,如图11~14所示。测试者为男性,22岁,身高180 cm,体重66 kg。一幅图分为3栏,分别为:滤波前和滤波后2个波形的混合输出波形图、滤波前波形图、滤波后波形图。从图形对比,可看出,在进行卡尔曼滤波后,波形形状变得平滑、清晰,滤波效果良好,对后续数据处理和判断很有帮助。
图11 快走波形图
图12 慢走波形图
图13 站立波形图
图14 跌倒波形图
4结语
将卡尔曼滤波应用在人体姿态检测当中,对加速度信号进行滤波处理,经Matlab仿真实现,波形变得平滑,滤波效果明显,达到最优估计,为后续的姿态判断提供了有效的数据保证,提高姿态判断准确性。
Matlab软件的应用,为后续设计提供更加直观的参考数据。蓝牙传输模式的应用,使姿态数据的采集摆脱连线的束缚,使数据更加真实可靠。
系统利用STM32F103和MPU6050构成信号采集系统,对加速度和角速度信号进行采集,通过无线蓝牙方式进行数据传递,接收显示系统接收数据并进行滤波和数据处理,通过SVM和角度值对姿态进行判断,及时发现跌倒现象,具有应用前景。
参考文献
[1] 李春莲.老人跌倒后怎样起身[J].长寿, 2006(12):17.
[2] ST company. STM32F103[M/OL].[2007-01-01].http://www.ALLDATASHEET.com.
[3] InvenSense Inc. MPU-6000 and MPU-6050 Product Specification Revision 3.2[M/OL]. [2011-07-01].http://www.invensense.com.
[4] Kangas M, Konttila A, Winblad I,et al. Determination of simple thresholds for accelerometry-based parameters for fall detection[C]// Engineering in Medicine and Biology Society, 2007. EMBS 2007. 29th Annual International Conference of the IEEE .Lyon:IEEE,2007:1367-1370.
[5] McEwen J, Wiaux Y. A novel sampling theorem on the sphere[J].IEEE Transactions on Signal Processing,2011,59(12):7876-5887.
[6] Jeon A Y ,Ye S Y ,Park J M ,et al. Emergencydetection system using PDA based on self-response algorithm[C]// International Conference on Convergence Information Technology,2007:1207-1212.
[7] 张团善,何颖.卡尔曼滤波在两轮自平衡代步车姿态检测中的应用[J].单片机与嵌入式系统应用,2014(5):33-35.
[8] 朱岩,付巍.基于无迹卡尔曼滤波的四旋翼无人飞行器姿态估计算法[J].测试技术学报,2014,28(3):194-197.
[9] 赵祥欣.基于三维加速度传感器的跌倒检测研究[D].杭州:浙江大学,2008:29-32.
[10] 曹玉珍,蔡伟超,程旸.基于MEMS加速度传感器的人体姿态检测技术[J].纳米技术与精密工程,2010,8(1):37-41.
[11] 王婷,冯文武,罗德超.无线传感器在人体关节运动姿态检测中的应用[J].自动化技术与应用, 2009,28(8): 83-86.
The application of Kalman filter in body posture detection
DU Bo,et al.
(SchoolofElectrical&InformationEngineering,ChangchunInstituteofTechnology,
Changchun130012,China)
Abstract:Human body posture should be detected in order to find senior people falling accident early and avoid long time lying-down, also for saving time for emergency treatment. The signal collecting system composed of controller STM32F103 and sensor MPU6050 uses wireless bluetooth mode to make data transmission. The receiving system can make data analysis and display, and set up the human body coordinates. The system can compensate the measurement error and get optimal estimating for collected acceleration signals that through Kalman filtering and parameters adjustment. It can analyze posture and detect falling accident earlier by integration of filtered acceleration signal, along with Angle signal assist. Through Matlab simulation test, the application of Kalman filtering can improve system measurement precision effectively and be helpful for detection to body posture.
Key words:Kalman filter; posture detecting; acceleration signal; Matlab; bluetooth