吴浩镇 徐家骏 曹芳淇 彭 芳
(电子科技大学中山学院,广东中山 528402)
稳态视觉诱发电位脑机接口的方法主要有:功率谱密度分析(Power Spectrum Density Analysis,PSDA),典型线性相关分析(CCA)。PSDA 对SSVEP信号分类的准确率偏低,受噪声影响波动大且不稳定[1]。本文采用CCA分析转换成控制信号,以Topic为桥梁传递到机械臂,实现基于SSVEP的BCI对7自由度的机械臂的控制。
脑机接口是一种基于脑电信号的全新的人机交互方式,受试者佩戴电极帽,由视觉刺激引发脑电信号,将采集的脑电信号分析转换为控制信号传到机械臂以实现脑控机械臂。
本文中机械臂采用Franka公司的PANDA械臂,该机械臂通过话题通讯接收来自MATLAB的脑电信号,运用笛卡尔运动规划实现机械臂的运动规划。脑电数据的采集采用COMPUMEDICS 公司的Graeleeg可穿戴脑电采集设备。
BCI通信原理如图1所示,通过ROS MASTER在MATLAB机和ROS机两边互相创立一个节点,并且通过话题通讯在节点之间传递信息,实现信息传输。当Graeleeg脑电机采集一个脑部信号时,并通过MATLAB转变成有用的控制信号时候,通过Topic桥梁,使得MATLAB的控制信号可以发布出去[2]。
图1 脑控机械臂通信原理
当有信息发布时,ROS的订阅节点订户不断订阅话题,当需要订阅的话题名与MATLAB机发布的话题名一致时,两者建立连接并开始数据的传送,然后通过程序去判断控制信号并控制PANDA机械臂的相关运动。
视觉刺激通过MATLAB的Psychtoolbox工具包编写程序实现,基于采样正旋编码方法在显示器上实现所需的刺激频率,在基于SSVEP的BCI系统中,诱发SSVEP信号的刺激源频率范围为4~50 Hz。不同的刺激频率会极大地影响SSVEP信号的强度。在6个频率块的刺激频率间隔1 Hz。
视觉刺激一共分为两个阶段:刺激阶段和分析阶段。在刺激阶段中,按预定刺激频率闪烁2 s后停止,随后将脑电信号截取保存等待分析结果,完成后将分析得到的频率匹配对应的频率块并标以红色。
当人眼受到固定频率超过4 Hz的视觉刺激时,大脑皮质活动将被调节,而脑电信号频率又可细分为低频段(<15 Hz)、中频段(15~30 Hz)、高频段(>30 Hz),低频刺激诱发的SSVEP会在较短的时间内达到稳态,且刺激后不会即刻消失。故本文采用9~14 Hz的刺激频段,利用MATLAB与Curry8(脑电信号采集套件)构成通讯以实时获取数据。当视觉刺激程序启动时,数据开始收集随后进行预处理。
脑电信号属于非平稳随机信号,容易受到各种噪声干扰。对获取的初始数据的噪声和干扰进行处理,将采样率从MATLAB中得到的1 024 Hz降至256 Hz,然后进行带通滤波和50 Hz陷波滤波去除干扰,利于后面数据分析。图2为原始脑电数据,图3为滤波后数据,滤波后对比特征明显。
图2 9 Hz降采样(256 Hz)后数据
图3 带通滤波50 Hz陷滤波后数据
本文使用巴特沃斯滤波器和双线性变换方法来设计滤波器。由于脑电信号中存在倍频干扰,设计陷滤波器滤除经低通滤波后脑电信号的倍频干扰。陷滤波器的本质是IIR带阻滤波器,其基本设计方法与带通滤波器类似。设置1个周期,过滤通过低通滤波器后的多个峰值噪声[3]。
CCA是研究两组变量之间相关性的统计分析方法,为了从整体上掌握两组指标之间的相关性,分别从两组变量中提取两个具有代表性的综合变量u1和v1(分别为两组变量的线性组合),利用这两个综合变量之间的相关性来反映两组指标之间的整体相关性。研究相关系数ρ(u,v)并在组合中寻找最大相关系数的线性组合。
本文采用现有的典型相关分析方法在通用的正弦余弦模板上进行单次实验,利用正弦余弦构造Yi作为参考信号。
从X和Y寻求变量x1和x2(N×P矩阵,p1≤p2)。形式化表示如x=由于CCA对数据的线性依赖性,将X、Y投影到1维,而对应的投影向量或线性系数向量分别为a、b,定义u=aTx1,v=bTx2,可算出u和v的方差和协方差:
通过寻求a、b,使式(3)中结果最大化,以得出最大相关系数对应的频率。
相对关节运动规划,关节运动规划出来的运动是无规律可循的,而笛卡尔运动规划则可以按照要求在工作空间范围内去规划相应的运动路线。笛卡尔运动规划是当给定机械臂的末端姿态时,它会通过逆运动学解出各个关节的角度。
本文研究的课题由于需要精确控制机械臂的运动距离,故采用笛卡尔运动规划来实现路径规划。机械臂运动规划末端可以看成一条直线,故可选用定时插补法和定距插补法对其相应的轨迹点进行插补。由于定距插补规划出来的轨迹不是很平滑,故采用定时插补法,只需在相同时间内对运动规矩进行插补,当时间取值足够小时,其末端运动规矩可以相应地近似光滑。
首先,机械臂需要建立一个URDF模型,该模型是用参数形式去描述机械臂的关节与连杆参数、惯性矩阵、外观和碰撞属性等一系列参数之间的联系。
在URDF模型建立之后,需要配置MOVEIT。通过使用MOVEIT的配置助手对其进行相关的配置。首先,建立碰撞免检矩阵,有助于减小机械臂的运动规划时间;其次,创建机械臂的虚拟关节与建立机械臂的运动规划组;最后,定义机械臂位置、末端执行器、跟被动关节。在完成以上步骤后,即可生成机械臂的配置文件。
把全部的路径规划点添加到Waypoints数组中,然后进行路径规划,设置终端步进值为0.01,即每隔1 cm计算能否走直线的运动规划,并添加跳跃阈值与避障规划,对全部路径点的运动规划进行逆运动学求解,把逆运动学成功的路线比例值赋值给Fraction,在100次逆运动学求解过程中,如果有1次Fraction的值为1,即笛卡尔运动规划成功并开始执行该路径点的运动规划。反之,则笛卡尔运动规划失败,并把失败的Fraction值反馈给MOVEIT。
本文对脑电数据的采集与处理、与机械臂的通讯控制进行分析,招募6个年龄在21~24之间并且身体状况良好的男性受试者,视力情况均为矫正后视力正常。
对原始数据进行256 Hz降采样和滤波减小干扰,利于后期的数据分析。将处理后的数据代入公式(1)(3)计算,得到刺激频率。
在15 Hz频率下改变不同通道采集5次,对所得数据进行CCA分析的效果如表1所示。64通道在相关性上要优于其他通道,但在其所得结果正确率不如8通道,故最终选择8通道数据采集。
表1 不同通道15 Hz刺激5次得到的数据
对6名受试者数据分析结果,在8通道9 Hz采集10次,10~14 Hz各采集5次。由CCA识别结果,识别的正确率平均为91.85%。
为了确保机械臂能够正确流畅地按照指令进行操作,在实验过程中,也在Topic通讯下对机械臂的实时性进行分析,即在不同频率下分别对机械臂连续发送3个控制指令,看机械臂能否正确按照指令执行命令。
Topic通讯下PANDA机械臂的极限接收频率为3 Hz,而1个脑电信号采集与分析过程大概则需要2~3 s,因此,判断机械臂可以正确流畅地按照脑电信号执行相应的控制指令。
通过笛卡尔运动规划,可使得无规律可循的运动规矩让机械臂在三维空间下走出我们要求的相应运动路线,但笛卡尔运动规划会使机械臂运动不稳定,因此,需要降低其速度,以此来实现机械臂的稳定运行。
本文基于SSVEP的BCI,规划了脑控机器人运动方向的控制策略。在刺激呈现画面数量和刺激目标数量一定的情况下,优化布局,适当增加间距或刺激时间,可以提高正确识别率。同时在ROS平台下,基于笛卡尔运动规划下的运动规划稳定性与速度呈反比,可以通过编程调节速度来寻求较合适的运动平衡点。在刺激呈现时间、视觉传递时间和测试平台环境相同的条件下,多位受试者在SSVEP刺激下实现高准确率控制机器臂。