李知菲 卓旭亚 鲍盛林
摘要:介绍人机交互课程的创新实验项目——体感控制的机械臂设计开发的关键技术和方法,阐述创新实验的具体设计过程,为体感控制技术更快从理论走向应用提供参考。
关键词:人机交互;体感控制;机械臂;创新实验
1.人机交互课程开设刨新实验项目的背景和意义
人机交互(human computer interaction,HCI)是计算机及相关专业的核心课程。经过多年的发展,当前的人机交互方式已经从过去依赖键盘鼠标的时代,发展到以人为中心的自然用户界面(natural user interface,NUI)的新阶段。浙江师范大学数理与信息工程学院面向计算机、软件工程等相关专业的研究生和计算机技术非师范专业的高年级本科生,开设人机交互课程。为了帮助学生更好地学习这门课程,了解主流的交互技术和产品,我院的课程除了重视人机交互理论教学外,近年来,陆续增设了人机交互课程设计、Arduino控制系统开发实训等实验实践课程,形成了完善的课程体系。课程借助多媒体课件提高课堂效率,力争以较少的课时讲明白人机交互的基本原理、基本方法,加大实践环节比重。通过精心设计的实验和实践项目,让学生在完成整个课程的学习过程中,自主学习、主动学习,掌握课程知识点,提高教学绩效,构建项目化教学情境,转变教师和学生的角色观念,使学生在做中学、用中学,提高了学生独立分析问题和解决问题的能力和创新素质。
在课程的实验教学中,除了必要的理论验证性实验外,为了调动学生的学习兴趣,我们特意开设了32学时的创新实验,在每学年的短学期,即实践教学周开课。通过精心挑选和设计,选用了基于Kinect体感镜头和Arduino控制器的体感控制机械臂项目。这是因为该项目代表着智能机器人领域研究和应用的一个典型——机械臂。作为目前应用最为广泛的机器人,机械臂不单基于计算机科学专业,更与机械、控制、电子工程和生物学等学科相关,是一种设计复杂但却非常实用的机器人。以机械臂的体感控制为着眼点进行人机交互的实践,不但能很好地巩固人机交互的理论知识,更能使学生快速掌握社会需求的实践技能。
驱动灵活、作业范围广和机械特性优良的多关节机械臂是应用型机械臂中最为常见的,如美国Unimation公司推出的PUMA系列机械臂和日本山梨大学牧野洋发明的SCARA机械臂。多关节机械臂可以完成种类繁多的工业作业任务,如码垛、搬运、装配、焊接和打孔等,是提高工业生产自动化水平和生产效率的最佳选择。同时,机械臂更能做出人体关节不能完成的动作,或者在一些不适合人类开展工作的高温、高压、辐射或缺氧等环境中代替人类进行作业,近年来深海或太空的探索任务就是典型的应用。例如,在2012年,我国自主研发的蛟龙号深潜探测器在7000米深的海底进行科学探测,其中最主要的科研任务,如采样等均由其自身携带的多关节机械臂完成,图1为蛟龙号用机械臂将五星红旗插在海底。此外,在2012年8月6日,美国宇航局(NASA)的好奇号(Curiosity)火星探测器在火星成功登陆,它的主体结构完全可以当成是一台装在汽车上的多关节机械臂,大多数火星探测任务也正是由它控制机械臂进行的,如图2所示。
对于上述的智能机器人,特别是机械臂而言,若要顺利地完成各种作业任务,对其有效的控制必不可少。通常智能机器人的控制都是基于计算机进行的,那么,操作者——人与智能机器人的控制交互,也就转化成了人与计算机之间的交互。目前普遍采用的控制方式都是用计算机外接的键盘、鼠标或控制用触摸屏为主,这些方式要求为交互提供额外的设备,不适于用在具有移动能力的机器人和便携式的智能产品上面。同时,这些方式要求掌握一些计算机输入设备操作方法,交互方式不够直接,不适用于与缺乏学习能力的老人和儿童之间的交互。
因此,需要一种自然的人机交互方式来代替复杂繁琐的程序操作,以便简单方便地操纵机器人,向机器人发布命令,与机器人进行交互。
人体自身的肢体动作一般不需特意训练就能自然准确地传递信息,举手、挥动手臂、点头摇头或是踢踢腿等动作自然、直观,无论是否专业人士,几乎不用训练即可掌握控制所需要的若干交互动作。同时,用人来直接当做智能机器人的交互输入设备,人机之间的交互通讯将不再需要多余的媒体,可以扩展机器人的作业范围,让机器人的应用领域更加广泛。这一切随着计算机视觉和图像处理技术的发展成为了可能,基于机器视觉的人体动作与计算机交互的方式(nature user interface,NUI),成为了新型人机交互方式的研究热点。2010年11月,微软公司推出的Kinect体感设备在人体跟踪以及姿态估计方面有着出色的表现。作为新一代自然人机交互技术的典范,Kinect实现了用户通过语音和手势等行为,与计算机进行更自然的交互。为了发掘Kineet的更大潜力,微软公司推出了Kinect for Windows SDK开发工具包。配合此工具包可以利用Kineet的体感技术,获取人体深度信息,通过识别人体动作和手势,来理解操作者的意图,从而利用计算机对机器人进行有效的操作。
我们对基于Kinect镜头的体感交互控制技术展开深入研究,并将其应用于机器人实时控制中,利用自然的人体姿态或动作控制机器人,可以简化机器人控制的复杂度,提高人与机器人之间的交互性。
2.体感控制的机械臂刨新实验设计
人机交互创新实验主要是用Kinect镜头捕捉人体RGB-D数据,处理后得到人体姿态或动作信息,再利用Arduino作为控制器,将上述信息映射为机械臂的相应动作驱动数据,实时控制机械臂完成各种精细动作。
实验构建的体感控制机械臂包括基于Kinect镜头的人体姿态或动作捕捉和基于Arduino控制器的机械臂控制两大模块,其原理框图如图3所示。
通过Kinect捕获人体RGB-D数据,使用OpenNI/NITE程序库从中识别人体关节及手势动作,并提取空间坐标;通过蓝牙模块与上位机通讯,在Arduino控制器中通过空间向量运算,计算机械臂舵机转角,查询动作表,找到手臂相应动作,通过串口通讯发送给机械臂控制器。机械臂控制器采用32路伺服舵机控制器作为控制器,控制机械臂关节舵机,实时完成取物、拉伸等精确作业,实现一种新的自然人机交互模式,
实验使用的各重要组件如图4所示。
实验使用的机械臂设计图如图5所示。
最终,实验项目设计的体感控制机械臂能实现的功能见表1。
基于体感识别的机械臂运行的主要流程为:人站在Kinect视距范围内做“投降姿势”,由OpenNI/NITE程序库驱动Kinect进行姿势校正,校正完成后,运行在Arduino核心控制器上的识别程序,驱动Kinect进行数据采集,并实时绘制出人体骨骼框架。识别程序主要的功能是识别人体各关节,并通过滤波、空间向量运算、腿部姿态检测,计算出控制机械臂所需的信息。通过无线模块进行控制命令传输,数据通信协议采用自行封装的格式,并在机械臂控制器端提供简单的完整性校验。机械臂控制器根据接收到的数据,采用复用PWM周期的方式,完成一个PWM周期对多路舵机的调速工作,保证了机械臂动作的连贯性。
3.结语
我们研究的相关技术是人机交互和机器人控制技术的研究热点,将基于Kinect镜头的体感控制技术融入到机器人控制之中,利用人体姿态或手势动作来控制机器人,简化机器人控制的复杂度,提高人与机器人之间的交互性,实现了一种新的自然人机交互模式,应用价值较好。
实验设计出的机械臂有以下优点:
(1)利用Kinect体感设备获取的人体的RGB-D数据,并快速、准确、实时地识别人体姿态或动作。
(2)针对RGB-D原始数据噪声较大的问题,研究滑动平均滤波算法,并提出带限幅加权滑动平均滤波算法,该算法能够有效地平滑原始数据,并且时滞性比滑动平均滤波算法好,数据出现异常隋况下能滤除,有效地避免机械臂误动作。
(3)实现了基于Arduino控制器的机械臂实时控制。
我们的创新实验项目在实际教学中引起了学生的极大兴趣,解决了以往人机交互课程实践项目枯燥无趣、学生学习缺乏动力的难题。丰富的实验内容,有趣的操作方式和全面新颖的人机交互新技术应用,吸引学生主动地走人实验室进行学习和研究,极大地提高了学习绩效。在未来的工作中,我们将进一步挖掘自然人机交互的新技术和新方式,结合现在的“云平台”和“物联网”等新概念,设计出更好的创新实验项目。