APP下载

基于四元数卡尔曼滤波的多轴传感器协同人体跌倒监测研究

2022-03-06李平黄同成胡俣华曾文飞

关键词:姿态滤波加速度

李平,黄同成,胡俣华,曾文飞,段 顼

(1.邵阳学院 机械与能源工程学院,湖南 邵阳,422000;2.湘西南农村信息化服务湖南省重点实验室,湖南 邵阳,422000)

近年来,老年人因跌倒所致健康问题成了社会关注的重点[1-3]。据调查,2003—2018年,65~74岁年龄段的老年人因跌倒而导致死亡的上升趋势明显,75岁及以上年龄段老年人跌倒死亡率最高[4]。因此,对老年人进行跌倒监测和预防,不仅可以避免因跌倒导致的一系列严重后果[5],还可以为家庭减轻精神和经济负担,具有比较重要的现实意义[6]。

有学者对跌倒监测提出了一些技术解决方案。例如,基于环境嵌入声学、压力或红外线传感器的跌倒监测方法虽然成本较低,不涉及用户隐私,但往往受到室外环境限制[7]。基于视频帧或图像监视器的跌倒监测方法,尽管准确率较高,但容易侵犯用户隐私且设备安装复杂[8]。因此,人们开发了基于穿戴传感设备的跌倒监测系统[9]。该方法通过包含加速度计等运动传感设备来进行数据收集,并根据姿态数据判定老年人是否有异常行为或跌倒趋势[10]。当识别到异常数据时,向护理人员或负责健康的操作员发送信号,同时允许通过可访问网络的平台进行长期监控[11],具有可移动、无遮挡等优点。

基于穿戴传感设备的跌倒监测受到研究人员的广泛青睐。例如,PANNURAT等[12]使用无线传感器和三轴加速度计构成一个传感器监测单元,发现在躺卧姿势期间误报率比较多。LEE等[13]利用表面肌电图和足底压力信号,并提取它们的特征来识别日常活动和跌倒数据的分类。解决了可穿戴设备的诸多不便,但在应用场景上只能分辨行走和跌倒,应用场景单一,同时也限定了只能穿有特定鞋垫的鞋才能监测。CIRILLO等[14]使用矢量测量来稳定姿态,依然会遇到一些较大的噪声干扰。

因此,针对上述问题,本研究实现了一种基于多轴传感器协同的人体跌倒监测系统。利用MPU-9250型传感器,引入四元数和姿态角分析不同活动的差异,结合Kalman滤波得到最优值,经多级阈值算法判断人体的行为姿态。这样采集到的人体跌倒数据比较全面、准确,最终的跌倒判断就会更可靠、稳健。

1 系统概述

1.1 系统架构

跌倒监测和响应系统架构见图1,可以将老年人姿态数据、跌倒判断结果、定位信息以无线的方式发送到服务器端。多线程服务器端可以对紧急跌倒数据传入提供非匀质服务,迅速地向急救服务端发送求救信息以及老年人的位置信息,紧急联系人和医院可以迅速采取救援措施,避免老年人受到二次伤害。系统分为4个模块:1)硬件设备,包括STM32微处理器、MPU-9250传感器、WIFI模块、GPS通信定位模块、电源模块;2)服务器;3)协调中心;4)由紧急联系人和医院组成的急救服务。

1.2 硬件模块

硬件模块的微处理器是整个硬件部分的核心,负责处理和分析传感器获得的原始数据,跌倒识别判断和急救报警功能。MPU-9250传感器集成了3轴陀螺仪、3轴重力加速度计和3轴电子磁力计,具有尺寸小、能耗低、集成性高的优点,解决了使用多种传感器时出现的轴之间的差异问题。模块的输出数据为16位,传输速率能达400 kHz/s。三轴陀螺仪测得的角速度范围为±250,±500,±1 000及±2 000(°)/s,具有出色的动态响应特性。测量范围为±2,±4,±8及±16 g的三轴加速度计可以满足高精确测量的要求。三轴磁力计磁感应强度能达±4 800 μT。通信定位模块,可以通过短信联系紧急服务号码,在尽可能短的时间内对所发生的跌倒作出应急响应,由于发送的紧急短信包含地理定位信息,急救人员可以快速精确定位老年人的位置。

2 跌倒分析算法

跌倒监测主要用来区别跌倒行为和日常生活的活动行为(activities of daily living,ADL)[15]。将MPU-9250九轴传感器,穿戴在人体的腰部,将监测到的初始数据生成一个四元数数组[16]和3个特征(姿态角)。通过这种方式,保证在有少量特征的基础上,不仅含有丰富的物理信息,而且能够适用于任何可研究的活动中。还评估了惯性传感器的数量及其位置对人体姿势和活动识别的影响。在这种情况下,在识别过程中使用较少数量的特征及四元数,则可以缩短计算时间[17]。数据漂移、电压波动、机械噪声,这些因素都会影响跌倒监测算法的准确性和有效性。针对这些问题,可以使用Kalman滤波算法得以解决,最后,采用多级阈值算法来识别跌倒和ADL姿态,增加判断跌倒的真实可靠性。

2.1 四元数法

利用四元数解算姿态角弥补了欧拉角法中因旋转而出现万向节死锁的缺点,在旋转插值方面有较大优势。 复数是由实数加上虚数单位i 组成。四元数是一种空间复数,与复数相似,四元数Q都是由实数q0,q1,q2,q3加上i,j和k 3个虚数单位组成,每个四元数都是1,i,j和k的线性组合,即一般可用式(1)表示,它还可以用式(2)和式(3)两种形式表示。

对于i,j和k本身的几何意义可以理解为一种旋转,其中,i旋转代表Z轴与Y轴相交平面中Z轴正向向Y轴正向的旋转,j旋转代表X轴与Z轴相交平面中X轴正向向Z轴正向的旋转,k旋转代表Y轴与X轴相交平面中Y轴正向向X轴正向的旋转,-i,-j和-k分别代表i,j和k旋转的反向旋转。因此,它是一种空间复数,其优越性还在于只需要一个四维的四元数就可以执行绕任意过原点的向量的旋转,方便快捷,此四元数法又称四参数法。

复数式:

Q(q0,q1,q2,q3)=q0+q1i+q2j+q3k

(1)

(2)

其中,∂是实数;u是单位向量。

(3)

(4)

使得四元数能够直接反映人体的姿态角变化状态,将其转化为以姿态角的形式表示,其中,α表示横滚角,γ表示俯仰角,φ表示航向角,用相互垂直的x,y和z3个轴来表示导航坐标系,进行旋转,可以从以下关系式获得姿态角。

用欧拉角表示的m至N系的左边变换矩阵为

(5)

(6)

由式(5)和式(6)的对比可以得出姿态角如下:

(7)

2.2 Kalman滤波算法

Kalman滤波算法的基本原理是,依照系统的输入及输出的数据变化进行观测,在已知的条件下,对含有复杂混乱的噪声数据结合上一状态的统计误差和当前监测值的误差来估算出当前状态的最优值。去除复杂噪声、复原真实测量数据来进行处理[18]。采用Kalman滤波算法进行预处理,让数据更可信。Kalman滤波算法有下面4个步骤:

1)估计k时刻预测值

X(k|k-1)=AX(k-1|k-1)+BU(k)

(8)

式中:X(k|k-1)是基于k-1状态得到k时刻的预测方程的结果;X(k-1|k-1)是k-1状态的最优值;U(k)是k时刻控制值。其中,A和B为系统参数,A表示状态从k-1到k在没有输入影响时的转移方式,A和B是系统参数,对于多模型系统,他们为矩阵。B表示U(k)对X(k)的影响因子。

2)计算k时刻预测值的协方差并测量其精度:

P( k|k-1)=AP(k-1|k-1)AT+C

(9)

式中:P(k|k-1)是X(k|k-1)的先验估计协方差,是滤波结果;P(k-1|k-1)是X(k-1|k-1)的后验估计协方差;AT是A的转置矩阵;C是系统过程中的噪声协方差。

k时刻卡尔曼增益系数:

(10)

式中:R为系统测量噪声的协方差;H为测量系统的系数;HT是H的转置矩阵。

3)计算k时刻卡尔曼滤波值:

X(k|k)=X(k|k-1)+Kg(k)[Z(k)-HX(k|k-1)]

(11)

式中:X(k|k)为现在计算所得的最优化估算结果,即此次滤波后的结果;Z(k)是k时刻实际的观测值。

上述滤波中的噪声也会影响其响应的速度及效果。因此,要稳定各项系数初始值,这样才可以消除部分噪声对测量值的影响,估计出稳定的最优值,从而提高测量准确性。

2.3 算法验证

采用Kalman滤波算法,首先,对测量到的信号数据进行滤波以及误差补偿。然后,利用Kalman滤波算法融合其估计值和测量值,使最终数据无限趋于实际值。对加速度计的监测数据进行相应的滤波处理,见图2。利用加速度计进行姿态角估计时,主要是考虑重力加速度,产生的线性加速度和随机误差就产生了干扰,因此,进行滤除。对角速度动态数据进行处理,见图3。对磁力计磁场强度数据经滤波后的结果,见图4。

图2 加速度滤波前后对比图Fig.2 Comparison of acceleration before and after filtering

图4 磁场强度滤波前后对比图Fig.4 Comparison of magnetic field intensity before and after filtering

将滤波前的图像进行误差补偿和滤波后的图像进行实时性比较,见图2~4。可以看出:Kalman算法明显抑制了测量数据的漂移量。Kalman滤波器可使测量数据中的大量异常数据进行纠正,这对后续使用多级阈值算法进行跌倒识别发挥了作用。

2.4 多级阈值算法

通过加速度、角速度和姿态角分级识别老年人的姿态和ADL的区别,选择合适的阈值来判定老年人是否跌倒。阈值算法优势在于算法响应快,所需时间短,能更快判断跌倒。多级阈值算法流程具体如下:

1)设定静止状态的合加速度阈值Accstatic=0.3 g,g表示重力加速度。若人体的实时合加速度Acc(t)大于静止状态合加速度的阈值Accstatic,判断非静态,反之,则为静态。

2)利用运动状态的阈值AccP=1.5 g与合加速度均方根值Acc(t)进行比较,当持续大于既定阈值时,则判定有剧烈运动行为;反之,则属于ADL范围[19]。

3)老年人的跌倒朝向一般可分为4个方向。每种朝向的跌倒就会导致人体姿态角的变化,因此,在人体处于剧烈运动时,姿态角同时也发生了剧烈变化,可以将其认为疑似跌倒行为。根据实验数据分析,可知跳跃过程中的变化范围在20~28 deg以内,在快速步行过程中在20 deg发生轻微的震荡,而合姿态角为Angle(t),合姿态角阈值为AngleFall=60 deg,当Angle(t)≥AngleFall时,将从中识别出疑似跌倒行为,将其与正常的剧烈运动区分开[20]。

4)人体正常活动范围内的行为和跌倒状态的角速度值存在变化差异。当系统监测到疑似跌倒行为时,通过监测人体角速度是否发生了明显变化,最终确认是否发生跌倒,根据合角速度Gyr(t)变化情况,设定合角速度GyrFall,阈值为62 deg/s,可将近似跌倒和跌倒行为进行区分[20]。

3 结论

本文将四元数法和卡尔曼算法应用于多轴传感器协同的老年人跌倒监测研究,经实验仿真,利用Kalman滤波算法对监测数据处理。从图2~图4可看出:测量结果修正后能够达到理想的优化状态,在跌倒姿态判断中能得到较为精确的监测数据。实验结果通过多级阈值算法进行判定,在合加速度超过2.5 g,合姿态角超过60 deg时,并且合角速度达62 deg/s时,便可判定为跌倒状态。可见,将四元数及卡尔曼滤波算法应用于跌倒监测中,利用一种简单快速的多级阈值判定算法,提升了跌倒监测的速度,实现了对老年人的行为姿态的判断,区分出ADL和跌倒行为,为老年人的人身安全提供保护。

猜你喜欢

姿态滤波加速度
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
攀爬的姿态
天际加速度
全新一代宋的新姿态
跑与走的姿态
创新,动能转换的“加速度”
死亡加速度
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波