虚拟手的姿态控制与变形仿真

2013-08-23 10:46李继婷
计算机与现代化 2013年8期
关键词:指节人手碰撞检测

刘 磊,李继婷

(北京航空航天大学虚拟现实技术与系统国家重点实验室,北京 100191)

0 引言

手的运动能力是人类日常生活和工作得以顺利进行的基本保障。损伤和疾病容易造成手运动功能伤害[1]。iHandRehab[2]结合机器人技术与虚拟现实技术对手功能障碍患者进行康复训练以降低人力成本和增加趣味性。目前iHandRehab初步实现了主动、被动、主动助力和抗阻4种模式下的康复训练任务[3-4]。主动模式下患者需要通过康复机器人带动虚拟环境中的虚拟手与物体交互完成康复任务。

如何实时逼真地模拟虚拟手与物体的交互一直是人机交互领域的研究热点。早期研究主要集中在虚拟手的模型建立和姿态控制,目前利用角度传感器采集人手各关节的运动数据,基本可以实现刚性虚拟手抓取刚性物体时的交互仿真[5-7],但是二者接触时始终保持相对静止,与真实场景尚有较大差别。随着研究的逐渐深入,变形问题得到重视[8-11]。Wan[9]提出利用SSD方法,根据各关节对皮肤层的影响权重计算虚拟手的变形。Garre[11]耦合骨骼层和肌肉层计算手的外部形变,其中肌肉层的变形采用FEM方法。从掌握的文献资料来看,研究者更侧重虚拟手关节转动引起的手指整体形变,尚未探讨如何解决接触物体所导致的局部变形。

1 虚拟手建模

iHandRehab结合机器人技术与虚拟现实技术对患者的食指和拇指进行运动康复训练。康复环境中建立的虚拟手模型需要跟随人手运动,同时满足视觉上的真实性要求。虚拟手建模主要包括几何建模和运动学建模两个部分。

虚拟手的几何建模主要考虑模型的逼真性以及对后续碰撞检测效率的影响。虚拟手的几何模型是在3DS Max图形软件中建立的,食指和拇指均分成3个指节并且相互独立。3个指节从手指与手掌连接处开始依次称为近端指节、中间指节和远端指节。相邻指节连接处使用半球状突起以避免相邻模型转动导致断裂。

手的运动学简化模型见图1。食指具有3个屈曲关节(MCP1、PIP、DIP)和1个侧摆关节(MCP2),拇指具有3个屈曲关节(CMC1、MP、IP)和1个侧摆关节(CMC2)。手指可以简化为3个串联的指节的运动组合,各个关节转动带动手指完成屈曲/伸展和内收/外展运动。虚拟手的运动是以上述模型为基础,通过调整各个指节的姿态矩阵实现。

图1 食指、拇指运动学简化模型

按照以下原则建立各指节的局部右手坐标系:指节上关节转动轴的中心点为原点,指节延长线方向为X轴,屈曲/伸展运动的关节转动轴为Z轴。以食指为例,近端指节、中间指节、远端指节的姿态矩阵分别标记为,长度分别表示为 lr、lm、lt。3 个指节的姿态矩阵的计算见式(1)。Rot代表绕坐标轴的旋转,Trans代表沿坐标轴的平移。

通过键盘或传感器控制各关节的旋转角度,可以调整各个指节的姿态矩阵,进而实现虚拟手在自由空间的运动。

2 虚拟抓持

虚拟手的运动状态分为自由运动和接触物体2种,虚拟抓持涉及2种状态的相互转换。本文采用2组虚拟手模型,Haptichand记录手指的真实运动数据并时刻处于自由运动状态,Graphichand用来模拟人手从自由运动到接触物体再到自由运动的完整过程。

实际人手抓持物体时,如果手指的某一指节与物体接触,其前端指节继续活动,后端指节与物体保持相对静止。因此graphichand各个指节必须在满足表1的约束条件基础上才能按照式(1)计算姿态,其运动指节与haptichand相同指节的旋转角度一致。

图2 虚拟抓持流程图

虚拟抓持的程序流程见图2,其中的碰撞检测环节可以求得指节上嵌入物体内部的几何顶点数N。判断指节与物体发生接触的条件是N≥Nmax(Nmax是自定义的最大嵌入点数目)。当graphichand上的指节满足0≤N≤Nmax时,计算该指节在接触区域的局部变形。需要特殊说明的情况是,在按照表1初步确定graphichand位姿时,以haptichand相同的指节是否与物体接触为参考。

表1 指节运动约束关系

3 变形计算

实际抓持刚性物体时人手受到接触力发生局部变形,变形后的手指与物体表面贴合。虚拟手指节与虚拟物体的接触即两个几何体在空间内发生碰撞,变形表现为指节上几何点的移动。通过碰撞检测计算虚拟手指节与物体接触时的嵌入信息,以此为依据确定局部变形量,与图2的graphichand变形计算相对应。

图3 点壳-距离场碰撞检测示意图

虚拟手的指节和物体在碰撞检测过程中分别采用点壳模型和距离场模型[12],模型构建基础是3DS Max软件中建立的三角面片模型。如图3所示,点壳由n个顶点组成,点i的位置Pi和法线Ni与面片模型上对应的几何顶点的位置和法线相同。距离场模型是由面片模型体素化得到的,包含m个边长相同的体素单元。体素单元k存储的数据结构的信息主要有距离标量值dk和单位向量Ek,|dk|·Ek表示体素单元的中心距离模型表面的最近矢量。

图4 指节与物体的碰撞检测模型

进行碰撞检测时,依次把点壳上的点i(i=0,1,...,n -1)位置Pi转化到距离场模型的坐标系中,求得距离场内部包含Pi的体素单元。如果包含Pi的体素单元k中dk<0,则表示该点位于距离场内部,|dk|·Ek约等于Pi到距离场表面的最近矢量。为提高碰撞检测效率,本文采用轴向包围盒(AABB)[13]对单个指节与物体的碰撞检测进行预处理。只有点壳和距离场的AABB相交,才按上述方法寻找嵌入到距离场内部的几何点,否则直接断定二者不相交。单个指节与物体的碰撞检测模型见图4。

由上可知,通过碰撞检测可以获得碰撞点的数目以及包含碰撞点i的体素单元k。Di和P'i分别表示碰撞点i的变形量和变形后点的位置,可按式(2)进行计算。代表Ek在点壳坐标系中的值。

因为碰撞点的变形量Di即该点到距离场模型表面的矢量值,所以变形后的碰撞点一定位于距离场的模型表面。

4 实验分析

为了验证模型的可行性,在Windows XP系统下使用Microsoft Visual Studio 2008建立基于OpenGL的虚拟场景。实验平台的硬件配置为Intel Duo CPU 2.99GHz/2G RAM。操作者通过键盘控制虚拟手食指和拇指的关节转动,虚拟手的其他部分和物体保持静止。图5(a)是处于抓持状态的虚拟手,图5(b)是指节变形效果图。

图5 实验效果图

逼真性和快速性是衡量虚拟抓持效果的2个重要因素。Graphichand准确反映了人手抓持与释放刚性物体时的姿态,但指节变形的逼真性目前还没有可以量化的指标,只能通过操作者主观的视觉感受来判断。

碰撞检测和变形的总耗时不超过4ms,能够满足系统稳定性的要求。haptichand与graphichand分别需要与物体进行6次碰撞检测才能确定虚拟手的最终姿态,占用了程序执行的绝大部分时间。单个指节与物体的碰撞检测时间与点壳上点的数目存在线性关系。

5 结束语

针对iHandRehab康复系统主动模式训练的应用需求,解决了虚拟手抓持刚性物体时的姿态控制和局部变形。虚拟手模型中食指和拇指各具有4个DOF,可以完成屈曲/伸展和内收/外展的运动。虚拟手接触物体时的局部变形根据碰撞检测结果来计算,变形后的指节与物体表面紧密贴合,程序更新频率约为300Hz。

后续工作主要包括以下2个部分:(1)完善虚拟手的几何形状,同时增加纹理贴图,进一步提高虚拟手在图形显示中的逼真性;(2)把现有的研究应用到iHandRehab系统,通过手康复机器人采集真实人手运动数据来控制虚拟手的运动,真正实现虚拟手抓持物体的交互仿真。

[1]陶泉.手部损伤康复[M].上海:上海交通大学出版社,2006.

[2]Li Jiting,Zheng Ruoyin,Zhang Yuru,et al.iHandRehab:An interactive hand exoskeleton for active and passive rehabilitation[C]//IEEE International Conference on Rehabilitation Robotics.2011:1-6.

[3]王举.人手运动功能康复机器人的设计与实现[D].北京:北京航空航天大学,2010.

[4]王爽.人手运动功能康复机器人控制方法研究[D].北京:北京航空航天大学,2011.

[5]安明,陈善广,刘玉庆.基于数据手套的虚拟手精确建模的研究与实现[J].计算机仿真,2010,27(1):241-244.

[6]Borst C W,Indugula A P.Realistic virtual grasping[C]//Virtual Reality,IEEE Annual International Symposium.2005:91-98.

[7]陈军.基于双目视觉及数据手套的虚拟手势交互平台的研究与设计[D].北京:北京邮电大学,2011.

[8]Tong C,Jing X,Aiguo S.Simulation of grasping deformable objects with a virtual human hand[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems.2008:3965-3970.

[9]Wan H,Chen F,Han X.A 4-layer flexible virtual hand model for haptic interaction[C]//Proceedings of the 2009 IEEE International Conference on Virtual Environments,Human-Computer Interfaces and Measurement Systems.2009:185-190.

[10]Feng Miao,Li Jiting.Real-time deformation simulation of hand-object interaction[C]//2011 IEEE Conference on Robotics,Automation and Mechatronics.2011:154-157.

[11]Garre C,Hernandez F,Gracia A,et al.Interactive simulation of a deformable hand for haptic rendering[C]//2011 IEEE World Haptics Conference.2011:239-244.

[12]Barbic J.Real-Time Reduced Nonlinear Deformable Objects for Computer Graphics and Haptics[D].PhD Dissertation,Computer Science Dept.,Carnegie Mellon Univ.,2007.

[13]Christer Ericson.实时碰撞检测算法技术[M].北京:清华大学出版社,2010.

猜你喜欢
指节人手碰撞检测
基于特征模板的外指节纹特征提取方法
全新预测碰撞检测系统
基于BIM的铁路信号室外设备布置与碰撞检测方法
木兰从军
Unity3D中碰撞检测问题的研究
便携式手外骨骼康复装置结构研究
多按小拇指防早生白发
BIM技术下的某办公楼项目管线碰撞检测
人手不够 ——原载俄罗斯漫画网▲
残疾人用Partial Finger机构研究