本发明涉及检测
技术领域:
,特别涉及一种跌倒检测方法、系统和存储设备。
背景技术:
:由于身体机能随年龄增长而逐步退化,以及受到一些慢性疾患的影响,老年人极易受到突发跌倒的威胁,而发生跌倒后没有第一时间被发现并得到救助往往会引发更加恶劣的后果,因此研究具有实用价值的跌倒检测装置及系统非常有意义。目前跌倒检测的解决方案主要有基于视觉和基于传感器两大类,基于视觉的跌倒检测受限于图像质量、布置成本、隐私安全等因素,不利于实际部署与使用,基于传感器的跌倒检测系统具有更高的实用价值。而基于传感器的跌倒检测系统需要综合考虑系统复杂度、检测准确性等问题。“浙江大学城市学院,一种跌倒检测方法、跌倒检测装置和手腕式设备,中国发明专利,cn102657533a,2012.09.12”公开的基于三轴加速度计的跌倒检测装置,虽然整体系统简单易实现但是简单依靠加速度计传感器容易出现误判。“中国科学院深圳先进技术研究院,用于判断人体跌倒的方法,中国发明专利,cn103142234b,2015.04.01”采用单轴倾角传感器结合六轴传感器模块辅助判断,跌倒检测可靠性增加的同时也在一定程度上增加了系统复杂度,不利于系统的小型化、可穿戴化。另外,在现有基于传感器的跌倒检测装置中,很多是基于人体初始姿态为竖直来进行判断检测的,并未对竖直跌倒和坠床跌倒加以区分识别,这将导致在坠床跌倒场景下容易出现误判漏判。技术实现要素:为此,需要提供一种跌倒检测方法,用以解决现有跌倒检测方法,对竖直跌倒和坠床跌倒区分精准度差的问题。具体技术方案如下:一种跌倒检测方法,包括步骤:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。进一步的,所述“根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角”,具体还包括步骤:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。为解决上述技术问题,还提供了一种存储设备,具体技术方案如下:一种存储设备,其中存储有指令集,所述指令集用于执行:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。进一步的,所述指令集还用于执行:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。为解决上述技术问题,还提供了一种跌倒检测系统,具体技术方案如下:一种跌倒检测系统,包括:运动传感器模块、cpu模块、天线模块、开关模块、电源模块、充电模块、led指示模块;所述电源模块分别连接所述运动传感器模块、所述cpu模块和所述充电模块;所述cpu模块分别连接所述天线模块、所述开关模块、所述led指示模块和所述运动传感器模块;所述cpu模块包括:处理器和无线通讯子模块;所述运动传感器模块用于执行步骤:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;所述cpu模块用于执行如下步骤:步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。进一步的,所述cpu模块还用于执行如下步骤:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。进一步的,所述无线通讯子模块包括:蓝牙和wifi模块;所述天线模块用于与所述蓝牙和wifi模块进行通讯。进一步的,所述运动传感器模块型号为lsm6dsl。本发明的有益效果是:通过执行步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。上述步骤可有效地将竖直跌倒和坠床跌倒有效地区分开,提高跌倒检测的正确率,降低其误报率。附图说明图1为具体实施方式所述一种跌倒检测方法的流程图;图2a为具体实施方式所述人体竖直的运动传感器三维方向示意图;图2b为具体实施方式所述人体平躺的运动传感器三维方向示意图;图3为具体实施方式所述一种存储设备的模块示意图图4为具体实施方式所述一种跌倒检测系统的模块示意图。附图标记说明:300、存储设备,400、一种跌倒检测系统,401、cpu模块,402、运动传感器模块,403、天线模块,404、电源模块,405、开关模块,406、led指示模块,407、充电模块,4011、处理器,4012、无线通讯子模块,40121、蓝牙,40122、wifi模块。具体实施方式为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。请参阅图1、图2和图4,在本实施方式中,一种跌倒检测方法可应用在一种跌倒检测系统上,所述跌倒检测系统的模块连接图如图4所示,其中所述跌倒检测系统中的运动传感器模块即是用来采集x方向、y方向、z方向的初始加速度和角速度;cpu模块即是用来对对初始加速度和角速度进行计算。首先结合图2a和图2b,对人体直立和坠床翻滚跌倒的过程做一些说明:根据人体直立和坠床翻滚跌倒过程中失重时间不同,以及三维加速度方向的不同变化,并结合合加速度阈值与角度变化阈值,对人体竖直跌倒和坠床翻滚跌倒进行分类检测。如图2(a)所示,人体在竖直姿态下运动传感器的三维轴向关系为:y轴与重力加速度g方向相反,x轴与z轴平行于水平支撑面与x轴垂直且满足右手定则;如图2(b)所示,人体在水平姿态下运动传感器的三维轴向关系为:x轴与重力加速度g方向相反,y轴与z轴平行于支持面于人体相垂直且满足右手定则。根据习惯,将人体绕x轴旋转产生的角度称为俯仰角,将人体绕y轴旋转产生的角度称为偏航角,将人体绕z轴旋转产生的角度称为横滚角。请参阅图1,一种跌倒检测方法的具体实施方式如下:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度。具体可为:跌倒检测设备开机或者是开始工作就开始获取运动传感器的x方向、y方向、z方向的初始加速度和角速度。这三个方向的初始加速度和角度上用于后续判断人体初始姿态为竖直还是水平,以便于对两种姿态的跌倒进行分类检测。步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角。步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4。步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11。具体可如下:利用步骤1所获取的x方向、y方向、z方向的初始加速度计算得到合加速度acc_svm值,判断acc_svm值是否小于阈值a1,不满足则返回步骤1,满足则记录acc_svm值连续小于阈值a1的次数,如果超过n1次则进行下一步,如果不超过n1次但是超过n2次则跳转到步骤11,如果不超过n2次则返回步骤1。合加速度值计算方法为:其中acc_x表示x方向的加速度,acc_y表示y方向的加速度,acc_z表示z方向的加速度。可以理解的,滚床跌倒相比于竖直跌倒的失重时间短,因此阈值n2小于阈值n1,具体阈值根据传感器采样频率决定。步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1。若为是,则说明处于竖直初始姿态的人体发生近似跌倒的失重行为,进入竖直跌倒判断分支。步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1。步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1。步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9。步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1。具体可如下:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若“是”则说明初始姿态为竖直的人体发生跌倒,触发跌倒告警事件;若“否”则返回步骤1。可以理解,初始姿态为竖直的人体发生跌倒时,发生向前或者向后的跌倒情况下是俯仰角发生明显变化,发生向左或者向右的跌倒情况下是横滚角发生明显变化,因此在该步骤只需要判断俯仰角或者横滚角的角度变化差值是否超过阈值θ1。步骤10:发出跌倒告警提示。步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则说明处于水平初始姿态的人体发生近似跌倒的失重行为,进入坠床跌倒判断分支,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。可以理解,初始姿态为水平的人体发生跌倒时,坠床翻滚会导致偏航角发生明显变化,因此在该步骤只需要判断偏航角的角度变化差值是否超过阈值θ2。需要说明的是,上述步骤中的相关参数可通过实验等方法获得,其典型值如下表所示。参数典型值单位a111米/秒2a26.9米/秒2a319.6米/秒2a40.8米/秒2a58.5米/秒2a614.7米/秒2n16次n23次t1400毫秒t21000毫秒t3150毫秒t4500毫秒θ140度θ250度进一步的,所述“根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角”,具体还包括步骤:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。其中,deg2rad为转换系数,取值为0.01745。rad2deg为弧度转换为度系数,取值为57.3。通过上述方法可有效地将竖直跌倒和坠床跌倒有效地区分开,提高跌倒检测的正确率,降低其误报率。请参阅图2至图3,在本实施方式中,一种存储设备主要为任意可用于计算的设备,如cpu等。具体实施方式如下:一种存储设备,其中存储有指令集,所述指令集用于执行:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度。具体可为:跌倒检测设备开机或者是开始工作就开始获取运动传感器的x方向、y方向、z方向的初始加速度和角速度。这三个方向的初始加速度和角度上用于后续判断人体初始姿态为竖直还是水平,以便于对两种姿态的跌倒进行分类检测。步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角。步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4。步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11。具体可如下:利用步骤1所获取的x方向、y方向、z方向的初始加速度计算得到合加速度acc_svm值,判断acc_svm值是否小于阈值a1,不满足则返回步骤1,满足则记录acc_svm值连续小于阈值a1的次数,如果超过n1次则进行下一步,如果不超过n1次但是超过n2次则跳转到步骤11,如果不超过n2次则返回步骤1。合加速度值计算方法为:其中acc_x表示x方向的加速度,acc_y表示y方向的加速度,acc_z表示z方向的加速度。可以理解的,滚床跌倒相比于竖直跌倒的失重时间短,因此阈值n2小于阈值n1,具体阈值根据传感器采样频率决定。步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1。若为是,则说明处于竖直初始姿态的人体发生近似跌倒的失重行为,进入竖直跌倒判断分支。步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1。步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1。步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9。步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1。具体可如下:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若“是”则说明初始姿态为竖直的人体发生跌倒,触发跌倒告警事件;若“否”则返回步骤1。可以理解,初始姿态为竖直的人体发生跌倒时,发生向前或者向后的跌倒情况下是俯仰角发生明显变化,发生向左或者向右的跌倒情况下是横滚角发生明显变化,因此在该步骤只需要判断俯仰角或者横滚角的角度变化差值是否超过阈值θ1。步骤10:发出跌倒告警提示。步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则说明处于水平初始姿态的人体发生近似跌倒的失重行为,进入坠床跌倒判断分支,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。可以理解,初始姿态为水平的人体发生跌倒时,坠床翻滚会导致偏航角发生明显变化,因此在该步骤只需要判断偏航角的角度变化差值是否超过阈值θ2。需要说明的是,上述步骤中的相关参数可通过实验等方法获得,其典型值如下表所示。参数典型值单位a111米/秒2a26.9米/秒2a319.6米/秒2a40.8米/秒2a58.5米/秒2a614.7米/秒2n16次n23次t1400毫秒t21000毫秒t3150毫秒t4500毫秒θ140度θ250度进一步的,所述指令集还用于执行:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。其中,deg2rad为转换系数,取值为0.01745。rad2deg为弧度转换为度系数,取值为57.3。通过上述存储设备中指令集所执行的方法可有效地将竖直跌倒和坠床跌倒有效地区分开,提高跌倒检测的正确率,降低其误报率。请参阅图2和图4,在本实施方式中,一种跌倒检测系统400的实施方式如下:一种跌倒检测系统400,包括:运动传感器模块402、cpu模块401、天线模块403、开关模块405、电源模块404、充电模块407、led指示模块406;所述电源模块404分别连接所述运动传感器模块402、所述cpu模块401和所述充电模块407;所述cpu模块401分别连接所述天线模块403、所述开关模块405、所述led指示模块406和所述运动传感器模块402;所述cpu模块401包括:处理器4011和无线通讯子模块4012;所述运动传感器模块402用于执行步骤:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;所述cpu模块401用于执行如下步骤:步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;步骤15:计算当前偏航角角度后执行步骤16;步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。进一步的,所述cpu模块401还用于执行如下步骤:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;步骤27:单位化四元数:步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。进一步的,所述无线通讯子模块4012包括:蓝牙40121和wifi模块40122;所述天线模块403用于与所述蓝牙40121和wifi模块40122进行通讯。进一步的,所述运动传感器模块402型号为lsm6dsl。通过以上系统可有效地将竖直跌倒和坠床跌倒有效地区分开,提高跌倒检测的正确率,降低其误报率。需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的
技术领域:
,均包括在本发明的专利保护范围之内。当前第1页1 2 3 
技术特征:1.一种跌倒检测方法,其特征在于,包括步骤:
步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;
步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;
步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;
步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;
步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;
步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;
步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;
步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;
步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;
步骤10:发出跌倒告警提示;
步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;
步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;
步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;
步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;
步骤15:计算当前偏航角角度后执行步骤16;
步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。
2.根据权利要求1所述的一种跌倒检测方法,其特征在于,所述“根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角”,具体还包括步骤:
步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;
步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;
步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;
步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;
步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;
步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;
步骤27:单位化四元数:
步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。
3.一种存储设备,其中存储有指令集,其特征在于,所述指令集用于执行:
步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;
步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;
步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;
步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;
步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;
步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;
步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;
步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;
步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;
步骤10:发出跌倒告警提示;
步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;
步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;
步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;
步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;
步骤15:计算当前偏航角角度后执行步骤16;
步骤16:判断所述偏航角角度是否大于阈值θ1,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。
4.根据权利要求3所述的一种存储设备,其特征在于,所述指令集还用于执行:
步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;
步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;
步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;
步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;
步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;
步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;
步骤27:单位化四元数:
步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。
5.一种跌倒检测系统,其特征在于,包括:运动传感器模块、cpu模块、天线模块、开关模块、电源模块、充电模块、led指示模块;
所述电源模块分别连接所述运动传感器模块、所述cpu模块和所述充电模块;
所述cpu模块分别连接所述天线模块、所述开关模块、所述led指示模块和所述运动传感器模块;
所述cpu模块包括:处理器和无线通讯子模块;
所述运动传感器模块用于执行步骤:步骤1:响应初始工作指令,获取运动传感器的x方向、y方向、z方向的初始加速度和角速度;
所述cpu模块用于执行如下步骤:步骤2:根据所述x方向、y方向、z方向的初始加速度和角速度计算得初始角度,所述初始角度包括以下中的一种或多种:俯仰角、横滚角、偏航角;
步骤3:根据所述x方向、y方向、z方向的初始加速度计算得合加速度,判断所述合加速度是否小于阈值a1,若不小于,则返回步骤1,若小于,执行步骤4;
步骤4:判断所述合加速度小于阈值a1的次数是否大于等于n1次,若是,则执行步骤5,若否则执行步骤11;
步骤5:判断y方向的初始速度是否为负且绝对值大于阈值a2,若是,则执行步骤6,若否,则返回步骤1;
步骤6:判断在时间窗口t1内,所述合加速度是否大于阈值a3,若是,则执行步骤7,若否,则返回步骤1;
步骤7:判断在时间窗口t2内,所述合加速度的波动大小下是否小于阈值a4,若是,则执行步骤8,若否,则返回步骤1;
步骤8:计算当前俯仰角角度、横滚角角度后,执行步骤9;
步骤9:判断俯仰角或者横滚角的角度变化差值是否大于阈值θ1,若是,则判定为竖直跌倒,并执行步骤10,若否,则返回步骤1;
步骤10:发出跌倒告警提示;
步骤11:判断所述合加速度小于阈值a1的次数是否大于等于n2次,若是,则执行步骤12,若否,则返回步骤1;
步骤12:判断z方向的初始加速度是否为负且绝对值大于阈值a5,若是,则执行步骤13,若否,则返回步骤1;
步骤13:判断时间窗口t3内,所述合加速度是否大于阈值a6,若是,则执行步骤14,若否,则返回步骤1;
步骤14:判断时间窗口t4内,所述合加速度的波动大小是否小于阈值a4,若是,则执行步骤15,若否,则返回步骤1;
步骤15:计算当前偏航角角度后执行步骤16;
步骤16:判断所述偏航角角度是否大于阈值θ2,若是,则判定为坠床跌倒并执行步骤10,若否,则返回步骤1。
6.根据权利要求5所述的一种跌倒检测系统,其特征在于,
所述cpu模块还用于执行如下步骤:步骤21:将角速度的度转换成弧度:gx=gx*deg2rad,gy=gy*deg2rad,gz=gz*deg2rad,其中gx为x方向角速度,gy为y方向角速度,gz为z方向角速度,deg2rad为转换系数;
步骤22:计算单位化加速度值:其中ax为x方向加速度,ay为y方向加速度,az为z方向加速度;
步骤23:计算重力在三个方向上的分量:vx=2*(q1*q3-q0*q2);vy=2*(q0*q1 q2*q3);vz=q0*q0-q1*q1-q2*q2 q3*q3;其中q0、q1、q2、q3为四元数,初始值设置为q0=1,q1=q2=q3=0;
步骤24:计算三个方向重力误差:ex=(ay*vz-az*vy),ey=(az*vx-ax*vz);,ez=(ax*vy-ay*vx),其中ex为x方向上重力分量误差,ey为y方向上重力分量误差,ez为z方向上重力分量误差,对误差进行积分:ex_int=ex_int ex*ki,ey_int=ey_int ey*ki,ez_int=ez_int ez*ki,其中ex_int为x方向上重力分量误差积分,ey_int为y方向上重力分量误差积分,ez_int为z方向上重力分量误差积分,ki为积分补偿系数;
步骤25:修正三个方向上的角速度:gx=gx kp*ex ex_int,gy=gy kp*ey ey_int,gz=gz kp*ez ez_int,其中kp为修正系数;
步骤26:采用一阶毕卡解法对四元数方程进行求解,求解所得四元数为:q0=q0 (-q1*gx-q2*gy-q3*gz)*t,q1=q1 (q0*gx q2*gz-q3*gy)*t,q2=q2 (q0*gy-q1*gz q3*gx)*t,q3=q3 (q0*gz q1*gy-q2*gx)*t,其中t为采样周期的一半;
步骤27:单位化四元数:
步骤28:将四元数转换为欧拉角:pitch=asin(-2*q1*q3 2*q0*q2)*rad2deg,roll=atan2(2*q2*q3 2*q0*q1,-2*q1*q1-2*q2*q2 1)*rad2deg,yaw=atan2(2*q1*q2 2*q0*q3,q0*q0 *q1*q1-q2*q2-q3*q3)*rad2deg,其中pitch为俯仰角,roll为横滚角,yaw为偏航角,rad2deg为弧度转换为度系数。
7.根据权利要求5所述的一种跌倒检测系统,其特征在于,
所述无线通讯子模块包括:蓝牙和wifi模块;
所述天线模块用于与所述蓝牙和wifi模块进行通讯。
8.根据权利要求5所述的一种跌倒检测系统,其特征在于,所述运动传感器模块型号为lsm6dsl。
技术总结本发明涉及检测技术领域,特别涉及一种跌倒检测方法、系统和存储设备。所述一种跌倒检测方法,包括步骤:步骤1:响应初始工作指令,获取运动传感器的X方向、Y方向、Z方向的初始加速度和角速度;步骤2:根据所述X方向、Y方向、Z方向的初始加速度和角速度计算得初始角度;步骤10:发出跌倒告警提示;步骤11:判断所述合加速度小于阈值A1的次数是否大于等于N2次;步骤12:判断Z方向的初始加速度是否为负且绝对值大于阈值A5,若是,则执行步骤13;步骤13:判断时间窗口T3内,所述合加速度是否大于阈值A6,若是,则执行步骤14。上述步骤可有效地将竖直跌倒和坠床跌倒有效地区分开,提高跌倒检测的正确率,降低其误报率。
技术研发人员:余永先;林峰;田有隆
受保护的技术使用者:福州数据技术研究院有限公司
技术研发日:2020.12.21
技术公布日:2021.03.12