罗回彬,刘春丽,董思奇,陈锡柯,杨哲宇
(北京理工大学珠海学院 计算机学院,珠海 519000)
Leap Motion体感控制器的智能移动机械臂控制系统*
罗回彬,刘春丽,董思奇,陈锡柯,杨哲宇
(北京理工大学珠海学院 计算机学院,珠海 519000)
设计一种新型的移动机械臂控制系统,可以利用Leap Motion体感控制器替代传统的人机交互方式,进行手部数据采集,将其识别到的手势动作经过计算机分析处理后,通过WiFi传输给开发板,进而控制机械臂模仿人手的动作,同时由于机械臂的载体是一个加载摄像头的移动小车,可以很好地结合机械臂执行各种远程遥控任务。实验结果表明,该移动机械臂便捷灵活、操作简单,能很好地应用在各种领域。
leap motion;手势识别;移动机械臂
机器人是一种能够进行编程并在自动化控制下执行某些操作和移动作业任务的机械装置,在工业、医学、农业、建筑业甚至军事等领域中均有重要用途[1-2]。目前机器人很少是通过体感操控的[3-4],人机交互通常都是依靠鼠标、键盘、触摸屏。因此,人与机器人交互方式不够直接和简单。基于这点提出了一种新的机器人控制方式——体感控制,即操作者可以通过手势对机器人进行控制,让人直接用自己的手来指挥机器人进行动作,完成需要人机协作才能完成的任务。本项目研究的智能移动机械臂可通过Leap Motion控制,实现机械臂模仿人类所做的手势动作的功能,同时小车搭载摄像头模块更方便地实现机械臂的可操作性,实现机器人控制方式上的创新和更加自然的人机交互。
本项目主要利用Leap Motion的小巧而且识别度精准的特性,通过其对手势的动作进行分析转化,并在机械臂及小车自带搭载的WiFi环境下,进行对机械臂的控制,如图1所示。
图1 整体效果示意图
本系统主要由上位机系统和下位机系统组成,上位机系统由PC机、Leap Motion体感控制器和手机组成。下位机则由Arduino开发板、控制机械臂和控制小车组成。系统结构框图如图2所示,Leap Motion体感控制器完成对手部数据的采集,对数据进行处理并识别出手势,PC机通过WiFi把控制指令传送给Arduino开发板;而Arduino开发根据不同的指令控制机械臂各关节的旋转角度和小车的运动,从而完成预期的动作。同时,PC端和手机端也可以通过按键方式进行相应的命令操作,控制机械臂和小车完成预期的动作。
图2 系统结构框图
2.1 Leap Motion体感控制器
Leap Motion是当下流行的以手部运动捕获为主的体感设备,利用红外成像的原理获取手的运动图像,检测并跟踪手、手指和类似手指的工具,可以实时获取它们的位置、手势和动作,并将这些静态与动态信息提供给操作者。利用Leap Motion根据每帧和前帧检测到的数据所生成的运动数据,捕获不同手势和手势的运动变化信息[5]。Leap Motion采用了笛卡尔坐标系(Cartesian coordinates),坐标的原点是设备的中心,坐标的X轴平行于设备,Y轴指向上方,Z轴指向背离屏幕的方向,单位为真实世界的mm[6-8],如图3所示。
图3 Leap Motion的笛卡尔坐标系
Leap Motion检测到手掌或者手指等目标对象的时候, 其软件系统还会自动为这个对象分配一个独一无二的标识符,在设备的视野范围内如果持续检测到目标对象存在,这个标识符就保持不变。如果目标超出有效视野范围, 整个追踪过程出现丢失或者失而复得的情况,Leap Motion便会重新为目标对象分配一个新的标识符, 同时使旧的标识符失效。
2.2 机械臂模块
如图4所示,机械臂主要由大臂、小臂、舵机和机械臂爪组成。当手势信息或按键命令传给Arduino控制器后,它就先解析出动作指令再操控机械臂的舵机,让机械臂做出相应的动作,具体功能描述如表1所列。
图4 机械臂结构图
主要组成部分功能描述左舵机控制左边的小臂连杆,使机械臂实现伸长和缩短的运动右舵机控制右边的大臂,使机械臂实现上下的运动爪舵机控制机械臂爪的伸缩
2.3 Arduino开发板
Arduino开发板具有开源,模块化组装,简单实用等特性[9-11],本项目就是利用它的这些特性控制机械臂的舵机和小车的马达,从而实现对小车和机械臂的控制,大大地缩短了开发的周期。
3.1 整体软件设计及实现
本项目在软件设计与实现中,PC端采用Windows系统、C#语言,手机端采用Android系统、Java语言。如图5所示,主程序启动后,进行Leap Motion操作和按键操作的选择界面,当操作者执行一个手势或者一个按键操作后,PC端或手机端会有相应的函数对操作进行解析,再通过WiFi通信发送给Arduino开发板,然后Arduino开发板就会控制机械臂的舵机或者小车的马达,从而让它们运动。
图5 总体流程图
3.2 手势识别
手势动作具有以下三个特点:
① 时间可变性:完成同一个手势所用的时间不一致。
② 空间可变性:完成同一个手势的空间差异性。
③ 完整可变性:缺少信息或出现重复信息。
这些特点决定了动态手势的识别难度,开发人员无法抽样或将其作为一个整体来识别。因此,本项目主要通过对一只手手指的运动来进行捕获,再转换为指定的字母,化繁为简,来控制机械臂和小车。
在手势转换过程中,函数OnFrame()为最核心的函数。在这个函数中,主要利用Leap Motion SDK开发包的函数Extended()对获得数据进行处理,提取手部的运动特征。本系统可识别两类手势:一种是手指在空间运动,获得手指数量;另一种是手指在平面内画圈,包括顺时针画圈和逆时针画圈。随后,通过一个Switch()语句对手指数量的判断来转换为相应的字母命令,每一个字母都有自己的指示动作,然后通过SendData()函数将字母传送到Arduino开发板,具体流程如图6所示。
图6 手势转换过程流程图
3.3 小车与机械臂控制
图7 Arduino控制机械臂或 小车操作的流程图
进行手势识别和转换后,PC端将数据通过WiFi传送至Arduino,Arduino开发板会通过调用Serial.read()函数和Switch()语句进一步判断和指定机械臂或小车做出相应的动作,具体流程如图7所示。
3.4 WiFi通信
在Internet中,TCP/IP使用一个网络地址和一个服务端口号来唯一标识设备。其中,网络IP地址用于标识网络上的特定设备;端口号用于标识要连接到的该设备上的特定服务。根据上述原理,本项目的服务器可以理解为PC端和手机端,而客户端则是Arduino开发板。利用Arduino开发板自带的串口WiFi模块构建WiFi局域网,将电脑或手机连接到已经搭建的WiFi环境中,实现Socket连接及通信。
在本项目中,用指定的地址和端口号初始化 IPEndPoint 类的新实例,然后通过Socket编程就可以实现连接并通信。其中,设置的IP为192.168.8.1,端口号为2001,协议是TCP/IP,IPEndPoint类主要有服务器的IP地址和端口信息,实现客户端到服务器端的连接。Socket编程的基本过程如下:
① 创建一个Socket实例对象。
② 运用Connect()方法将Socket实例对象连接到IPEndPoint。
③ 接收并发送信息。
④ 最后用Close()方法来关闭Socket。
本项目在Windows7系统和Android智能手机进行实验,实验演示过程具体如下:
① Leap Motion体感控制器将手部信息发给PC端,PC端经过数据处理识别出手势和手掌的运动轨迹,并将处理后的结果传输给Arduino,小车接收命令和数据,然后做出相应的动作,如图8所示。
图8 Leap Motion控制小车停止(左)和向前运动(右)
② 手机端通过按键操作命令,将相应的命令数据传输给Arduino,机械臂和小车根据接收的命令和数据做出相应的动作,如图9所示。
实验结果表明,在各功能部件连接通畅的情况下,通过Leap Motion体感控制能很好地识别操作手势,实现对机械臂、小车的便捷控制。
[1] 田野,陈晓鹏,贾东永,等.仿人机器人轻型高刚性手臂设计及运动学分析[J].机器人,2013(5):332-335.
[2] 李波,张瑾,李国栋.排爆机器人机械臂控制系统设计[J].机电工程,2015(8):1110-1114,1150.
[3] 李泽玲.基于手势的机器人自然人机交互系统[D].广州:华南理工大学,2015.
[4] 杜钊君.基于体感传感器的手势识别及人机交互系统研究[D].武汉:武汉科技大学,2013.
[5] 翁省辉,陈韦澔,陈匡林.基于Leap Motion手语翻译器的设计与实现[J].现代电子技术,2015(24):114-117.
[6] 陶林,李凯格,王淼.基于Leap Motion手势识别的机器人控制系统[J].制造业自动化,2015(24):64-66,81.
[7] 胡弘,晁建刚,林万洪,等.Leap Motion虚拟手构建方法及其在航天训练中的应用[J].载人航天,2015(3):257-262.
[8] 胡弘,晁建刚,杨进,等.Leap Motion关键点模型手姿态估计方法[J].计算机辅助设计与图形学学报,2015(7):1211-1216.
[9] 陈吕洲.Arduino程序设计基础[M].北京:北京航空航天大学出版社,2014:5-6.
[10] 于欣龙,张阳,张岩,等.Arduino机器人权威指南[M].北京:电子工业出版社,2014.
[11] Michael Margolis.学Arduino玩转机器人制作[M].臧海波,译.北京:人民邮电出版社,2014.
罗回彬(硕士)、刘春丽、董思奇(在读本科生),主要研究方向为嵌入式系统设计及应用。
Intelligent Mobile Manipulator Control System Based on Leap Motion
Luo Huibin,Liu Chunli,Dong Siqi,Chen Xike,Yang Zheyu
(Department of Computer,Zhuhai Campus Beijing Institute of Technology,Zhuhai 519000,China)
A new design of mobile manipulator control system is proposed,which can replace the traditional way of human-computer interaction.In this design,you can use leap motion sensing controller to realize the gestures data acquisition,and the recognition of gestures are analyzed by the computer,then the data is transmitted to the development board through WiFi to control the manipulator imitate hand movements.Because the mobile car loaded a camera is the carrier of the manipulator,so it is a good combination of the manipulator to perform the various remote control tasks.The experiment results show that the mobile manipulator is convenient and flexible,simple operation,it can be used in various fields.
leap motion;gesture recognition;mobile manipulator
广东省大学生创新创业训练计划项目(201513675028)。
TP332
A
�迪娜
2016-07-14)