一种基于肌电手环的仿生手控制系统及控制方法
技术领域
本发明涉及肌电假肢领域,尤其涉及一种基于肌电手环的仿生手控制系统及控制方法。
背景技术
据国家统计局2006年对我国残疾人口抽样调查数据推算,在全国各类残疾人中,肢体残疾人口最多,为2412万人,占总残疾人口的29.07%。由于意外事故、先天缺陷、疾病、自然灾害等原因,肢体残疾人口还在不断增加。因此,假肢手有着巨大的市场。目前,国内开发的肌电假肢手仍以单一动作模式为主,多动作模式的高端肌电假肢手主要依靠进口。而且现有的假肢手多存在穿戴麻烦,识别精度不高等缺点。申请号为CN201610379614.4的中国专利提出了一种使用MYO臂环对假肢进行控制的方案,极大程度上解决了穿戴麻烦的问题。然而对于假肢来说,最重要的是能够真实反映使用者的意图。该方案对识别的准确率考虑不足。而且采用神经网络分类器的运算量太大,不利于系统的实时性。同时,仅仅使用肌电信号来进行控制,就目前来看效果不是很好。另外,现有的假肢控制系统大多数采用出厂设置,在控制系统中将肌电信号与需要执行的动作指令建立对应关系,但由于个体使用者的机体差异,导致个体对同一动作所采集的肌电信号不同于控制系统中该动作所对应的预设的肌电信号,由此会导致控制系统对假肢发出错误的控制指令,使得假肢的动作不能真实反映使用者的意图,影响用户体验。
发明内容
针对现有技术的缺陷,本发明提出一种基于肌电手环的仿生手控制系统及控制方法,使用小波包变换,样本熵判别算法以及LDA降维方法,提高了整个系统的识别率,有效降低了程序复杂度,提升了系统的实时性。同时,通过肌电手环控制假肢,能够减轻使用者穿戴假肢时的负担。另外,控制系统通过自学习纠错机制,能够针对不同的使用者对假肢做出准确的动作控制,提升了用户体验。
为实现上述目的,本发明提供了一种基于肌电手环的仿生手控制系统,所述控制系统包括采集模块、控制模块、执行模块,所述采集模块和执行模块分别与控制模块相连接;其特征在于,
所述采集模块,采用肌电手环,用于采集使用者的肌电信号以及内置陀螺仪的方向,速度,加速度等信息,并将采集的所述信息通过无线通讯方式发送至所述控制模块;
所述控制模块,用于接收采集模块发送的信号并对其进行处理,计算信号的样本熵,根据计算结果确定信号的起始点和终点,并对信号进行分割,获取单段信号;采用小波包变换获得信号的特征矩阵,提取特征值,对特征矩阵进行降维,并根据预先训练的分类器,使用支持向量机SVM算法及决策树对信号进行分类识别,获得分类结果,然后根据分类结果向执行模块发出对应的执行指令。
所述执行模块,用于接收并执行控制模块下发的指令,映射到各个电机的运动状态,采用舵机对假肢动作进行控制。
其中,使用支持向量机SVM算法及决策树对信号进行分类识别包括:对每个通道构建决策树,提取肌电信号特征,对每个提取到的特征,使用SVM进行分类,并统计本通道内所有分类器的分类结果,得票最高的结果作为本通道的分类输出结果;
对所有通道的分类输出结果进行统计,得票最高的结果作为最终分类结果;如果得票最高的结果中存在得票相同的情况,则从得票相同的结果中随机选择一个作为最终分类结果。
其中,所述将采集的所述信息通过无线通讯方式发送至所述控制模块包括:通过WiFi,ZigBee,蓝牙发送采集的信息。
其中,对特征矩阵进行降维包括:采用线性判别式分析LDA方法或主成分分析PCA方法对特征矩阵进行降维。
所述控制系统进一步包括纠错反馈模块、动作指定模块和显示模块,纠错反馈模块、动作指定模块和显示模块分别与控制模块相连接;
纠错反馈模块,用于当控制系统的控制结果不能反映使用者的真实意图时,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程;
动作指定模块,用于在自学习纠错过程中,在采集模块采集某一动作的肌电信号后,使用者通过动作指定模块选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系;
显示模块,用于以图形化的方式显示控制系统的控制结果,以及在自学习纠错过程中显示使用者选择的指定动作。
本发明还提供一种基于肌电手环的仿生手控制方法,其特征在于,
采集模块采用肌电手环,采集使用者的肌电信号以及内置陀螺仪的方向,速度,加速度等信息,并将采集的所述信息通过无线通讯方式发送至控制模块;
控制模块接收采集模块发送的信号并对其进行处理,计算信号的样本熵,根据计算结果确定信号的起始点和终点,并对信号进行分割,获取单段信号;采用小波包变换获得信号的特征矩阵,提取特征值,对特征矩阵进行降维,并根据预先训练的分类器,使用支持向量机SVM算法及决策树对信号进行分类识别,获得分类结果,然后根据分类结果向执行模块发出对应的执行指令。
执行模块接收并执行控制模块下发的指令,映射到各个电机的运动状态,采用舵机对假肢动作进行控制。
其中,使用支持向量机SVM算法及决策树对信号进行分类识别包括:对每个通道构建决策树,提取肌电信号特征,对每个提取到的特征,使用SVM进行分类,并统计本通道内所有分类器的分类结果,得票最高的结果作为本通道的分类输出结果;
对所有通道的分类输出结果进行统计,得票最高的结果作为最终分类结果;如果得票最高的结果中存在得票相同的情况,则从得票相同的结果中随机选择一个作为最终分类结果。
其中,所述将采集的所述信息通过无线通讯方式发送至控制模块包括:通过WiFi,ZigBee,蓝牙发送采集的信息。
其中,对特征矩阵进行降维包括:采用线性判别式分析LDA方法或主成分分析PCA方法对特征矩阵进行降维。
所述控制方法进一步包括:当控制系统的控制结果不能反映使用者的真实意图时,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程;
在自学习纠错过程中,在采集模块采集某一动作的肌电信号后,使用者通过动作指定模块选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系;
通过显示模块以图形化的方式显示控制系统的控制结果,以及在自学习纠错过程中显示使用者选择的指定动作。
本发明使用小波包变换,样本熵判别算法以及LDA降维方法,提高了整个系统的识别率,有效降低了程序复杂度,提升了系统的实时性。另外,控制系统通过自学习纠错机制,能够针对不同的使用者对假肢做出准确的动作控制,提升了用户体验。
通过参照以下附图及对本发明的具体实施方式的详细描述,本发明的特征及优点将会变得清楚。
附图说明
图1是本发明实施例一中控制系统的结构示意图;
图2是本发明实施例一中决策树算法的流程示意图;
图3是本发明实施例二中控制系统的结构示意图;
图4是本发明实施例三中控制方法的流程示意图。
具体实施方式
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
如图1所示,本发明提供了一种基于肌电手环的仿生手控制系统,所述控制系统包括采集模块、控制模块、执行模块,所述采集模块和执行模块分别与控制模块相连接;
所述采集模块,,采用肌电手环,用于采集使用者的肌电信号以及内置陀螺仪的方向,速度,加速度等信息,并将采集的所述信息通过无线通讯方式发送至所述控制模块;
具体地,采集模块以肌电手环的方式实现,本实施例中,使用者佩戴肌电手环,录制1000组不同动作的数据,主要动作包括但不限于握拳,张开,OK,射击、下翻、上翻,内翻,外翻等。
在采集信号后,使用无线传输技术,比如WiFi,ZigBee,蓝牙等方式,将采集的信息通过无线通讯方式发送至所述控制模块。在采集信号时,使用肌电手环的8个信号通道进行信号采集,当然,通道的个数可由本领域技术人员进行设置,在此不做限制。
所述控制模块,用于接收采集模块发送的信号并对其进行处理,计算信号的样本熵,根据计算结果确定信号的起始点和终点,并对信号进行分割,获取单段信号;采用小波包变换获得信号的特征矩阵,提取特征值,对特征矩阵进行降维,并根据预先训练的分类器,使用支持向量机SVM算法及决策树对信号进行分类识别,获得分类结果,然后根据分类结果向执行模块发出对应的执行指令。
具体地,信号的特征值提取采用小波包变换进行,特征值为小波包变换获得的参数矩阵,小波包变换具有精度高,信息损失量小的特点,能够精确反映信号的特点,提升识别的准确率。
特征降维方法采用但不限于LDA(线性判别式分析),PCA(主成分分析)等。
LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。LDA是在目前机器学习、数据挖掘领域经典且热门的一个算法。LDA是一种线性分类器,其原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。
主成分分析(PCA)与LDA非常近似,LDA的输入数据是带标签的,而PCA的输入数据是不带标签的,所以PCA是一种unsupervised learning。LDA通常来说是作为一个独立的算法存在,给定了训练数据后,将会得到一系列的判别函数(discriminate function),之后对于新的输入,就可以进行预测了。而PCA更像是一个预处理的方法,它可以将原本的数据降低维度,而使得降低了维度的数据之间的方差最大。
采用LDA的理由在于LDA是模式识别中常用的降维算法,有大量应用案例,且应用效果较好,本实施例中不再对LDA算法和PCA算法做更多的赘述。
信号的起始点采用样本熵进行计算,根据信号的样本熵及阈值确定信号的起始点和结束点,作为一个信号序列。
样本熵是在近似熵的基础上,由Richman提出的一种改进的时间序列复杂度测量方法。本发明可以采用多种方式来计算样本熵,以下以计算快速样本熵为例进行说明,其计算步骤如下:
(1)设有效肌电信号时间序列{xi}含有N个数据,分别为x(1),x(2)…x(N)。
(2)将序列{xi}按顺序组成一组m维矢量,X(i)=[x(i),x(i+1),…,x(i+m-1)]式中,i=1~N-m+1;
矢量X(i)与X(j)之间的距离dis[X(i),X(j)]用分量间的最大欧氏距离表示,即
(3)定义N×N的二值距离矩阵为D,D的第i行第j列为dij,给定阈值r(r>0),则:
(4)利用矩阵中的元素计算和
(5)将所有的平均值记为Bm(r),的平均值记为Bm+1(r),则
(6)肌电信号时间序列{xi}的样本熵可表示为:
Samp En(N,m,r)=-ln[Bm+1(r)/Bm(r)]
在确定了肌电信号的样本熵之后,就可以根据信号的样本熵及阈值确定信号的起始点和结束点,然后作为一个信号序列。
分类器采用支持向量机SVM算法实现,对比神经网络识别,支持向量机算法有泛化能力强,需要数据少的优点,同时在运算速度上优于神经网络。采用支持向量机算法能够使用较少的数据获得较高的识别率,能够提升识别准确率。同时,较快的运算速度也可以增强系统的实时性。
所述执行模块,用于接收并执行控制模块下发的指令,映射到各个电机的运动状态,采用舵机对假肢动作进行控制。
本实施例中,可以采用舵机对假肢动作进行控制,当执行模块接收并执行控制模块下发的指令,映射到各个电机的运动状态,然后由电机带动舵机进行动作控制。
本实施例使用小波包变换,样本熵判别算法以及LDA降维方法,提高了整个系统的识别率,有效降低了程序复杂度,提升了系统的实时性。
如图2,是本发明实施例一中决策树算法的流程示意图。在动作识别过程中,由于需要识别多个动作,需要对每个通道构建决策树。最终的识别结果由所有通道投票表决,得票最多的结果为识别结果。
决策树算法是为了解决支持向量机算法无法运用于多标签分类问题而产生的,决策树算法的特点在于使用多个SVM分类器,每个分类器对两类结果进行判断,最终通过投票获得分类结果。
具体地,使用支持向量机SVM算法及决策树对信号进行分类识别包括:对每个通道构建决策树,提取肌电信号特征,对每个提取到的特征,使用SVM进行分类,并统计本通道内所有分类器的分类结果,得票最高的结果作为本通道的分类输出结果;
对所有通道的分类输出结果进行统计,得票最高的结果作为最终分类结果;如果得票最高的结果中存在得票相同的情况,则从得票相同的结果中随机选择一个作为最终分类结果。
通过决策树,使得利用分类器进行分类得到的分类结果更为准确。
实施例二:
如图3所示,本发明提供了另一种基于肌电手环的仿生手控制系统,该实施例与实施例一的不同之处在于,本实施例的控制系统还包括所述控制系统进一步包括纠错反馈模块、动作指定模块和显示模块,纠错反馈模块、动作指定模块和显示模块分别与控制模块相连接;
纠错反馈模块,用于当控制系统的控制结果不能反映使用者的真实意图时,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程;
具体地,当控制系统的控制结果不能反映使用者的真实意图时,比如控制系统的控制结果是握拳,而使用者的真实意图是射击,此时使用者,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程。可选地,纠错反馈模块可以被设置成肌电手环上的一个按钮,使用者可以通过按下手环上的按钮来通知控制系统进入自学习纠错过程。
动作指定模块,用于在自学习纠错过程中,在采集模块采集某一动作的肌电信号后,使用者通过动作指定模块选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系;
优选地,动作指定模块可以被设置成一些虚拟的按钮,使用者通过点击显示模块(优选为显示屏)上的虚拟按钮来选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系。当然,也可以将动作指定模块设置为多个可按压的实体按钮,每个按钮代表一个动作,使用者可以按下需要指定的动作所对应的按钮,即可使控制系统将使用者选择的指定动作与采集的肌电信号建立映射关系。
显示模块,用于以图形化的方式显示控制系统的控制结果,以及在自学习纠错过程中显示使用者选择的指定动作。
显示模块优选为显示屏,用于以图形化的方式显示控制系统的控制结果,比如,实际控制结果是握拳,则显示屏上会显示一个紧握的拳头形状的图形,如果控制结果是张开,则显示屏上会显示一个张开的手掌形状的图形。当控制系统进入自学习纠错过程中,显示屏上会显示使用者需要选择的动作对应的虚拟按钮,使用者只需点击虚拟按钮即可完成指定动作的选择操作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系。
通过本实施例,控制系统通过自学习纠错机制,能够针对不同的使用者对假肢做出准确的动作控制,提升了用户体验。
实施例三:
如图4,是本发明中基于肌电手环的仿生手控制方法的流程示意图。该控制方法包括以下步骤:
采集模块采用肌电手环,采集使用者的肌电信号以及内置陀螺仪的方向,速度,加速度等信息,并将采集的所述信息通过无线通讯方式发送至控制模块;
具体地,采集模块以肌电手环的方式实现,本实施例中,使用者佩戴肌电手环,录制1000组不同动作的数据,主要动作包括但不限于握拳,张开,OK,射击、下翻、上翻,内翻,外翻等。
在采集信号后,使用无线传输技术,比如WiFi,ZigBee,蓝牙等方式,将采集的信息通过无线通讯方式发送至所述控制模块。在采集信号时,使用肌电手环的8个信号通道进行信号采集,当然,通道的个数可由本领域技术人员进行设置,在此不做限制。
控制模块接收采集模块发送的信号并对其进行处理,计算信号的样本熵,根据计算结果确定信号的起始点和终点,并对信号进行分割,获取单段信号;采用小波包变换获得信号的特征矩阵,提取特征值,对特征矩阵进行降维,并根据预先训练的分类器,使用支持向量机SVM算法及决策树对信号进行分类识别,获得分类结果,然后根据分类结果向执行模块发出对应的执行指令。
具体地,信号的特征值提取采用小波包变换进行,特征值为小波包变换获得的参数矩阵,小波包变换具有精度高,信息损失量小的特点,能够精确反映信号的特点,提升识别的准确率。
特征降维方法采用但不限于LDA(线性判别式分析),PCA(主成分分析)等。
LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。LDA是在目前机器学习、数据挖掘领域经典且热门的一个算法。LDA是一种线性分类器,其原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。
主成分分析(PCA)与LDA非常近似,LDA的输入数据是带标签的,而PCA的输入数据是不带标签的,所以PCA是一种unsupervised learning。LDA通常来说是作为一个独立的算法存在,给定了训练数据后,将会得到一系列的判别函数(discriminate function),之后对于新的输入,就可以进行预测了。而PCA更像是一个预处理的方法,它可以将原本的数据降低维度,而使得降低了维度的数据之间的方差最大。
采用LDA的理由在于LDA是模式识别中常用的降维算法,有大量应用案例,且应用效果较好,本实施例中不再对LDA算法和PCA算法做更多的赘述。
信号的起始点采用样本熵进行计算,根据信号的样本熵及阈值确定信号的起始点和结束点,作为一个信号序列。
样本熵是在近似熵的基础上,由Richman提出的一种改进的时间序列复杂度测量方法。本发明可以采用多种方式来计算样本熵,以下以计算快速样本熵为例进行说明,其计算步骤如下:
(1)设有效肌电信号时间序列{xi}含有N个数据,分别为x(1),x(2)…x(N)。
(2)将序列{xi}按顺序组成一组m维矢量,X(i)=[x(i),x(i+1),…,x(i+m-1)]式中,i=1~N-m+1;
矢量X(i)与X(j)之间的距离dis[X(i),X(j)]用分量间的最大欧氏距离表示,即
(3)定义N×N的二值距离矩阵为D,D的第i行第j列为dij,给定阈值r(r>0),则:
(4)利用矩阵中的元素计算和
(5)将所有的平均值记为Bm(r),的平均值记为Bm+1(r),则
(6)肌电信号时间序列{xi}的样本熵可表示为:
Samp En(N,m,r)=-ln[Bm+1(r)/Bm(r)]
在确定了肌电信号的样本熵之后,就可以根据信号的样本熵及阈值确定信号的起始点和结束点,然后作为一个信号序列。
分类器采用支持向量机SVM算法实现,对比神经网络识别,支持向量机算法有泛化能力强,需要数据少的优点,同时在运算速度上优于神经网络。采用支持向量机算法能够使用较少的数据获得较高的识别率,能够提升识别准确率。同时,较快的运算速度也可以增强系统的实时性。
执行模块接收并执行控制模块下发的指令,映射到各个电机的运动状态,采用舵机对假肢动作进行控制。
本实施例中,可以采用舵机对假肢动作进行控制,当执行模块接收并执行控制模块下发的指令,映射到各个电机的运动状态,然后由电机带动舵机进行动作控制。
本实施例使用小波包变换,样本熵判别算法以及LDA降维方法,提高了整个系统的识别率,有效降低了程序复杂度,提升了系统的实时性。
优选地,本发明的方法还进一步包括如下步骤:
对每个通道构建决策树,提取肌电信号特征,对每个提取到的特征,使用SVM进行分类,并统计本通道内所有分类器的分类结果,得票最高的结果作为本通道的分类输出结果;
对所有通道的分类输出结果进行统计,得票最高的结果作为最终分类结果;如果得票最高的结果中存在得票相同的情况,则从得票相同的结果中随机选择一个作为最终分类结果。
通过决策树,使得利用分类器进行分类得到的分类结果更为准确。
优选地,所述方法进一步包括:
当控制系统的控制结果不能反映使用者的真实意图时,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程;
在自学习纠错过程中,在采集模块采集某一动作的肌电信号后,使用者通过动作指定模块选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系;
通过显示模块以图形化的方式显示控制系统的控制结果,以及在自学习纠错过程中显示使用者选择的指定动作。
具体地,当控制系统的控制结果不能反映使用者的真实意图时,比如控制系统的控制结果是握拳,而使用者的真实意图是射击,此时使用者,使用者通过纠错反馈模块通知控制模块,触发控制系统进入自学习纠错过程。可选地,纠错反馈模块可以被设置成肌电手环上的一个按钮,使用者可以通过按下手环上的按钮来通知控制系统进入自学习纠错过程。
优选地,动作指定模块可以被设置成一些虚拟的按钮,使用者通过点击显示模块(优选为显示屏)上的虚拟按钮来选择需要指定的动作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系。当然,也可以将动作指定模块设置为多个可按压的实体按钮,每个按钮代表一个动作,使用者可以按下需要指定的动作所对应的按钮,即可使控制系统将使用者选择的指定动作与采集的肌电信号建立映射关系。
显示模块优选为显示屏,用于以图形化的方式显示控制系统的控制结果,比如,实际控制结果是握拳,则显示屏上会显示一个紧握的拳头形状的图形,如果控制结果是张开,则显示屏上会显示一个张开的手掌形状的图形。当控制系统进入自学习纠错过程中,显示屏上会显示使用者需要选择的动作对应的虚拟按钮,使用者只需点击虚拟按钮即可完成指定动作的选择操作,使得控制系统能够将使用者选择的指定动作与采集的肌电信号建立映射关系。
另外,本发明可以对模型进行训练,以得到合适的模型,其训练过程包括如下步骤:
1.使用者佩戴肌电手环,录制1000组不同动作的数据,主要动作包括但不限于握拳,张开,OK,射击、下翻、上翻,内翻,外翻等,并上传至个人电脑;
2.在个人电脑上对信号进行处理,计算信号的样本熵并据其对信号进行分割,获得单个动作的信号;
3.对信号进行小波包变换,获得参数矩阵;
4.使用LDA算法对参数矩阵特征降维处理,获得降维后的特征矩阵;
5.使用降维后的特征对SVM模型进行训练,获得训练后的模型。
本发明的控制系统在执行控制时,其控制过程可以总结为如下步骤:
1.肌电手环采集使用者的实时肌电信号及陀螺仪信号,并使用WiFi,ZigBee或蓝牙等方式将数据传输至上位机;
2.控制模块接收到数据信号,计算信号的样本熵,根据计算结果确定信号的起始点和终点,并对信号进行分割,获取单段信号;
3.控制模块使用预先训练的模型对输入信号进行判断,获得分类结果;
4.控制模块根据分类结果,输出相应指令到执行模块;
5.执行模块接收指令并执行;
6.检查控制结果是否发生错误,即与使用者的意图不一致;
7.如果是,则进入自学习纠错过程,控制系统采集肌电信号,使用者选择指定的动作,将控制系统将二者进行关联;
8.执行步骤1-5。
其中,步骤6-8为可选的步骤。
通过本实施例,提高了整个系统的识别率,有效降低了程序复杂度,提升了系统的实时性。另外,控制系统通过自学习纠错机制,能够针对不同的使用者对假肢做出准确的动作控制,提升了用户体验。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。