一种仿生机械手肌电控制系统的设计与实现

上传人:杨*** 文档编号:474849411 上传时间:2024-05-02 格式:DOCX 页数:12 大小:29.79KB
返回 下载 相关 举报
一种仿生机械手肌电控制系统的设计与实现_第1页
第1页 / 共12页
一种仿生机械手肌电控制系统的设计与实现_第2页
第2页 / 共12页
一种仿生机械手肌电控制系统的设计与实现_第3页
第3页 / 共12页
一种仿生机械手肌电控制系统的设计与实现_第4页
第4页 / 共12页
一种仿生机械手肌电控制系统的设计与实现_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《一种仿生机械手肌电控制系统的设计与实现》由会员分享,可在线阅读,更多相关《一种仿生机械手肌电控制系统的设计与实现(12页珍藏版)》请在金锄头文库上搜索。

1、 一种仿生机械手肌电控制系统的设计与实现 崔雪渭,彭熙,2,3,颜顺,陈含丽子,杜笛箫,杨琬晨(1 华中师范大学 计算机学院,武汉 430079;2 湖北省高等学校计算机基础实验教学示范中心,武汉 430079;3 湖北省人工智能与智慧学习重点实验室,武汉 430079)0 引言随着控制技术、信息技术等现代科技的飞速发展,拥有与人手相似结构的仿生机械手已具备很强的灵活性,因而可代替人手完成复杂操作,成为医疗保健、资源勘探、灾难救援等诸多领域的实用工具1。表面肌电信号(Surface Electromyography,SEMG)是肌肉收缩时伴随的电信号,是在体表无创检测肌肉活动的高效方法,在人机

2、交互控制、手势识别等领域发挥着重要作用2。在仿生机械手结构设计方面,Xu 等人3提出了一种与人手高度相似的仿生机械手结构。在肌电信号方面,程扬威4对基于多通道表面肌电特征图像的手势识别进行了深入研究,通过提取不同表征的肌电特征及深度学习,实现了对不同手势的精准识别。吴娜5也提出了一种基于一维卷积神经网络-独立循环神经网络(Conv1D-IndRNN)模型的手势识别算法,提升了通过表面肌电信号进行手势识别的准确率。但是对于如何将肌电信号处理与仿生机械手控制相结合,构成面向仿生机械手的肌电控制系统,却少见成熟可行的设计。本文提出了一种面向仿生机械手的肌电控制系统的设计与实现,即仿生机械手能够实时模

3、拟手部动作,可用于灾难救援、医疗恢复,也可用于排爆等高危环境中。1 仿生机械手肌电控制系统的整体设计及分析本文所设计的仿生机械手肌电控制系统大致可以分为3 个部分:肌电信号的采集、肌电信号的处理和动作匹配。首先,利用六导联肌肉电传感器搭配Arduino UNO 采集肌电信号;然后,树莓派接收Arduino UNO 传送的数据,进行数据处理和加工;最后由树莓派做出判断,向仿生机械手发出运动指令,使其执行相应的动作。各组成部分的结构框架如图1 所示。图1 仿生机械手肌电控制系统的结构框架Fig.1 Structural framework of myoelectric control system

4、 of bionic manipulator本文选用的肌电传感器为六导联肌肉电传感器,能够采集人体手臂或者腿部的表面肌电信号,并对其进行一系列的放大与滤波处理。还有2 种通道增益方式,也可结合Arduino UNO 输出原始肌电信号或者包络后的肌电信号。树莓派是一款基于ARM 的微型电脑主板,以SDMicroSD 卡为内存硬盘,不仅具备所有PC 的基本功能,还有着丰富的硬件接口。本文使用的树莓派四代B型,具有40 个引脚接口,不仅可以读取肌电传感器采集的肌电信号并进行处理匹配,还可以与仿生机械手进行串口通信,以控制仿生机械手做出与肌电信号相对应的动作。本文选用了树莓派和并行舵机控制板协同工作的

5、方式,根据通信原理及舵机控制指令对树莓派控制系统进行设计。即树莓派在对肌电信号加以处理后,将进行仿生机械手的动作匹配,再向并行舵机控制板发出相应命令,从而控制仿生机械手对动作进行实时模拟。2 肌电信号的采集与处理2.1 肌电信号肌电信号,是人体运动时肌肉产生的生物电信号,能够反映肌肉动作的状态。当人的肌肉在运动时,相应的肌肉群会发生收缩。比如,当人的右手运动时,会受到大脑中枢神经系统的控制,右手骨骼肌的肌肉将会收缩以完成相应动作,此时就会在皮肤表面产生生物电信号。肌电信号具有微弱性、低频性、易受干扰性等特点6,其幅值主要在1005 000 V,频率范围在01 000 Hz,信号中的主要能量和频

6、谱主要集中在10500 Hz。同时,采集肌电信号时易受电极位置、皮肤状态、场所噪音等影响。2.2 肌电信号的采集目前,肌电信号的采集方式主要有2 种:侵入式采集与非侵入式采集。两者的区别在于采集的位置和方式不同。其中,侵入式采集需要把针极刺入被试者的肌肉组织内部,这样一来信号采集的过程就不受外界干扰,但在一定程度上会对被试者造成伤害;非侵入式采集需要把电极贴片与被试者的皮肤表面接触,通过此种方式采集到的信号就是表面肌电信号。本文选用六导联肌肉电传感器进行肌电信号的非侵入式采集。其前端采集电路通过16 通道采集人体手臂或者腿部的肌电信号,并对SEMG 进行一系列的放大与滤波;中端通过单刀双掷开关

7、切换Envelope Mode 和RAW Mode 输出信号;后端采用Arduino UNO 采集中端的输出信号,并控制LED灯发光,可以通过其亮度快速得出SEMG 信号的强度。肢体所完成的动作是依靠若干肌肉相互协调所致,并非其中一块肌肉单独引起的。人体手臂的肌肉分布如图2 所示。图2 人体手臂肌肉分布示意图Fig.2 Schematic diagram of human arm muscles经过反复的实验测试,发现指部的伸屈与肱桡肌、指浅屈肌、指深屈肌、尺侧腕屈肌和桡侧腕屈肌的关系更加紧密。故将肌电传感器的一次性贴片电极贴在上述肌肉组织上进行采集。该电极贴片与肌肉接触面积小,从而能够减少周

8、边肌肉对选定肌肉的信号干扰。根据前人的医学研究发现,在被试者手臂上放置45 个电极片,可使动作识别率最大化。2.3 肌电信号的处理在多通道肌电信号的数据处理中,活动段检测是极其重要的一个部分,可以确定很多组手势中每一个手势动作的起始时刻和终止时刻,对每一个手势动作进行划分。信号的活动段检测能够对连续多个手势动作进行准确判别,直接影响着后期的特征提取和模式分类。本文使用移动平均法进行活动段检测。移动平均法是短时能量检测算法中一种典型方法,能够从连续的肌电信号中有效区分出活动段和静息段,方便不同手势动作的识别。3 动作匹配算法3.1 卷积神经网络在初步采集中,共收集了3 个动作的39 445 条肌

9、电信号数据。由于采集时肌电传感器使用了2 个通道,因此数据集的总维度是39 4452,对应39 445个标签。此后,根据标签将数据转换为3 个部分,并在每个部分中进行分组操作,每200 个合并为一组,因此每一组的维度为20021,作为卷积神经网络的输入。在训练过程中将数据集打乱,同时对标签数据进行one-hot 操作,并取80%作为训练集,20%作为测试集。在构建神经网络模型时使用了Python的Keras 模块,该卷积神经网络共有5 层、即3 层卷积层和2 层全连接层,如图3 所示。图3 卷积神经网络模型图Fig.3 Convolution neural network model每一层经过

10、卷积操作后得到的特征图大小的计算公式如下:特征图的数目由卷积核个数决定,因此每一次卷积操作之后得到的特征图大小为(高度,宽度,卷积核个数)。本文中,选择了基于梯度优化算法的Adam 优化器,损失函数则选择了多分类研究任务中常用的categorical_crossentropy。训练过程共迭代100次,每次训练的数据样本量为64。训练后的损失值如图4 所示。图4 训练集和测试集损失值Fig.4 Loss value of training set and test set3.2 KNN 分类算法考虑到树莓派达不到正常PC 机的算力,为了能够在用树莓派运行时取得实时的效果,本文采用了KNN 分类算

11、法,KNN 算法作为最经典的机器学习算法之一,实现起来也十分简单。KNN 算法的核心思想为:如果2 个样本足够相似,即在特征空间中的距离足够近,则这2 个样本大概率属于同一类别。为了提高判断的准确率,在实际应用中通常寻找离待测样本最近的K个样本,根据K个样本的类别来判断待测样本的类别。在不考虑距离权重时,K个样本中哪种类别的样本数量最多,则待测样本同属于此类别。本文使用了Sklearn库中的KNeighborsClassifier 来实现KNN 算法。首先是采集数据,将采集到的握拳、张开以及Yeah 手势的数据集分别设置标签,依据标签分成三大组。而后将一个标签中的数据视为KNN 中的一个点,将

12、数据集中80%的数据设置为训练集,将数据集中20%的数据设置为测试集。之后将数据进行存储后便可以进行K个预测投票,再利用测试集中的数据进行测试,发现精度达到96%,属于简单的学习任务,适用于KNN 算法。用新数据预测时,可按行读取输入的数据,并按行投票判断归属于哪一类,最终将每一行的结果再依据类别进行累计,输出累计数目最多的结果。4 机械手结构设计4.1 整体设计本机械手具有高度的仿生性能,根据人手手指关节的结构和运动自由度进行设计,采用了连杆结构,使得一个伺服舵机能够控制一个手指上3 个关节的运动,即伺服舵机通过主舵转动推动连杆使得一个手指向前弯曲,主舵反方向转动拉动连杆使得手指伸张,如图5

13、 所示。这样的结构能够使仿生机械手比较轻巧灵活地实现人手的动作。图5 机械手连杆结构Fig.5 Connecting rod structure of the manipulator4.2 伺服舵机仿生机械手使用的舵机是LX-224 双轴总线舵机,如图6 所示。LX-224 双轴总线舵机扭矩为20 kg,自由度为180,能够充分满足手指关节的运动需求。图6 LX-224 舵机Fig.6 LX-224 steering gear该舵机为并行舵机,在舵机控制系统中,本文研制并开发了一款具有多并行舵机控制功能的舵机控制板。舵机控制板大多以单片机(STM32STM8等)作为核心,本文的并行舵机控制板以

14、单片机STM8S003 为主板。STM8S003 提供了10 比特模数转换器、3 个定时器、1 个串口、1 个IIC 等功能模块。同时并行舵机控制板内还集成了2 块PCA9685 作为驱动模块。驱动模块PCA9685 是一款IIC 总线控制的16 通道的PWM 波发生器,每个输出通道都有自己的12 位分辨率固定和频率单独的PWM 控制器,该控制器在典型的241 526 Hz 的可编程频率下运行,占空比在0%100%范围内可调。PCA9685 还具有一个外部时钟输入引脚,可以接受用户提供的时钟(最大50 MHz),代替内部25 MHz振荡器,此功能允许同步多个设备。仅占用主控板的4 个引脚,通过

15、IIC 通信协议就可以驱动16 台舵机。此外,可以通过级联的方式最多级联62 个驱动板。本机械手所使用的并行舵机控制板共级联了2个驱动板,可以驱动32 台舵机。并行舵机控制板如图7 所示,控制板电路图如图8 所示。图7 并行舵机控制板Fig.7 Parallel steering gear control board图8 舵机控制板电路图Fig.8 Circuit diagram of steering gear control board5 系统硬件设计本文所涉及的系统主要由树莓派4B、并行舵机控制板、并行舵机、肌电传感器、Arduino 等部分组成。控制系统各模块硬件连接如图9 所示。图9

16、 控制系统各模块硬件连接图Fig.9 Hardware connection diagram of each module of control system5.1 硬件的配置为了满足本文硬件需要,树莓派需要设置开机自启动项,同时通过配置文件来修改树莓派的设备树,改变引脚的映射关系,将ttyAMA0 映射到引出的GPIO Tx Rx上,以此使用高性能的硬件串口。Arduino 需要使用A0A5和D0D13的引脚完成与肌电传感器的数据传输、控制LED 灯等功能。此外,还要使用USB 线将Arduino 与树莓派进行连接。5.2 硬件通信模式设计5.2.1 Arduino 与肌电传感器之间的通信Arduino 与肌电传感器之间通过Arduin

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 信息产业

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号