肌电信号的离散运动预测研究

2019-07-03 06:46张磊王文东史仪凯刘佳豪褚阳明杏
西北工业大学学报 2019年3期
关键词:小臂外骨骼电信号

张磊, 王文东, 史仪凯, 刘佳豪, 褚阳, 明杏

(西北工业大学 机电学院, 陕西 西安 710072)

因肌电信号表征着人体的运动状态和意图,所以可以利用肌电信号作为外骨骼机械臂的控制信号。虽然对肌电信号和外骨骼机械臂的研究很早就已经开展,但是至今为止,现在的外骨骼机械臂的结构和控制算法的适应性都仍有一定的缺陷。因此不断完善外骨骼机械臂的控制策略以保证较好的运动特性对于完善患者进行康复训练的体系具有十分重要的作用和意义。另外在一些康复训练中心,主要依靠一些简单外骨骼来帮助患者进行康复训练。但是目前的康复运动不能反映患者的真实意图。

人体的肌电信号中含有大量的与人体运动相关的信息,从肌电信号中识别患者的运动意图是控制机械臂辅助人体运动的关键。Cavallaro等[1]设计了一套上肢七自由度外骨骼。运动预测采用的是改进的Hill肌肉模型。利用28导的肌电信号采集仪采集肌电信号,并用遗传算法进行模式识别,进而估计上肢3个自由度的角度变化,但是该实验需要的肌电传感器较多,并且正确率也不高。张峰等[2]采集人体下肢肌电信号,并将肌电信号导入神经网络进行训练,实现对下肢运动意图的分析,进而估计出下肢踝关节、膝关节和臀关节角度的变化。结果表明通过人体肌电信号值能很好地预测人体下肢角度变化。张琴等[3]利用获得的下肢肌电信号,通过支持向量机对肌电-运动的映射关系进行训练,实现对下肢髋关节、踝关节以及膝关节的矢状面进行连续运动预测,结果表明,基于肌电信号的下肢多关节连续运动预测在行走时控制适当的速度是可行的。丁其川等[4]对肌电信号的离散控制和连续运动估计进行了综合讨论。离散控制较为简单,通过不同的离散控制量直接驱动不同的运动模块,以实现肌电信号的离散控制。目前国内的研究主要集中在下肢关节的运动跟随,对上肢的离散模式估计研究较少。

本文建立了基于BP神经网络的离散运动控制模型,利用肌电信号对患者的离散运动模式进行识别,通过模式识别的正确率评价模型性能。本文对建立的离散运动模型进行了实验,结果表明离散运动控制模型具有较高的正确率。

1 机械结构设计

人体的上肢有许多自由度,要实现对人体上肢所有自由度的运动预测是十分困难的。本文设计了一款便携式的外骨骼机械臂,主要使用对象是康复训练的患者,患者在使用时要将外骨骼戴在身上进行训练,故要求此外骨骼机械臂要体积小、强度高、质量轻。另外,要保证此外骨骼机械臂的安全性,所以在设计时要综合考虑人体工程学理论。

在对外骨骼机械臂进行结构设计前,应首先对人体的生理结构进行研究。通过对人体的上肢进行观察,发现人体上肢是由多个关节组合,为了设计一种便携式的外骨骼机械臂,本文选取了手掌腕部摆动、前臂侧向运动和肘关节转动3个自由度进行设计,各关节自由度选择位置如图1所示。

图1 人体上肢自由度

为了保证患者康复训练时的安全性,经查阅与人体工程学理论和医学康复理论的相关文献,结合李庆玲等[5]对人体上肢极限运动范围的研究和本人对成年人体工程学的研究,得知人体手掌摆动时在腕部处的运动范围极限位置为-90°~90°(取伸掌时手心朝后为-90°,手心朝前为90°,手掌与小臂同共面定义为0°),为了保持患者安全,此范围取为-45°~45°;人体前臂向侧向旋转时的运动范围为-90°~90°(取小臂内侧面向大臂内侧为-90°,小臂内侧背向大臂内侧时为90°);人体肘关节的运动范围为0°~180°(取小臂与大臂共线时为0°),考虑到不同患者的上肢粗细不同,为保障患者康复训练时的安全性,选定上肢外骨骼机械臂的肘关节运动角度范围为0°~90°(取上肢自然下垂为0°,小臂水平为90°),各个自由度的角度定义如图2所示。

图2 各自由度的运动角度定义

综合考虑以上的设计要求,通过对不同的成年人进行实际测量,最终选择较为合适的尺寸,具体的上肢外骨骼机械臂三维模型如图3所示。

图3 外骨骼机械臂三维模型

2 信号处理

虽然肌电信号蕴藏着大量的信息,但是其非常弱且易受到外界干扰,因此对信号的采集和处理提出了苛刻的要求。采集到的肌电信号必须经过进一步的信号处理才能提取到有用的信息,在信号处理前一般需要经过预处理。预处理的方式通常有:信号放大、滤波去噪、信号的偏置和归一化等。

2.1 肌电信号预处理

1) 表面肌电信号放大

肌电信号的幅值一般在0~5 mV之间,必须对信号进行放大处理。若没有经过放大则会导致信号失真等问题。信号的放大可以采用放大电路来实现,本文采用的肌电信号传感器内置有1 000倍的信号放大电路,输出的信号幅值在0~5 V之间。

2) 表面肌电信号去噪

本文的采样率为1 000 Hz,肌电信号采集传感器内置有10~1 000 Hz的带通滤波电路,可以滤除部分的低频干扰和高频干扰,之后为了使信号变得更加平滑,再利用卡尔曼滤波对信号进行处理。

肌电信号经过传感器带通滤波后,仍含有高频干扰,肌电信号有用频率主要集中在20~200 Hz,为了去除200 Hz以上的高频干扰,本文加入了一种数字滤波器以实现此处的滤波。利用Matlab中的FDATOOL插件设计了一种滤除200 Hz以上高频干扰的64阶FIR低通数字滤波器。

3) 肌电信号的归一化和去偏置

在采集肌电信号的过程中,不可避免地会使肌电传感器电极的放置位置和所受的预紧力发生轻微改变。由于电极位置的轻微变动或者其他原因,往往会导致采集信号幅值发生变化。为了避免幅值变化所引起的干扰,在信号处理时,往往需要对信号进行归一化处理,将信号归一化到[-1,1]。

由于STM32单片机的ADC只能采集正电压,而肌电原始信号有正电压也有负电压,所以在传感器内部设置有一个2.5 V的偏置电路,使原始的肌电信号整体增加了一个直流分量,满足了STM32的采集条件。由于肌电传感器能够输出的肌电信号幅值是5 V,而STM32单片机的ADC最高允许输入电压是3.3 V,所以需要对传感器输出的肌电信号进行分压处理。

肌电传感器采集到的肌电信号如图4所示,将信号进行FIR数字滤波、卡尔曼滤波、偏置、归一化和放大等预处理后,肌电信号如图5所示。

图4 肌电传感器采集到的肌电信号

图5 预处理后的肌电信号

2.2 特征值提取

如何从所采集到的信号中提取出有用信息是肌电信号处理的关键。肌电信号的特征值是从肌电信号中提取出来能够表征肌电信号特征的一类值。特征值的提取方法多种多样,Purushothaman等[6]采用小波系数作为特征值。Chen等[7]利用了改进的近似熵来表征表面肌电信号。肌电信号的特征值的提取主要包括3个大方面:时域、频域和时频域特征值的提取。

1) 时域特征值提取

时域特征值提取方法:绝对值积分

(2)

式中,N为采样点数;xi为信号的幅值。

2) 频域特征值提取

频域幅值标准差:傅里叶变换可以将信号从时域转换到频域来观察,通过对转换之后的频谱进行分析,可以观察到时域所观察不到的信息。同时可以观察各个频率分量的幅值,以及整个肌电信号的主要频率分布。进行傅里叶变换也便于对噪音信号进行观察,从而利用滤波器去除噪音。

傅里叶变换之后的平均幅值和幅值方差能够在一定程度上表征信号的特征,都可以作为肌电信号的特征值来判定肌肉纤维的活跃程度,本文采用傅里叶变换之后的平均幅值作为特征值。

3) 小波变换系数

小波变换又称为“数字显微镜”,可以对采集到的肌电信号从不同的角度和尺度进行观察和分析,小波变换类似于加窗傅里叶变换,其可以将信号在不同频率上进行分解。因为小波系数能够在一定程度上反映肌电信号的特征,且具有很好的分辨性,所以经常作为肌电信号的特征值使用。

2.3 BP模型的建立

由于肌电信号中含有表征肌电机体运动趋势的信息,Batzianoulis等[8]提出了一种新的学习方法,可以实现对手部的抓取意图进行解码。从肌电信号提取的特征值就直接体现了人体的运动意图,将提取的肌电信号特征值输入到训练好的BP神经网络中,BP神经网络就会输出对应的模式,以此实现模式识别。再根据不同的模式驱动不同的控制模块,这样就可以实现利用肌电信号对外骨骼机械臂的控制。

图6 肌电信号离散运动控制模型

通过丁其川等[4]对肌电信号的离散控制和连续运动估计进行了综合的讨论可知,肌电信号的控制分为离散控制和连续控制。通过不同的离散控制量直接驱动不同的运动模块,以实现肌电信号的离散控制,离散运动控制的具体过程如图6所示。本文利用肌电信号的离散控制模型驱动外骨骼机械臂运动。首先采集肱二头肌和肱三头肌处的肌电信号,然后对肌电信号分别提取时域信号的标准差、频域幅值的标准差以及小波系数标准差3个特征值。为了减小外界干扰引起特征值的突变和肌电信号特征值漂移带来的影响,可以将3个特征值进行加权求和作为最终特征值。3个特征值的“权”均为33.3%。有时计算的最终特征值波动较强,可以利用卡尔曼滤波进行一次消抖处理,最后将其特征值作为BP神经网络的输入参数。从时域、频域和时频域提取的特征值转化为最终特征值的具体过程如图7所示。

图7 特征值提取模型

实验数据采集过程为:首先让肌肉自然放松,之后将小臂放松10 s,然后有意识将小臂往下压使肱三头肌收缩并持续10 s;然后再将小臂放松10 s,之后再将小臂往上抬起使肱二头肌收缩并持续20 s;最后将小臂再放松10 s后停止采集。分别对从肱二头肌和肱三头肌的肌电信号中提取出的特征值进行进一步处理和变换,对从时域、频域和时频域得到的特征值进行加权求和,利用卡尔曼滤波进行消抖平滑处理可得到最终的特征值分别如图8和图9所示。

图8 肱二头肌处得到的最终特征值

图9 肱三头肌处得到的最终特征值

同单隐含层相比,多隐含层泛化能力强,预测精度高,但是训练时间较久,对于简单的映射关系,在网络精度达到要求的情况下可以选择单隐含层。本文要求的实验是实时性的,因此选择单隐含层。对于复杂的非线性模型,网络预测误差随着节点数增加会出现先减少后增加的趋势,对于简单的非线性模型,会随着隐含层节点数的增加误差逐渐减少。但是隐含层节点越多所消耗的时间越长。本文选定的非线性模型仅有2个输入1个输出,相对简单,同时又要求实时性,因此经过对比选择了6个节点。在保证误差的范围下,为了方便运算,采用的BP神经网络结构为:输入层有2个节点,分别作为在肱二头肌和肱三头肌特征值的输入节点。隐含层采用tansig传递函数。输出层有1个神经元,采用purelin传递函数。BP神经网络的输出结果为识别出的模式,代表着人体的运动意图。通过识别出小臂放松、小臂抬升、小臂下降的运动意图,实时控制电机的停止、正转和逆转,以实现外骨骼机械臂辅助患者运动。

3 实验研究

1) 肌电信号离散控制外骨骼机械臂的实验中所用到的实验设备主要有:肌电传感器、STM32单片机开发板、外骨骼机械臂、恒压源,如图10所示。

2) 在进行离散运动控制实验时,要将外骨骼机械臂穿在测试者身上,要求将六轴陀螺仪传感器固定在测试者的手心中,如图10所示。要保证六轴陀螺仪传感器JY61的x轴与小臂共线,实验时通过测量x轴或z轴的角度变化量就可以计算出人体肘关节所转过的角度。

图10 实验设备

本文通过模式识别结果的正确率来分析系统性能。为了更好地测试出本文所设计的基于肌电信号离散运动控制模型的性能,选取了8位身体指标不同的人员进行实验测试,测试人员的身体指标如表1所示。对BP神经网络进行训练的特征值取自于测试者A。

表1 测试人员身体指标

根据以上的理论分析,本实验通过采集人体肱二头肌和肱三头肌的肌电信号提取特征值,设定训练次数为10 000,学习率为0.01,目标误差为0.000 1,将提取的肌电信号特征值进行BP神经网络训练。当BP训练好以后,将被试者的肌电信号导入到BP神经网络进行模式识别,通过识别的模式实时控制机械臂的运动。

为了检测此控制系统的对不同个体的适应能力,本实验对8位不同测试者个体进行了测试。实验中对每个测试者进行小臂放松、小臂抬升和小臂下降3种模式的识别,每个运动意图进行了100次的识别,计算其模式识别的正确率,测试结果如表3所示。从表2可以看出3种模式的平均识别正确率都达到90%以上。

表3 离散运动意图模式识别正确率

4 结 论

本文设计了一套三自由度的上肢外骨骼机械臂。并对肌电信号进行了预处理和提取特征值,利用BP神经网络建立了外骨骼离散控制模型。对3种离散模式进行了实验验证,结果表明3种模式的正确率都能达到90%以上。

猜你喜欢
小臂外骨骼电信号
下肢外骨骼康复机器人的研究与发展
基于联合聚类分析的单通道腹部心电信号的胎心率提取
食品搬运机器人小臂的静态分析与优化
昆虫的外骨骼
210kg工业机器人小臂模块化结构设计
基于Code Composer Studio3.3完成对心电信号的去噪
码垛机器人小臂结构轻量化设计*
外骨骼助力负重中下肢肌肉收缩与协作机制
基于随机森林的航天器电信号多分类识别方法
外骨骼机器人 帮残疾人离开轮椅