APP下载

基于Kinect的装备体感维修教学系统研究

2013-02-24韩国柱陈永才

中国现代教育装备 2013年11期
关键词:体感操作者教学系统

吴 松 韩国柱 陈永才

中国人民解放军军械工程学院火炮工程系 河北石家庄 050003

由于现代军事装备结构复杂、价格高,教学装备数量少,而且使用真实装备教学易出安全事故,所以虚拟维修教学系统成为装备维修训练的重要补充手段。但由于目前人机交互手术手段的限制,大量的虚拟维修教学系统还是采用传统键盘鼠标作为交互设备。在虚拟维修训练中,一般只能通过鼠标点击工具图标来代表拿起工具,再用鼠标点击操作对象来播放分解结合动画,实际上达到的训练效果是熟悉分解结合过程和工具的名称,而具体工具的使用方式很难体现出来,或者说“动手”的能力很难培养出来。而往往学员所欠缺的就是动手能力,一到实际维修教室,还是很容易出问题。而Kinect体感设备的出现,给虚拟维修教学系统开拓了一条新的路径。

Kinect体感设备是微软为游戏机XBOX360研发的一款体感操作设备,相对以往动辄百十万元的光学动作捕捉系统而言,成本极期低廉,当然识别精度也相应较低,但是它已经能够胜任游戏、界面操作等基本要求。同时除了即时动态捕捉能力之外,它还具有图像识别、语音辨识等多种实用功能,是非常有前景的体感设备。目前以Kinect为外部设备的体感游戏、应用已达数百款,应用包括机器人视觉识别、商业售卖机器、三维扫描建模等范围。在教育领域,也研究了Kinect在交互式电子白板等方面的应用[1]。

1 Kinec及其开发

Kinect外形如图1所示,主要由CMOS红外发射及传感器、RGB摄像头及麦克风组成。它的核心技术来自于以色列PrimeSense公司的低成本三维空间探测芯片及微软研究院的人体动作识别系统。PrimeSense公司曾经为以色列军方服务,他们开发的芯片和配套软件可以很好地处理三维空间中物体的坐标信息。

图1 Kinect外观

CMOS红外传感器通过发射编码光产生深度图像,既以纯黑代表无穷远,以纯白代表零距离,以灰色的浓度代表距离的远近。传感器以每秒30帧的速度生成景深图像流。芯片将人体图像从景深图像中抠出并传入Exemplar人工智能处理系统中,该系统通过积累的大量经验进行图像匹配,生成一个有20个关节的骨架系统(如图2所示)。Kinect中间的RGB摄像头用于捕捉人体形象图谱,除了帮助设备探测到使用者的位置,它还可以用于拍照,在设备的基座内有驱动塑料齿轮的马达,用于自动校正摄像头以及空间感知器,让Kinect获得最佳的位置来观测使用者。

Kinect的二次开发包目前有微软的Kinect for Windows SDK[2]和PrimeSense的OpenNI[3]。两者各有所长,开发者可按需求选择。OpenNI直接提供了Unity3D的插件包,所以我们选择了OpenNI为开发工具。

图2 窗体顶端生成的骨架示意图

2 装备体感维修教学系统

2.1 软硬件简介

在OpenNI架构下要让维修训练系统能够使用Kinect,首先需要安装OpenNI(版本为1.5.2.23),负责分析影像数据的NITE中间件(版本为1.5.2.21)和驱动程序模块SensorKinect(本文版本为5.1.0.25)。虚拟交互软件采用Unity3D4.0,为直接使用Kinect数据,引入了OpenNI_Unity_Toolkit-0.9.7.4插件包。该包提供给Unity直接访问OpenNI兼容传感器的能力。硬件采用了一台Kinect for XBOX360外接电源适配器及遥控操纵杆。

引入插件包后,Unity3D中就会形成OpenNI的预制件和脚本(如图3所示)。用户可以直接将这些预制件和脚本拖到场景中使用,可以无须关心底层API而直接使用“拖-放”的方式来使用数据。

图3 OpenNI预制件

2.2 体感操作引入

Kinect的精度有限,所以在虚拟维修中使用体感操作,比较合适的方式是在虚拟场景中引入一个虚拟人,然后将Kinect捕捉到的操作者人体数据传递到虚拟人身上,使虚拟人和操作者同步运动,通过判断虚拟人与场景中物体的碰撞情况来决定交互的产生时机。如果直接通过Kinect来操作界面元素,可能会存在跳动等现象,导致交互感觉不良。

虚拟人的制作可由3DMAX等软件制作骨骼蒙皮人体模型再导入Unity之中,然后在Unity中将虚拟人的骨骼与OpenNI提供的Kinect的关节数据匹配起来,其具体做法是设置NISkeleton Controller脚本中的Joints to control数组(如图4所示)。建立骨骼匹配关系之后,在虚拟人手上设置碰撞包围盒,使包围盒包含整个手部。这样在程序中就可以通过碰撞事件的捕获,使操作者通过虚拟人取放工具、操作零部件,实现分解结合虚拟维修了。

图4 骨骼绑定数组

2.3 维修过程中体感姿态定义

维修作业是通过一系列工序来完成的。装备的基本维修训练可以视做大件分解结合和部件分解结合作业。为了形成通用化的系统结构,需要以文本的形式提供分解结合的工序,这样,程序运行时根据选择的维修科目,读入相应的工序和模型就可以实现分解结合训练了。

维修过程的定义采用Office Project 2003进行定义,可以方便地建立PERT工序。然后输出文本文件供维修训练系统调用。在每步工序中需要对操作者的动作进行定义,为了方便编制动作和判断姿态,我们提出一种灵活的姿态定义格式。

格式由一连串短句组成,每个短句之间以“;”号隔开,其形式为“LArm;RArm;LHip;RHip;Spine;Pict ure”。单个短句的格式相似,如“RArm”部分,完整定义为“RArm∶手腕位置@零件名称”,其中“手腕位置”是一个“x,y,z”向量,数值以虚拟人右肩关节部为起点,其身体正面为Z轴正向,右方为X轴,头部向上为Y轴,以手臂长为1.0,相对位置精确到小数点后一位。如“1,0,0”既代表水平向右伸直右臂。在程序中将虚拟人手部位置和肩部位置直接以参数形式传递进来,就可以实时得到手部相对肩关节的相对坐标,通过归一化处理就得到了以向量表示的手腕位置(程序中rightArmLength即为提前算出的虚拟人右臂长度)。

再将手腕位置与要求位置相减,就得到了姿态偏差向量(handF)。为同时考量X,Y,Z三个方向上的偏差,取姿态偏差向量的长度为量度。考虑到应允许操作者有一定的动作误差,本文将容许值(tolerence)设置为0.4,可以保证操作者姿态正确,同时又不过份严格。

短句中“零件名称”项则表示手部或手部工具与该零件处于相交位置,意即当做这个动作时,需要手部或手部工具接触该零件。比如在右手旋掉底盖螺丝时,应用左手托住底盖以防掉落。

这样通过对每个身体部分进行定义,就可以对虚拟训练时,当人员执行某种分解动作时所处的姿态提出要求。

2.4 实例简介

某装备炮闩分解结合训练是学员必须练习的重点科目,以此为对象,建立了体感式分解结合维修训练系统。程序由Unity3D 4.0开发,建立了虚拟场景,然后引入虚拟人,在虚拟人的头上绑定摄像机,就可以从替身的角度观察到三维场景(如图5所示)。通过Kinect,操作者可控制虚拟人在场景中自由走动,从工具桌上取用各种工具、将工具放在工具台上、左右手互换工具、使用工具或手与零件交互,按照分解结合顺序逐步分解结合炮闩,分解中对特定部件需摆出正确姿态才能分解。主观使用感觉沉浸感强、操作流畅、工具使用仿真感强。

图5 体感虚拟维修训练系统界面图

3 结束语

体感式操作将是未来人机交互的重点发展方向之一。装备体感式维修教学系统充分发挥了体感技术的优点,可以有效培养学生的动手能力,提高教学的效率,是非常优秀的教学方式。虽然目前由于设备的精度限制,动作捕捉还有延迟和抖动等缺点,但体感技术的进步很快。据报道,Kinect2代即将推出,还有其它一些高精度的体感设备也将面世。总之,及时将Kinect代表的先进体感技术引入虚拟维修教学之中,对提高我军装备维修训练水平具有积极的意义。

[1] 王康.基于Kinect的体感交互式电子白板初探[J].中国现代教育装备,2012,6∶29-30.

[2] Windows Kinect SDK[EB/OL].http∶//www.kinectforwindows.org/.

[3] PrimeSense OpenNI[EB/OL].http∶//www.primesense.com/.

猜你喜欢

体感操作者教学系统
淄博市大力推进交互式在线教学系统应用
体感交互技术在脑卒中康复中的应用
超声检测颈总动脉内中膜厚度的操作者内及操作者间可重复性研究
基于Unity的计算机硬件组装仿真教学系统设计
浅析汽车制造业人机工程标准
基于移动学习理念的智慧教学系统
人体体感感知机械手设计与实现
操作者框架在车辆传动系旋转耐久试验中的研究与应用
引入体感控制技术推动校园足球发展
非触控式的体感机械臂交互控制系统研究