虚拟现实灵巧手姿态力度控制算法与仿真

2016-11-30 06:23施宏达李秀飞张立中
关键词:电信号指尖拇指

施宏达,李秀飞,张立中

(1.长春理工大学 机电工程学院,长春 130022;2.长春理工大学 光电工程学院,长春 130022;3.中国科学院重庆绿色智能技术研究院,重庆 400714;4.长春理工大学 空地激光通信国防重点学科实验室,长春 130022)

虚拟现实灵巧手姿态力度控制算法与仿真

施宏达1,3,李秀飞2,3,张立中4

(1.长春理工大学 机电工程学院,长春 130022;2.长春理工大学 光电工程学院,长春 130022;3.中国科学院重庆绿色智能技术研究院,重庆 400714;4.长春理工大学 空地激光通信国防重点学科实验室,长春 130022)

针对灵巧手虚拟现实的控制,提出了数据手套控制手指关节角度,肌电信号进行抓取力度控制的方法。建立了虚拟现实灵巧手模型,根据神经网络算法实现前臂肌电信号对抓取过程中的拇指尖力预测。实验改变拇指接触状态,预测力模型与实际力度对比,验证模型的有效性。该研究可用于智能假肢控制及上肢康复训练、遥操作机器人等领域。

灵巧手;指尖力预测;肌电信号;抓取力度

灵巧手分为工业用灵巧手和医用灵巧手。以遥操作方式实时控制灵巧手进行作业是工业灵巧手的用途之一[1]。

医用灵巧手主要用于替代上肢残疾者的缺损部分,作为人手的替代品并帮助上肢残疾者完成抓取动作。现有的假肢无法满足肢体残疾者需求,肢体残疾者需要能够进行实时控制抓取姿态并对指尖力度能够精确的控制的新型假肢[2]。肌电控制指尖力是解决方法之一。传统的肌电指尖力预测在手势姿态非连续下进行的[3],没有充分考虑不同的手势姿态对指尖力的影响。

提出数据手套控制虚拟灵巧手抓取姿态,运用神经网络信号识别肌电信号。在连续手势姿态下预测指尖力。

1 方法

1.1 虚拟现实灵巧手模型

首先,建立虚拟现实灵巧手模型,将灵巧手Solidworks模型转换为SimMechanics模型。

SimMechanics主要应用于机械系统的刚体运动仿真,SimMechanics由刚体(Bodies)、关节(Joints)、约束及驱动(Constraints&Drivers)、传感器和驱动器(Sensors&Actuators)等模块组成,可以对建立的模型进行正动力学分析(Forward Dynamics)、逆运动学分析(Inverse Dynamics)和运动学分析(Kinematics)。利用SimMechanics可以简化分析过程的数学模型,提高工作效率的同时仿真结果更接近现实[4]。

在Matlab中运行mech_import,选择XML文件,生成灵巧手对应的SimMechanics模型。

Simlink 3D Animation为Simink建立可视化模型,采用VRML语言建模,在Simlink 3D Animation中改变模型位置,旋转模型,缩放模型,通过硬件设备输入信号并能反馈信息,实现人机互动。

使用VrmlPad对VRML文件进行处理,对仿生机械手定义父子节点,使Simmechanics运动的关节与VRML上的关节相对应,灵巧手结构图如图1所示[5]。

图1 灵巧手结构图

1.2 拇指力预测模型

本文选择了BP神经网络的优化构建拇指力预测模型。BP神经网络结构简单,能够有效地解决肌电信号非线性目标的逼近问题,具有结构简单、可操作性强、具有较好的自学习能力、能够有效地解决非线性目标函数的逼近问题等优点。

BP神经网络的模拟:根据BP神经网络的输入与输出关系,从中选择一个较好的输出值。

这实际上并不是真正意义上的优化,而是一种模拟,是从模拟结果中选择一个较优方案。

BP神经网络的优化:是关于输入为何值时,能使输出取得极大值或极小值的问题。

典型的BP网络结构如图2所示,假设输入神经元的个数为M,隐含层神经元个数为I,输出层神经元个数为J。输入层第m个神经元记为xm,隐含层第i个神经元记为ki,输出层第 j个神经元记为yj。从xm到ki的连接权值为wmi,从ki到yj的连接权值为wij。

隐含层传递函数是Sigmoid函数为:

向BP神经网络输入一个长为M维的肌电信号相关向量,最终输出一个长为J的肌电信号向量。用u和v分别表示每一层的输入与输出,如表示I层第一个神经元的输入,则神经网络的实际输出为:

图2 典型的BP网络结构图

网络的期望输出为:

n为迭代次数。第n次迭代的误差信号定义为:

将误差能量定义为:

BP神经网络的计算分为正向过程计算和反向过程计算。基于肌电训练样本信号,对拇指力预测模型进行训练,使用BP神经网络的反向过程计算每个神经元的修正权值,根据BP神经网络的输出的预测值与其期望值之间的误差,反向计算每层的每个神经元的修正权值。得到每层的每个神经元的修正权值后,拇指力预测模型对肌电测试样本信号进行测试,使用BP神经网络的正向过程计算,从输入节点开始向前逐层计算各节点的输入值和输出值,直至计算得到网络的输出的预测值。

隐含层神经元个数决定非线性映射能力的强弱,当隐含层节点的个数越多,对应的网络的非线性映射能力越强。但当隐含层节点个数超过某一阈值,则只是计算时增加了运算量,无法提高网络精度。因此确定隐含层的神经元个数的阈值,提高网络精度,减少运算量。

通过经验与实验确定隐含层的神经元个数的阈值。隐含层的神经元个数需要经过经验和实验确定,输入的神经元节点数与映射模型有关。本模型采用肌电信号作为自变量,隐含层的神经元个数为10。由于预测的拇指指尖力是一个标量,因此输出层的神经元节点个数为1。

通过Matlab自带的神经网络工具箱的前向神经网络函数feedforwardnet创建BP神经网络,使用拟牛顿法对应的训练函数trainbfg进行训练。在feedforwardnet函数的参数的参数中指定隐含层为一层节点个数为10个。在Matlab中新建脚本文件main_yuce.m,输入代码如下:

1.3 手势识别模型

灵巧手模型分为 SimMechanics模型和Simlink 3D Animation模型。SimMechanics模型是运动学仿真,SimMechanics模型无法参与人机互动,Simlink 3D Animation模型完成虚拟现实仿真。

物理输入部分是由CyberGlov数据手套(CyberGlove)、肌肉电流传感器(Delsys)和力度传感器(Delsys)组成。

数据手套将手指关节角度信号输入SimMechanics模型和Simlink 3D Animation模型完成抓取动作。肌电预测指尖力力度,与实际指尖力力度值对比,验证算法的准确性。拇指改变接触状态,系统采集拇指接触物体时拇指尖力力度值,与预测值进行预测对比。

通过记录抓取不同形状物体时所对应的手指关节转动角度的姿态和位置。数据手套与灵巧手关节映射关系如图3所示。

图3 数据手套与灵巧手的关节映射关系

食指、中指、环指、小指的运动方式主要是屈服、伸展、外展与内收,在抓取的过程中拇指起到相当重要的作用,拇指具有能完成屈曲、伸展、内收与外展、环转及对掌运动六个动作。本实验中,简化手指的运动方式,考虑到拇指在抓取过程中的特殊作用,通过两个关节的复合运动保留拇指的屈曲、伸展、内收与外展及对掌运动,其余关节只具有屈服与伸展运动。

数据手套输出值为x,抵消值为a,增益系数为K,模型输入值y,映射关系表达式如下。

传感器位于手臂前段测试拇长屈肌的肌电信号,SimMechanics模型和Simlink 3D Animation模型与将数据手套、Delay肌肉电流传感器和力度传感器连接。图4是实验整个流程图。

数据手套通过蓝牙软件BlueSoleil与电脑建立通信,在Matlab模型里,用UDP接收信号,对Simmechanics仿生机械手模型添加关节驱动,接收数据手套信号,并以此作为驱动信源驱动Simmechanics模型。

Simmechanics模型中添加检测模块测量大拇指尖和中指尖位置,当大拇指尖或中指尖与物体接触时候,物体由白色变为黄色,当拇指尖和中指尖同时接触物体时候,物体颜色为绿色[8]。

2.3 信号分析

2.3.1 手势信号

本实验是通过数据手套采集抓取过程中人手关节的转动角度,人手的抖动,会导致数据波动,为了提高抓取过程中数据的稳定及数据的连续性,加入防抖处理,当数据手套连续采集的每个关节角度变化5°时,手指执行下一个动作,更新并保存新数据[9]。处理方法如图4所示。

图4 实验流程图

通过将人手各关节的弯曲角度通过映射关系控制虚拟灵巧手各个关节的角度,由于人手的个体差异,其映射关系略有不同。

图5 手势识别防抖滤波方法

2 实验结果

实验测试对象为5人,其中男性3人,女性2人。实验方法如下:表面肌电传感器放置于前臂拇长伸肌处,预测不同的抓取动作的拇指指尖力输出。

压力传感器在被抓物体上的位置,测量拇指在手势姿态连续情况下的指尖力。

被抓物体实物为卡片和水杯,卡片的长85mm、宽55mm、高1mm,水杯直径65mm,高为175mm。

抓取的三种主要类型为手掌接触抓取、指端接触抓取和手指侧面接触抓取[10]:

(1)手掌接触抓取:是手掌和各指与物体接触面积大,导致摩擦力也大,抓取稳定性高,但抓取灵活性不足。大拇指可用来更大程度上加大抓取的稳定性和增大抓取力。

(2)指端接触抓取:此相对抓取方式优点是可以使灵巧手具有高度的灵活性,而且抓取精度很高,缺点是没有手掌接触抓取方式那么高的稳定性和抓取力。

(3)手指侧面抓取:通过手指间的相对侧面而进行抓取。抓取稳定性及灵活性介于两种抓取方式之间。

实验中的抓取姿态和位置有四种形式:分别是抓取,两指捏,侧捏,三指捏。

对数据手套进行标定,具体方法如下:四指并拢,大拇指张开与四指成90度,此时为初始位置,默认此时各关节角度值为0,调节加减值,使其显示关节角度为0,每个手指单独弯曲90度,调节增益值,对应映射的虚拟仿真平台中仿生手关节弯曲角度为90度。

将肌电信号分为训练样本和测试样本。对训练样本肌电信号进行预处理,得到肌电信号幅值和指尖输出力的大小,对于同一个动作根据平均误差选取一路肌电信号用于指尖力预测。为了验证识别的准确程度,通过已经训练好的BP神经网络将剩下测试样本的肌电信号去预测指指尖力与实际指尖力进行对比得出预测准确率。肌电信号识别流程如图6所示。

图6 肌电信号识别流程图

以抓取动作为例,图7是抓取动作的原始肌电信号、对肌电信号处理后与抓取动作实际拇指力度信号对比。对肌电原始信号进行归一化处理,将原始数据经过处理后限制在一定的范围内,保证程序运行时快速收敛。本实验采用归一化中的min-max标准化(Min-Max Normalization)处理,对肌电信号原始数据进行线性变换,使肌电信号值映射到[0-1]之间。

min-max标准化公式如下:

其中max为肌电信号原始数据中的最大值,min为肌电信号原始数据中的最小值。

具体Matlab程序如下:

minv=min(x);%肌电信号原始数据中的最小值

maxy=max(x);%肌电信号原始数据中的最大值

y=x-minv/maxv-minv;%归一化计算公式

plot(t,y);%显示视图如图7所示,肌电信号与拇指力度信号存在一定的线性关系,拇指力度信号具有被预测的可能。

图7 抓取的原始肌肉电流信号与实际拇指力度信号对比

图8 抓取拇指指尖力预测结果

图9 两指捏拇指指尖力

图10 三指捏拇指指尖力预测结果

图11 侧捏拇指指尖力预测结果

图12 各动作的拇指指尖力度值识别率

图13 各动作平均识别率

图8至图11所示为实验人员做抓取、二指、三指和抓取四个动作时肌肉电流信号预测拇指尖指力度和实际指尖力度的对比。图示可以证明肌电信号能够预测拇指力度,但预测力度与实际力度有一定的差距。由于肌电信号出现时间早于肌肉收缩,因此预测信号出现时间早于实际力度信号。

实验结果表明,抓取动作拇指指尖力预测结果为88.9%,二指捏取动作拇指指尖力预测结果为87.8%,三指捏取动作拇指指尖力预测结果为89.8%,侧捏取动作拇指指尖力预测结果为88.2%,各动作拇指指尖力预测准确率为88.7%,各动作拇指指尖力的预测准确度最大相差为2%,各动作对拇指指尖力测试影响比较小(88.7±1%),表明采用拇长伸肌表面肌电信号预测各动作拇指指尖力是合适的。

3 结论

数据手套实时控制虚拟灵巧手的姿态,并实时对拇指指尖力实时预测,预测结果为88%,通过在多种连续手势姿态下做指尖力度预测实验,得到不同手势姿态对同一算法的指尖力预测的准确度影响不显著。

本实验设计的仿真平台具有显示抓取姿态,被抓物体的颜色随被抓状态变化,抓取位置可以在被抓物体表面上以圆圈的形状显示,抓取预测指尖力度值可以通过改变圆圈的大小与颜色表示。本文具有以下创新点:(1)充分考虑到手势姿态对指尖力力度的影响;(2)实验结果证明,肌肉电流预测指尖力力度与实际指尖力力度对比,符合度为百分之87.8%以上,可以为肢体受损、安装智能假肢的人做康复训练;(3)实验结果证明用数据手套控制未接触前的灵巧手手势姿态,当灵巧手与被抓物体接触后,通过肌肉电流控制指尖力力度的大小,使遥操作更精确。

[1] 李昕一.基于虚拟现实遥操作焊接机械手系统的实现[D].西安:西安科技大学,2014.

[2] 朱昊.基于人手肌肉驱动特征的假肢手电机驱动控制研究[D].长沙:中南大学,2013.

[3] Li Xiufei,Fu Jiantin,Xiong Linfei,et al.Identification of Finger Force and Motion from Forearm Surface Electromyography[C].2015 IEEE International Conference on Multisensor Fusion and lntegration for Intelligent Systems(MFI),San Diego,2015.

[4] 张立勋,董玉红,王琬.机电系统仿真与设计[M].哈尔滨:哈尔滨工程大学出版社,2006:37-39.

[5] 张勇.基于Simulink的机器人虚拟现实仿真研究[D].哈尔滨:哈尔滨工程大学,2007.

[6] 陈明.神经网络原理与实例精解[M].北京:清华大学出版社,2013:156-191.

[7] 胡伍生.神经网络理论及其工程应用[M].北京:测绘出版社,2006:25-48.

[8] 张金钊.VRML编程实训教程[M].北京:清华大学出版社,2008.

[9] 朱玉乐.多指灵巧手抓取运动规划的研究[D].洛阳:河南科技大学,2013.

[10] 曹文祥.基于人机工程学的虚拟人手的模型建立及运动学仿真[D].武汉:武汉理工大学,2011.

Control Algorithm of Posture and Force Simulation for Dexterous Hand in Virtual Reality

SHI Hongda1,3,LI Xiufei2,3,ZHANG Lizhong4
(1.School of Mechatronical Engineering,Changchun University of Science and Technology,Changchun 130022;2.School of Optoelectronic Engineering,Changchun University of Science and Technology,Changchun 130022;3.Chongqing Institute of Green and Intelligent Technology,Chinese Academy of Sciences,Chongqing 400714;4.Fundamental Science on Space-Ground Laser Communication Technology Laboratory,Changchun University of Science and Technology,Changchun 130022)

For virtual dexterous hand control,proposed a method which uses the data glove control finger joint angle,and control grab force of the experimental method based on EMG.Build a virtual model of dexterous hand,simulation of the grab process,achieve limb muscles current signal prediction crawl on the thumb fingertip force based on BP algorithm based on neural network.Repeatedly changing contact state accuracy crawl thumb,thumb fingertip size of the force will be measured and predicted strength value verified by comparing predicted by.Compare the predictive force of the model with the actual force,verify the validity of the model.Experimental results demonstrate the effectiveness of the method,which can be used in the field of intelligent control and prosthetic rehabilitation of stroke patients,remote operations,etc.

dexterous hands;fingertip force forecasting;emgs;grab control force

TP241.3

A

1672-9870(2016)05-0070-06

2016-01-20

施宏达(1990-),男,硕士研究生,E-mail:shihongda@cigit.ac.cn

张立中(1968-),男,教授,博士生导师,E-mail:zlzcust@126.com

猜你喜欢
电信号指尖拇指
治理“指尖乱像”不宜一散了之
基于联合聚类分析的单通道腹部心电信号的胎心率提取
降落伞(翻绳)
虔诚之花在指尖绽放
绿拇指
指尖上的生活,指尖上的美
基于Code Composer Studio3.3完成对心电信号的去噪
拇指姑娘
基于随机森林的航天器电信号多分类识别方法
指尖童话