基于Leap Motion的仿生机械臂交互控制系统研制

2018-07-09 02:52赵禹翔刘树钰袁顺东张立红
实验科学与技术 2018年3期
关键词:体感手部姿态

赵禹翔,刘树钰,袁顺东,张立红

(中国石油大学(华东)理学院,山东 青岛 266580)

机器人技术作为自动化领域重要的发展课题,经过多年的发展已在工业领域获得了广泛的应用[1-3]。随着社会老龄化程度加快,人力资源短缺和劳务成本上升等社会问题日渐凸显,服务业急需一种可替代人工劳动且易于操作的机器。仿生机械臂作为机器人末端操作器,由于其多个自由关节在独立动作的同时又能相互配合,做出多种动作应对不同情况,能满足更为灵巧以及精细的任务要求[4-6],因此在需要高度灵活性和适应性的服务领域中受到了广泛关注。仿生机械臂是一个复杂的机器人系统,传统的控制系统大多数依靠鼠标键盘向控制器输入指令的控制模式,这种控制方法的效率过于低下,很难实现实时性和较好的交互性。最好的控制方法是用人手进行操控,让人直接用自己的手来指挥机器人进行动作。而如何获取人体手臂姿态数据则成为解决问题的关键。

目前主要是利用数据手套采集手臂姿态数据,文献[7]设计了基于数据手套的仿人机械手控制系统,该系统采用附着有传感器的数据手套,采集压力、弯曲角度等物理信息模拟手臂姿态。这种系统校准调试复杂,价格昂贵易于损坏,很难在民用领域推广。

随着体感技术的飞速发展,采用计算机视觉获取人体手臂姿态数据是目前人机交互领域发展的主要趋势,在交互的自然性与成本上有很大的优势。本文以机器人仿生机械臂为研究对象,采用Leap Motion体感传感器获取人体手臂各部位空间位置坐标信息,根据手部姿态算法将空间坐标转化为手部的角度参数,经PC端串口将信息发送给单片机控制仿生机械臂完成同步运动。对本文方案进行了实验测试。测试结果表明,该控制系统不仅能灵活地控制仿生机械手动作且具有自然、实时性强的优点,提升了仿生机械手操作性能和操作效率,实现了机器人控制方式上的创新和更加自然的人机交互[7-9]。

1 原理分析

1.1 Leap Motion手势传感设备

Leap Motion是Leap公司生产的一种专门采集手部运动信息的传感器,其内部主要由三支红外LED和两个红外摄像头构成[10],如图1所示。

图1 Leap Motion内部结构

Leap Motion的工作原理是红外立体视觉原理[11]。红外LED通过频闪在滤光片上方区域发出扇形的结构光线,双红外摄像头对反射回来的红外光进行光跟踪,利用视差对进入视野识别区内的目标建立三维影像模型,并实时获取目标的空间信息。其识别空间为倒置的金字塔型,塔尖位于设备中心,有效探测范围在设备上方25~600 mm处。Leap Motion工作原理如图2所示。

图2 Leap Motion工作原理

对影像进行噪点过滤和背景分离处理后,可获得含有空间信息的目标影像数据,Leap Motion的采集速率为100~200帧/秒,精度高达0.1 mm。通过内部高速芯片对数据进行数字化处理发送至计算机内,计算机内置的后期处理软件经图像识别和三维模型还原运算后可获得诸如手、手腕、手指等信息,并将手势和动作等静态与动态信息反馈至桌面应用程序[12-15]。

2 系统结构设计

本系统主要由数据处理系统和机械臂控制系统组成,系统总体结构如图3所示。

图3 系统总体结构

数据处理系统由Leap Motion体感控制器、PC机和显示器组成。系统的主要功能是通过对手部骨骼参数的采集和手部姿态参数的处理获取定量描述手型的数据,并通过COM串口传送给仿生机械臂控制系统。

机械臂控制系统主要由仿生机械臂和驱动电路组成,系统的主要功能是对不同的运动触发信号产生映射对应舵机角度的脉冲宽度调制(pulse width modulation,PWM)波,控制驱动电路驱动指定舵机,调整机械臂姿态,以此来完成机械臂的同步仿生动作。

3 系统程序设计

3.1 手部骨骼参数采集

程序初始化完成后,Leap Motion开始检测识别区内是否有人手出现。当区域内出现人手后,体感传感器对手部持续跟踪并发送数据,并将关键数据发送给桌面控制系统。

控制系统使用微软.Net架构中C#语言开发,系统中所使用的Frame类代表了在一帧中检测到的一组手和手指的追踪数据,在该子类中返回值为FingerType函数可获取当前帧中检测到的所有手指对象。在Bone类里调用BoneType函数可获取一个手指列表,该列表包含了识别到的这只手的所有手指指骨对象。通过调用Vector类中包含的Direction、Position或 Velocity等属性可获取手指的方向、位置或速度等多种参数,以定量描述设备识别空间内的手形及动作。系统所使用的类和函数之间的关系如图4所示。

图4 类和函数之间的关系

3.2 手部参数的处理

为准确描述用户手掌的空间姿态,使用关键点参数作为人手姿态的具体表达方法,构建关键点模型代替复杂的人手约束模型,使人手的3D信息精简为手部骨架信息。人体每个手指的骨骼分别由4个骨节组成,分别为远端指骨(distal)、中间指骨(intermediate)、近端指骨(proximal)以及掌骨(metacarpal),人体手部骨骼模型如图5所示。

图5 人体手部骨骼模型

利用Vector类中的Direction属性可获取每个骨节的三维朝向向量坐标。在只考虑自主扭曲的情况下,手指的弯曲状态可近似用近端指骨和掌骨向量间夹角定量表示。以食指为例:设θ2为食指关节弯曲的夹角,已知(x1,y1,z1),(x2,y2,z2)分别为近指关节与远指关节朝向向量。

由此,根据三角函数中向量夹角公式

求解反三角函数得:

实现代码如图6所示。

图6 实现代码

各手指自由弯曲时角度的变化范围如表1所示。

表1 各手指角度变化范围

3.3 系统流程

将数据采集、处理、转化后通过COM口发送至机械臂控制系统以实现对仿生机械臂的控制。系统流程图如图7所示。

图7 系统流程图

4 实验测试

为对仿生机械臂控制系统的实际运行效果进行验证,本文针对系统的交互效率和易用性设计了实验。实验平台的硬件环境包括一台处理器频率为3.2 GHz,运行内存为4 GB的 PC机,Leap Motion v2体感传感器和仿生机械臂及其控制装置。使用Leap公司提供的SDK V2.3.1 for Windows获取Leap Motion传感器返回的手部关键点数据。

为验证仿生机械臂仿生人手动作的真实程度,本文设计了如下实验,实验先选取仿生机械臂的整体动作过程进行研究,研究人员将右手手部放在Leap Motion的识别空间内,待体感传感器检测到手部后随机做出手势动作并保持一段时间。这个过程中,体感传感器每8 ms完成一次数据采集,并转化成手指关节角度的曲线图如图8所示。图8中每条曲线表示一个手指角度随时间的变化。动作过程结束时操作者手部的真实图像和仿生机械臂的图像如图9所示。

图8 手指关节角度随时间变化曲线图

图9 实验动作过程结束时图像

从图8的曲线图可以看出,体感传感器采集数据过程较为平稳,角度变化数据可真实反映手部动作过程。

在姿态吻合度和通用性实验中,选取在实验室中工作的10名在读本科生作为实验志愿者,让被试者采用Leap Motion交互方式完成控制任务。实验要求实验者将右手放置在Leap Motion识别区域内部,做出动作并等待机械臂动作完成后记录当前数据,将手部恢复初始动作后再依次做出其余动作。实验记录的数据包括每次动作开始到仿生机械臂动作结束的时间差,体感传感器采集到的手部原始数据和处理后获得的手部姿态数据,将仿生机械臂动作、真实的手部图像和获得的数据进行比对,分析不同情况下三者间的吻合程度并对其进行评估。不同状态下手臂真实图像和仿生机械臂姿态如图10所示。由于相机的摆放位置、拍摄角度难以完全一致,所以人手真实图像与仿生机械臂动作姿态存在一定的视角差异。

实验结果显示,在人体手部自然动作且无遮挡的情况下,仿生机械臂在一定精度范围内能够较好地模拟人体手部姿态,整个过程中帧数维持在110~150帧/秒高速率范围,动作延迟小于200 ms,能够实时控制仿生机械臂跟随人手进行相同的动作序列,在人眼观察中已经属于同步运动。在不同人不同手势操作过程中,仿生机械臂均能保证手型姿态与真实手基本一致,对不同手型具有良好的适用性,符合人机交互通用性的条件。

图10 不同状态下实验图像

5 结束语

本文针对现有仿生机械臂控制方法存在的弊端,提出了基于Leap Motion的仿生机械臂控制方法。利用体感控制技术结合仿生机械臂控制技术,使用C#语言开发了控制仿生机械臂的实时交互控制系统,研究了根据手部姿态算法处理手部姿态特征数据与手势交互控制的关键技术,并在此基础上实现了仿生机械臂的仿生控制,使机械臂能够实时模拟并完成大多数人体手臂的基本动作。测试结果表明,系统运行稳定,实时性良好,且具有良好的操作性能。与传统的基于 “鼠标+键盘”的控制方式相比,该控制方法可以较为灵活快速地对机械臂进行控制,能够大幅提高操作效率,降低用户的操作强度。控制过程简单有效,人机交互流畅自然,可在工业控制和服务业等领域内进行推广,应用前景良好。

[1]胡弘,晁建刚,杨进,等.Leap Motion关键点模型手姿态估计方法[J].计算机辅助设计与图形学学报,2015(7):1211-1216.

[2]张昊,王超亮,田文龙,等.同步仿生机械臂设计[J].兵工自动化,2015,34(5):77-80.

[3]卢浩然,张宇,牛苗苗,等.基于Leap motion的三维文物虚拟拼接方法[J].系统仿真学报,2015,27(12):3006-3011.

[4]刘春,李秋雨.Leap Motion体感控制器及其在飞机结构展示系统中的应用[J].计算机应用与软件,2016,33(4):227-229.

[5]康杨雨轩,郑文,李松林,等.基于Leap Motion的机械臂交互控制研究[J].传感器与微系统,2016,35(6):34-37.

[6]林德江,井志胜,王国德,等.基于Leap Motion体感控制技术的数字化展示系统研究[J].火炮发射与控制学报,2015,36(4):86-90.

[7]韦婷,肖南峰.基于数据手套的仿人机械手控制系统[J].计算机工程与设计,2009,30(7):1707-1711.

[8]严利民,杜斌,潘浩,等.基于Leap Motion的三维动态手指姿势识别[J].激光与光电子学进展,2016(11):86-92.

[9]陈敬德,赵文丽,梁洪涛,等.基于Kinect的机器人控制系统[J].电子设计工程,2014,22(10):81-84.

[10]胡弘,晁建刚,林万洪,等.Leap Motion虚拟手构建方法及其在航天训练中的应用[J].载人航天,2015, 21(3):257-262.

[11]吴福理,丁胤,丁维龙,等.基于Leap Motion的虚拟农作物人机交互系统设计[J].农业工程学报,2016, 32(23):144-151.

[12]张雨薇,林雄民.基于仿生机械臂的体态遥控与可视化系统设计[J].电子技术应用,2015,41(12):22-24.

[13]陶林,李凯格,王淼.基于Leap Motion手势识别的机器人控制系统[J].制造业自动化,2015,37(24):64-66.

[14]林燕姿,赵翠莲,范志坚,等.基于机器视觉的抓握状态模型及其适用性[J].计算机应用与软件,2015(8):166-169.

[15]SMERAGLIUOLO A H, HILL N J, DISLA L, et al.Validation of the Leap Motion Controller using markered motion capture technology[J].Journal of Biomechanics,2016, 49(9):1742-1750.

猜你喜欢
体感手部姿态
手部皮肤软组织缺损修复的皮瓣选择
体感交互技术在脑卒中康复中的应用
攀爬的姿态
人体体感感知机械手设计与实现
全新一代宋的新姿态
跑与走的姿态
非触控式的体感机械臂交互控制系统研究
谁是创意大玩家——创意手部彩绘
体感语境下的交互行为设计
发生于手部的硬下疳一例