APP下载

虚拟超市认知康复训练系统开发关键技术研究

2014-03-21伍平平

图学学报 2014年1期
关键词:跟踪器手套上肢

刘 林,伍平平,熊 巍

(华南理工大学设计学院,广东 广州 510640)

虚拟现实技术应用于脑卒中偏瘫患者的上肢运动功能康复训练已经成为国内外学者关注的热点。国内外许多研究机构在该领域开展了许多探索性的研究,并取得了一定的临床资料和治疗成效。Godfrey[1]利用手部外骨骼康复机器人与VR游戏相结合,对慢性脑卒中后手部痉挛的患者进行康复训练。Lauri[2]利用充气手套与VR相结合,对脑卒中后手功能障碍患者进行康复训练。岳宏等[3]提出一套利用虚拟现实技术和手臂外骨骼技术结合进行手臂康复医疗的方案。但现有研究还存在着以下不足:鲜有研究将患者的手跟手臂作为一个整体研究对象,既能训练患者的手部又能训练患者的手臂功能;对患者的主动运动激励不足,较少考虑人机界面研究,忽略了对患者主动意识的激励。很多研究还处于测试阶段,并没有完全应用于临床训练中。

本文研究的虚拟超市认知康复训练系统包括硬件和软件两方面,其中硬件部分有5DT数据手套、FASTRAK位置跟踪器与计算机等,软件部分则主要由基于EON Studio平台的虚拟超市和虚拟手(手指和手臂)组成。在该系统中基于EON SDK开发Glove节点和Tracker节点,分别采集数据手套和位置跟踪器的数据,实现虚拟手在虚拟场景中的漫游与控制。将患者的手指和手臂功能的恢复作为一个整体对象,既能训练上肢偏瘫患者手部的功能也能训练到患者手臂的功能;患者通过控制虚拟手在虚拟超市中购物,实现对虚拟商品的抓取、移动、并释放到购物车中。同时在训练过程中获得视觉跟听觉的反馈,对患者有激励的作用。

1 虚拟模型的建立

上肢康复训练平台中的虚拟场景需符合患者训练时的心理期待,所以更侧重于逼真性和沉浸感,对视觉效果要求较高。

1.1 虚拟超市的建立

虚拟超市的外形设计比较简单,在3DMAX中采用整体建模方法,将超市外形轮廓用曲线绘制,然后通过挤出命令生成近似的超市墙壁,再将实体模型转化成可编辑多边形,对可编辑多边形中细分的几何元素进行调整以生成如门、窗凹凸的超市细节部分。最后将制作好的超市内部细节如货柜、柜台等组件与超市整体合并成虚拟场景。

虚拟超市中的虚拟商品可分为五类:水果、蔬菜、日用品、文体、食品等。将虚拟商品合并到虚拟场景中,并将其放在货柜的合适位置,虚拟商品要进行成组处理,以使虚拟手在与虚拟商品交互时能准确地抓取到整个虚拟商品。

在模型建立后还需对模型进行以下几点优化:①在保证产品模型质量的前提下尽量减少不需要的面片数;②模型多边形的合理分布,根据模型的实际情况对多边形进行合理删减调整等以达到模型的最佳状态;③点面对齐,焊接重合点。

1.2 虚拟手的建立

根据与正常人手1∶1比例和手模型的层次结构图[4]创建虚拟手模型。由于手指各部分的运动存在连带运动现象,手部根部关节的运动会带动手指尖部关节的运动,因此对虚拟手的建模完成后还必须根据手指的层次结构对手指指节进行成组处理。

人的手指是柔性的,而虚拟手指的各指节却是刚性的,当手指各指节有弯曲时,原来完整的虚拟手会在关节处出现破面现象,这将影响整个虚拟手的逼真性。为解决破面问题,有方案提出通过在14个手指关节处添加一个光滑的球状体[5],这种方案虽然利用球状体填充了指节间的破面,但同时也使虚拟手模型占用的内存增大,影响了虚拟手运动时的实时渲染。

本文提出在建立虚拟手模型时,手指指节模型的坐标系默认位置位于指节截面的中心,手指围绕这个坐标系发生弯曲,所以在手指手背方向就会出现缺口。将这个坐标系移动到手指关节表面,当手指再次弯曲时将围绕新坐标系发生转动,此时手背方向断面消失,手指节在手掌方向发生交叉,但不会影响视觉效果。重置坐标轴后手指的弯曲效果与重置前的手指弯曲效果对比如下图1所示。

图1 手指关节破面的解决方案

1.3 虚拟模型导入至EON

为了避免将3DMAX中建好的模型导入至EON Studio中材质、贴图等信息的丢失[6],可通过在3DMAX中加载EON Raptor插件,用于将在3DMAX中创建好的模型保存为EON中的文件,然后在EON中打开该文件,则在3DMAX中建好的模型能完整且不失真的导入到了EON环境中。导入至EON中的虚拟模型如图2所示。导入至EON中的虚拟手模型如图2所示。

图2 虚拟商场与虚拟手模型

2 外部设备与系统集成

患者的真实手与虚拟手之间的通信主要包括获取真实手的运动信息以及对整个虚拟手的实时漫游与控制。手指的运动信息是通过数据手套与系统的集成来实现,对虚拟手的实时漫游与控制主要是通过位置跟踪器与系统的集成来实现。

2.1 数据手套与系统集成

数据手套与系统的集成主要是获取5DT数据手套的数据,并实现与虚拟手之间的通信。数据手套数据的获取是利用VC++6.0平台,通过EON SDK开发Glove节点,此节点包含5个输出域。然后通过EON中Script节点将数据手套中传感器数据相应地映射到虚拟手的关节,在Script节点中设定5个入事件用于接收Glove节点中的5个输出域数据,在Script节点中对输出变量进行赋值,设定14个输出事件,分别给虚拟手的14个指节赋值。数据手套与虚拟手流程如图3所示。在EON逻辑视窗中虚拟手指逻辑控制路径图如图4所示。

图3 数据手套与虚拟手的映射流程

图4 虚拟手指逻辑控制路径图

2.2 位置跟踪器与系统集成

虚拟手的手指弯曲运动的信息通过数据手套从患者的真实手获得,但是整个虚拟手在虚拟场景中的转动与移动还得依靠其他设备来完成。本系统采用FASTRAK位置跟踪器来控制虚拟手3个方向的转动自由度,由于病人是在固定椅上训练其上肢运动功能,相当于病人的肩关节是固定的,而要实现虚拟手能在场景中的实时漫游,则可以再添加键盘的方向键控制虚拟手3个方向的移动自由度。将位置跟踪器的接收点固定在数据手套上,病人戴上数据手套后便可将人手的转动方向与虚拟手的转动方向进行一一映射,再通过键盘上的方向键控制虚拟手在虚拟超市中的升降、前后、左右的移动方向。

位置跟踪器与系统的集成实现方法与数据手套与系统集成的方法一致。利用C++6.0平台,通过EON SDK开发Tracker节点,在程序开发过程中采用多线程技术,通过创建一个单独的线程函数,在线程函数中调用FT_ReadContinuous()函数连续从位置跟踪器中读取数据,将读取到的数据暂存在一个缓冲变量中,再在EON SDK程序框架中的Update()函数中不停地从缓冲变量中取出数据,然后通过EON的Script节点将从位置跟踪器中获得的数据与虚拟手的运动方向进行映射表达,再在逻辑视窗中建立路由关系,实现了控制虚拟手3个方向的转动自由度。位置跟踪器与虚拟手之间的通信流程,如图5所示。为使患者在训练过程中沉浸感更强,患者的视角要始终跟着虚拟手运动,因此需添加一个EON自带的视点追踪元件——FollowMe元件,将FollowMe元件放入camera框架中,在逻辑视窗中将虚拟手的Position域发送给camera,实现患者的视角始终跟在虚拟手的后面。

图5 位置跟踪器与虚拟手的通信流程

3 交互过程中的关键问题

交互过程中要解决的问题是:在患者通过控制虚拟手抓取虚拟超市中商品的过程中,虚拟手与虚拟商品之间的碰撞检测以及虚拟手抓取商品跟释放商品的规则定义。

3.1 碰撞检测

EON 中提供了一个碰撞检测节点CollisionObject节点,该节点提供了Bounding sphere、Bounding spheres、Bounding box、Bounding boxes、Convex hull、Convex hulls三类6种包围盒形式,如图6所示。

图6 包围盒的形式

使用过程中可根据不同的精度要求选择不同的包围盒。将CollisionObject节点放置在需要碰撞检测物体的框架下,则该物体就具有碰撞响应的能力,当检测到物体发生碰撞时CollisionObject节点还能同时输出与其发生碰撞的对象名称、碰撞时间跟碰撞位置等信息。虚拟手与虚拟超市中的大部分商品的包围盒形式采用的是Convex hulls,对于某些模型结构较复杂的商品则采用的是 Bounding sphere或者Bounding box,以提高碰撞响应的速度。

3.2 虚拟手抓取规则定义

在虚拟环境中通过定义一些虚拟手的抓取规则和条件,使虚拟手能像真实手那样自然逼真地抓取、移动和释放虚拟商品。

虚拟手抓取规则定义如下:

(1)碰撞检测是虚拟手抓取商品的前提条件,因此先检测虚拟手与虚拟商品是否发生碰撞;

(2)发生碰撞后才能抓取,抓取过程中大拇指必须有弯曲,并且还要另外四个手指中的一个手指也发生弯曲;

(3)在依次满足(1)、(2)条件的基础上,通过判断各手指的弯曲程度来确定是否能实现抓取。预先设定好每个手指要弯曲的角度,当手指的弯曲程度达到这一角度时则实现抓取,手指松开后则释放商品。

当抓取到商品后再松开手指,手指的弯曲角度不满足抓取的角度时,则表示为满足释放商品的规则。借助EON中的Script节点实现对抓取规则的3个条件的获取和判断,当满足抓取条件时,EON中的GrabConnection节点则实现虚拟手与虚拟商品之间的抓取,为实现虚拟手对各个虚拟商品的连续抓取,在名为抓取的Script节点中添加一个名为field属性和名为TempBody的域,用于临时保存与虚拟手发生碰撞的虚拟商品。当这个商品与虚拟手满足抓取条件时,虚拟手则将该商品抓取。抓取成功的状态如图7(a)所示,手指松开的状态如图7(b)所示。

图7 抓取成功的状态与手指松开的状态

4 交互实现

虚拟超市认知康复训练系统所面对的对象是脑卒中恢复期的患者,他们的上肢至少具有部分分离运动能力,这个系统主要是训练患者的手指运动功能和手臂运动功能,同时也训练患者的认知能力。当患者进入此训练系统,系统界面会显示“您可以先点击左上方菜单按钮选择相应的操作!”,患者可单击菜单按钮,打开一列菜单,有“手信息”、“开始漫游”、“开始购物”等项目。当点击“开始购物”后则进入购物界面,同时弹出商品类别跟购物清单菜单,如图2所示。

接着,患者选择购物清单,并根据购物清单中的任务去选取商品。此时,患者要判断该购物清单所购商品属于哪一类别,这就训练了患者的认知能力。当患者选择相应的商品类别进入该界面后,还需去认识该商品类别中的商品名称,这时进一步训练患者的认知能力与执行能力。在训练过程中患者能获得视觉跟听觉的反馈,以激励患者参与的积极性。商品主要分布在超市的两侧,并且在不同高度的货架上都放有商品,患者在抓取商品的过程中可以训练其手臂的外展、内收、上抬、下摆等能力。系统提供了一个功能,即治疗师可以根据患者的病情调整其训练任务,针对不同程度的病人分别制定出不同的购物清单。

在实验中,选取20例脑卒中恢复期偏瘫上肢功能障碍的患者随机分为治疗组(10例)和对照组(10例),对照组接受常规治疗每次40min,每天1次,连续10天。治疗组接受常规治疗和虚拟超市上肢康复训练各20min,每天1次,连续10天。分别对两组患者进行治疗前、治疗后的FMA上肢部分(FMA-UE)、MAS上肢部分(MAS-UE)和MBI评定[7],比较两组的疗效。治疗后两组患者FMA-UE、MAS-UE及MBI的评分均比治疗前提高,与对照组相比,治疗组患者FMA-UE、MBI的评分提高幅度更大。

5 结 论

对于脑卒中恢复期的患者,虚拟超市上肢康复训练结合常规治疗能更好地改善其偏瘫上肢的运动功能,它既训练了患者的认知能力,又将运动疗法跟心理疗法有机地结合在一起,更为有效地提高其日常生活活动能力。本临床验证采用的是小样本实验,未来还需要大样本的随机对照实验进一步证实虚拟超市上肢康复训练的疗效。随着虚拟现实技术本身的不断进步以及该技术在康复治疗领域的不断推广和深入,能推动康复运动训练技术日臻完善,对学科的交叉发展和社会康复事业的进步具有重大现实意义。

[1]Godfrey S B.Hand function recovery in chronic stroke with HEXORR robotic training: A case series[C]//Conf Proc IEEE Eng Med Biol Soc.Buenos Aires,2010: 4485-4488.

[2]Lauri A.Pneumatic glove and immersive virtual reality environment for hand rehabilitative training after stroke [J].IEEE Transactions on Neural and Rehabilitation Systems Engineering, 2010, 18(5): 551-559.

[3]岳 宏, 王小龙, 张 娟.虚拟现实在手臂外骨骼康复系统中的应用[J].科技通报, 2006, 22(1): 111-114.

[4]刘 林, 熊 巍.虚拟手在Vega中的设计与实现[J].机械制造, 2006, 44(2): 21-24.

[5]戴亿政.桌面式虚拟环境中灵巧虚拟手的研究与实现[D].广州: 华南理工大学, 2011.

[6]伍平平, 刘 林.上肢康复机器人手和手臂的集成研究[J].机械设计与制造, 2012, (12): 142-144.

[7]梁 明, 窦祖林, 王清辉, 熊 巍, 郑雅丹, 陈颖蓓,杨 琼, 邱雅贤.虚拟现实技术在脑卒中患者偏瘫上肢功能康复中的应用[J].中国康复医学杂志,2013, 28(2): 114-118.

猜你喜欢

跟踪器手套上肢
光伏跟踪器阵列跟踪精度的测算方法研究
棉手套
浅析一种风光储一体化跟踪器
超长待机的自行车位置跟踪器
做只手套好过冬
基于惯性传感器的上肢位置跟踪
错误姿势引发的上肢问题
神秘的白手套
双向多轨迹判定方法在目标跟踪中的应用研究
棉手套