基于数据手套体感控制的机械手研究

2021-06-27 03:25朱颖杨荻铠邴林园师平温德军
电子设计工程 2021年12期
关键词:手部机械手手套

朱颖,杨荻铠,邴林园,师平,温德军

(广东工业大学华立学院,广东广州 511325)

随着信息技术的飞速发展,人机交互由以机器为中心向以人为中心发展,即机器要协同用户进行交互[1]。数据手套作为一种新型的输入设备被广泛应用于众多的人机交互系统中[2]。数据手套能够捕捉手部姿态,是提高虚拟现实技术操作真实性的重要手段[3]。国内外对数据手套进行了大量研制[4-5],如Immersion 公司的CyberGlove 和南非的5DT Glove、国内的CAS-Glove 和Wise Glove[6],国内学者也对数据手套做了一些应用和算法研究[7-8]。随着机械控制技术的发展,机械手作为一种机械与电子元件控制一体的具有抓取和移动物体功能的新型装置,很好地帮助人们完成繁复的劳动工作,已在众多领域得到了广泛应用,但许多复杂环境的工作仍需技术人员亲自操作,如矿山作业等。文中提出一种基于数据手套体感控制机械手作业的方案来解决该问题。通过数据手套的传感器获取手指伸展、弯曲,手背弯拱、手腕位姿等状态信息传给主控器,进而控制机械手对物体进行抓取、移动、装配,对设备进行操纵、控制等动作。

1 总体设计

基于数据手套的机械手体感控制系统通过数据手套上的传感器来采集佩戴者的手部运动变化信息,采集到的信息经过主控器ATmega2560 修正处理后进行手部姿态信息的识别,将识别结果通过HC-05 蓝牙模块实现与从控器的无线通讯,从控器结合PID 算法控制手指电机与手腕舵机动作,同时采集机械手位姿信息反馈给从控器,使机械手与数据手套佩戴者手部姿态同步。

基于数据手套的机械手控制系统主要包含硬件系统与软件系统。硬件系统包含数据手套设计与机械手设计,主要包含主控制器ATmega2560、Flex 弯曲传感器、微电机系统(Micro Electro Mechanical System,MEMS)姿态传感器、无线模块、手指电机和手腕舵机。硬件系统框图如图1 所示。

2 硬件设计

2.1 数据手套设计

数据手套根据其工作原理的不同主要有图像数据手套、机械数据手套、光纤数据手套和微惯性传感器数据手套[9]。图像数据手套对环境要求较高,特别是受光照影响大;机械数据手套笨重,操作携带不方便;光纤数据手套寿命短,易疲劳;微惯性传感器数据手套轻便耐用,对环境要求低,易更换,但所需传感器数量多[10],改进数据处理算法可减少传感器数量[11]。文中设计的数据手套为传感器数据手套,共采用6个微惯性传感器。

文中数据手套采用ATmega2560 作为主控制器,由Flex4.5 单向薄膜弯曲度传感器和MEMS 姿态传感器进行数据采集。数据手套的弯曲传感器与姿态传感器的分布如图2 所示,S1~S5 均为弯曲传感器,分布在5 个手指头上,并在关节处固定,用于采集各手指弯曲信息;W1 为姿态传感器,位于手背,用于获取手掌拱度与手腕动作信息。佩戴者戴上手套后,可以通过检测手部运动提供反馈[12]。

图2 数据手套

ATmega2560 是一个基于Microchip 的8 位AVR RISC 高性能、低功耗微控制器,最小系统板上拥有54 个数字输入/输出引脚,16 个模拟输入分辨率为10位,为数据采集和处理提供良好环境。

Flex4.5 单向薄膜弯曲传感器为四层薄膜结构,最外两层为传感器增加强度和弹性,中间层由两层电阻薄膜构成。当传感器弯曲时,上下电阻薄膜相互滑动引起阻值变化,电阻不同使得输出电压发生变化。Flex4.5 通过不同的电压信号获取手指弯曲信息,其工作原理如图3 所示。ATmega2560 将模拟量电压信号转化为数字量进行读取,5 V(其最大值)时读数为1 023,0 V 时读数为0。

图3 弯曲传感器工作原理

测试弯曲传感器在平坦舒展状态下电阻约为5 Ω,弯曲至90°时电阻约为50 kΩ,将其与22 kΩ电阻串联可获取线性模拟值,因此将其与22 kΩ电阻串联连接至ATmega2560 模拟脚即可通过读取电压判断手指弯曲状态,可以较为准确地得出佩戴者手指弯曲角度。

微电机系统(MEMS)惯性传感器在移动智能设备上广泛应用[13]。MEMS 内部有一个连接在弹簧上的质量块,弹簧被限制在一个方向移动,并且有固定的极板。当加速度在特定方向作用时,质量块移动,极板与质量块之间的电容发生变化,将电容的这种变化处理映射得到加速度值。通过加速度与速度位移的关系能测量某段时间的相对速度和位移,使得手掌的姿态信息可以通过获取传感器的模拟信号来确定。

2.2 机械手设计

机械手设计包括结构设计和控制电路设计两部分。机械结构仿照成年人右手骨骼进行设计,控制电路主要包括控制器、手指拉线电机、手腕舵机及姿态传感器组成。

成年人手骨主要由节指骨和关节组成,关节分为手指关节和手腕关节,如图4 所示。

图4 人类右手骨骼结构

不同关节间左右侧摆和弯曲决定了机械手的姿态,为了更好地仿人手动作,该机械手共设有17 个自由度:大拇指有2 个自由度,其余四指各有3 个自由度;手掌与无名指、小指有2 个侧向自由度,手掌与大拇指有一个自由度。机械手结构如图5 所示。为了实现正常抓握功能,手掌分别设计了大拇指、无名指和小拇指的转向轴承。无名指和小拇指转向轴承可使其自由移动到手掌内侧,以实现向内的锥形运动,使抓握动作更加自然。

图5 机械手结构

机械手控制电路使用ATmega2560 作为从控制器,通过IO 口对机械手的7 个电机进行PWM 控制,以实现机械手与人手姿态的同步动作,其中5 个拉线电机控制手指指节的弯曲伸展运动,2 个舵机旋转控制手掌的姿态,并在机械手上设置MEMS 姿态传感器,用于实时采集机械手手掌的姿态,并反馈给控制器,使机械手动作更加精准。

3 软件设计

3.1 主流程

软件设计主要包括数据采集模块、手姿态数据修正和机械手PID 控制三大模块。数据手套通过采集数据获取手部姿态的信息,将所收集到的手指信息通过数据修正和滤波处理后,映射为PWM 的占空比来控制拉线电机的松紧程度,手掌部分则通过闭环PID 计算出PWM 占空比控制舵机转动来控制姿态。控制主流程图如图6 所示。

图6 主流程图

3.2 手势识别算法

手势识别通过使用特定的硬件设备来捕获佩戴者手部动作,并将捕获到的手部特征转换为信号量,传递给计算机3D 模型手完成驱动操作。其实质是识别佩戴者做出的手部动作和操作意图,并形成相应操作命令。

手势识别过程包括以下步骤:运动捕获、数据修正和手势识别。

数据手套采集的手部运动信息包括5 个运动关节(食指、中指、无名指、小指、拇指)和2 个加速度变化量(X,Y)信息。手部运动信息如图7 所示。

图7 手部运动信息

数据手套通常需要不同人员佩戴,不同佩戴人员手的大小和关节之间的长度不同[14]。数据手套输出数据存在一定的噪声和波动,直接使用原始数据计算机械手关节角将造成机械手运动控制的不稳定。人不同手指的关节有差异,运动也有差异,而关节自身有一定的活动范围。如果将收集的数据直接用于操作命令,则会出现与佩戴者手部姿势不同步的问题[15],因此必须对原始数据进行滤波消抖去噪处理来获取平滑、稳定的关节角信号[16]。

为了保持数据手套的通用性与精确性,文中对采集的数据进行归一化、限幅消抖和平滑滤波等处理。

首先,求手指节长度的平均长度,将手指节长度归一化为平均长度,即使手指节长度发生改变也不会造成关节间的夹角变化。

然后,对归一化后的数据进行限幅消抖,主要目的是消除大幅度数据波动。对各运动节数据进行限幅约束,数据修正如表1 所示。假设当前手套弯曲度传感器测量值为c,若c∈(a,b),则修正后弯曲度w=c-d;若c>b,则弯曲度w=b-d;若c<a,则弯曲度w=ad。约束参数确保当前c值一直都在约束参数区间内。

表1 数据修正表

下一步将限幅消抖后的数据进行平滑滤波,文中采用卡尔曼滤波算法进行平滑去噪。卡尔曼滤波算法是利用线性系统状态方程来进行平滑去噪[17]的,可以消除微小范围内的波动,使计算出的机械手弯曲角更加稳定、平滑[18-19]。

假设某一个手指的活动角度是M,修正参数为d,则当前的弯曲角度N可以通过式(1)得到:

通过该关系可以定义每个手指的姿态,完成手部姿态的同步。

3.3 机械手PID控制

PID 控制广泛应用在机械设备和电子设备控制中。PID 控制通过将实测值与给定值进行比较,从而计算出偏差量e(t),调节Kp、Ki、Kd使其误差变小,同时兼顾调节时间和超调量等系统动态参数。数字PID 包括位置PID 算法、速度PID 算法和增量式PID算法。PID 算法由3 部分组成,分别为比例、积分和微分,如图8 所示。

图8 PID算法

为了使得机械手的运动更平滑,文中加入位置PID 控制算法对手腕舵机进行调节。位置PID 算法可以优化判断当前系统的实际位置的响应性、稳定度和识别度,如式(2)所示。

其中,Kp是比例系数,Ki是积分系数,Kd是微分系数,当前误差是上次误差。位置PID 算法为当前系统实际位置与预期位置的偏差。比例部分只与当前偏差有关,积分部分则是系统过去所有偏差的累积。文中对输出进行限幅控制,以防输出不变而积分项继续累加造成积分饱和过深。

系统采用PID 控制主要是为了消除静态误差,提高系统控制精度。调节积分参数可消除静态误差,在消除静态误差的同时也增加了系统的震荡次数,使响应变得缓慢,加入微分、比例两参数来减少系统震荡,加快响应速度。其控制输出曲线效果如图9 灰色曲线所示,黑色曲线为没有进行PID 控制的响应曲线。

图9 PID控制输出曲线对比图

4 实验验证

采用文中研制的数据手套、手部姿态算法与机械手控制算法,设计仿真试验进行验证。首先搭建仿真机械手控制系统,实现对机械手的体感控制。

4.1 实验平台搭建

实验平台包含操作者、数据手套、数据处理平台和仿真平台。

仿真部分采用Matlab/Simulink 环境进行实验。首先用SolidWorks 对机械手进行建模,然后通过SimMechanics Link 将机械手3D 模型转移到Matlab中并转换为Simulink 模型,自动生成body blocks 和joint blocks,如图10 所示。

图10 Simulink环境中机械手3D模型

然后在Simulink 中建立模型控制系统,将3D 模型手的控制分成6 个子系统:模拟量输入子系统、数据修正子系统、PID 控制子系统、关节驱动子系统、3D 模型子系统和传感器子系统。

4.2 验 证

在仿真控制模式下,操作者佩戴数据手套控制仿真机械手从完全伸展状态运动到食指按键动作,并保持该动作,由此实现仿人机械手对设备的操作,如图11、12 所示,不同工作状态下的手指角度弯曲角度如表2 所示。

图11 舒展状态

图12 食指按键状态

表2 不同工作状态下的手指角度

然后再回到伸展状态模拟抓取工件并握紧,实验效果与角度参数如图13 所示。

图13 握紧状态

由实验结果可以看出,数据手套很好地达到了控制机械手的预期效果,完成简单的同步作业操作。要完成更加精细的动作还需对机械手进一步优化。

5 结束语

机械手作业动作主要包括抓握、松开、食指按等动作,文中仿人手设计了机械手,经仿真验证,可同步完成机械手基本的作业动作。文中设计了简单便携的数据手套,用于采集人手姿态信息。针对不同操作者节骨的差异性,对指骨长度进行了归一化处理;针对数据干扰噪声以及不同手指关节的差异性,提出了限幅卡尔曼滤波算法。实验证明,该方法能有效去抖滤波,使机械手弯曲角更加稳定、平滑。

针对机械手动作的不稳定性,使用了位置PID来消除误差,为避免误差累计对输出进行了限幅处理。实验验证,该方法能有效消除静态误差、消除振荡、快速响应,使机械手动作更稳定、平滑和流畅,能达到人手控制机械手同步动作的效果。

猜你喜欢
手部机械手手套
手部皮肤软组织缺损修复的皮瓣选择
棉手套
做只手套好过冬
TRIZ与情景分解法在换刀机械手设计中的应用
神秘的白手套
机械手式自动打结机
棉手套
基于粒子群迭代的一种冗余机械手逆解算法
搬运机械手PLC控制系统设计
两种皮瓣修复手部软组织缺损的比较