APP下载

沉浸式虚拟维修位置追踪与动作虚实耦合研究

2019-02-19承钿

郑州大学学报(理学版) 2019年1期
关键词:人体模型虚拟环境骨骼

, ,, 承钿, , ,

(1.陆军装甲兵学院 信息系 北京 100072; 2.汕头大学 工学院 广东 汕头 515063)

0 引言

虚拟维修(virtual maintenance, VM)基于虚拟化手段,为装备结构认知、拆装训练、维修论证、装备保障等提供支撑,不仅在装备的设计生产阶段同步开展设备的可维修性实验,而且能够在后续的装备维修保养中节约维修训练成本、提高维修训练效率.目前,虚拟维修技术已经在航空航天[1]、国防军事[2]、装备研制[3]等诸多行业得到了广泛应用.随着虚拟现实(virtual reality, VR)技术的发展,虚拟维修模式正从桌面式虚拟维修向沉浸式虚拟维修方式演化.沉浸式虚拟维修(immersive virtual maintenance, IVM)是以计算机技术和虚拟现实技术为依托,在包含数字样机与维修人员三维人体模型的沉浸式虚拟场景中,通过现实受训对象驱动虚拟人体模型来完成对虚拟装备的故障诊断、结构拆装、故障排除等一系列动作[4].相比较桌面式虚拟维修,沉浸式虚拟维修极大地提高了沉浸感,但维修操作者无法通过传统的计算机外设与虚拟环境进行交互,因此必须研究新型的人机交互模式,通过操作人员的动作直接驱动虚拟环境中的装备维修.为此,需要解决两个关键技术,即位置追踪与动作的虚实耦合.HTC VIVE以可靠的沉浸式展示效果以及有效的人机交互模式,使得其在推出伊始即受到了虚拟维修的重视[5].本文以HTC VIVE为硬件支撑设备,研究并提出了基于高精度快速位姿估计(efficient perspective-n-point, EPnP)算法和基于坐标变换、骨骼绑定和改进型循环坐标下降(cyclic coordinate descent, CCD)算法,为解决沉浸式虚拟维修下人体定位追踪和动作的虚实耦合等问题提供支撑.

1 基于EPnP算法的跟踪定位

跟踪定位技术就是在现实世界中的人体关键骨骼部位固定定位器,持续跟踪记录定位器的空间坐标信息,达到捕获人体关键骨骼部位的位置与姿势的目的[6].在沉浸式虚拟环境中,跟踪定位是实现沉浸感和交互的关键,为实现维修动作的虚拟耦合提供坐标数据.跟踪定位过程如图1所示,在需要跟踪定位的物体表面固定n个特征点(ν0,ν1,…,νn).当物体在空间中运动时,用[R(w),t]表示其运动过程,w表示角度的变化,t表示位移的变化.

在虚拟维修过程中,维修人员的交互动作会使特征点之间的相对位置产生变化,因此PnP求解得到的结果稳定性差,易收到噪声.本文采用PnP的改进型算法EPnP来计算虚拟维修人员的位姿信息[6]. PnP问题是指,在虚拟环境中,假设被跟踪的人体关键骨骼部位有n个特征点(ν0,ν1,…,νn),并已知它们的相对位置信息,n个特征点在透视平面中的投影点为(c1,c2,…,cn),从投影点求解物体相对于相机的位置和姿态信息[7],如图2所示.这样,当我们分别求得多个不同拍摄时刻下物体相对于相机的位置和姿态,就可以求出这段时间内物体相对于相机的平移和旋转.

图1 虚拟环境中的追踪定位Fig.1 Tracking in the virtual environment

图2 PnP问题中相机、对象与参考面Fig.2 Camera,object and reference surface in PnP problem

求解x的过程中,确定了βi也就确定了合适的线性组合.根据参考点位置的不同,矩阵MTM的零空间维数N可能为1~4维.求解β的策略是控制点在坐标系Fc和Fw中,两两距离相等.而x的分量坐标分别表示不同的参考点在坐标系中的坐标,共有6个约束.

计算不同维数的零空间的误差,选择误差数最小维数对应的β,得到x,恢复控制点在局部坐标系中的坐标,并根据质心坐标系得到参考点的局部坐标系的坐标.求两个坐标系的位姿变换R与t的步骤如下.

2 维修动作虚实耦合技术

沉浸式虚拟维修是由人体模型主导,是人体模型和虚拟装备动态交互的过程[8].当维修人员被追踪定位之后,其关键骨骼节点的位姿数据传递给虚拟人体模型,驱动人体模型进行相应的维修动作.虚拟动作耦合就是维修人员驱动人体模型的过程,即将现实世界中的动作映射到虚拟环境中人体模型上.耦合过程分为3个部分:坐标系变换、骨骼绑定和动作的实时驱动.

图3 三维空间中坐标对应关系Fig.3 Correspondence between coordinates in 3D space

2.1 坐标系变换

坐标系变换就是将维修人员所在局部坐标系中的点映射到虚拟环境世界坐标系中的过程.维修人员和虚拟环境处在两个不同的坐标系,如图3所示.虚拟环境的坐标系为世界坐标系,坐标系中的点用(x,y,z)表示.虚拟人员的坐标系为局部坐标系,坐标系中的点用(ux,uy,uz)表示.以局部坐标系的原点为原点,坐标轴平行于世界坐标系坐标轴建立惯性坐标系(X′,Y′,Z′).局部坐标系变换到世界坐标系分为两步:1) 旋转.局部坐标系3个坐标轴旋转角度分别为α,β,γ,方向与惯性坐标系方向重合;2) 平移. 将局部坐标系坐标原点平移到世界坐标系原点完成变换.坐标系的变换公式为Pglbal=Plocal·W. 其中:Pglbal为虚拟环境世界坐标系中的点;Plocal为维修人员局部坐标系中的点;W为转置矩阵,W=RT,R表示按照单位坐标向量构成的旋转矩阵,T表示平移矩阵.为了方便计算,公式中坐标与向量均用四元数表示.

2.2 骨骼绑定

骨骼绑定就是将维修人员的关键骨骼数据与虚拟人体模型的关键骨骼数据进行一一对应绑定的过程[9].虚拟人体模型是沉浸式虚拟维修环境中基本的交互实体,坐标系转换之后,维修人员需要和虚拟中的人体模型进行骨骼绑定,才能驱动虚拟中的人进行交互.在维修参与者的手、腕、头、腰、腿、脚踝等关键骨骼部位固定跟踪点,跟踪点的坐标代表了现实中人体的骨骼位置信息.这些坐标信息将分别与虚拟人体模型的手、腕、头、腰、腿、脚踝等关键骨骼部位进行对应绑定.

2.3 动作的实时驱动

动作的实时驱动就是保持虚拟环境中的人体模型的动作和现实世界中虚拟维修人员的动作保持一致的过程.在骨骼绑定阶段,只是得到了虚拟人体模型关键骨骼部位的位姿信息,而人体模型其他骨骼的位姿信息需要通过计算得到.本文采用反向运动学的方式,根据关键骨骼节点坐标数据实时计算人体模型其他部位骨骼的位置信息,完成现实中的人对虚拟人体模型的实时驱动.反向运动学方式首先获得人体模型手、足和头部的末端骨骼位置信息,根据这些信息反向计算出人体模型的膝盖、腿部、手肘、肩部和胸部等骨骼节点的位姿信息.反向计算常用CCD算法实现,即沿着末端骨骼节点的运动链,逆向依次调整每个关节的旋转角度,逐渐逼近最终的目标.CCD算法有一个根节点,通常是以人体模型的胸部骨骼节点作为根节点.CCD算法便于在链中加入新的节点,但是由于每次计算都需要回溯到根节点,计算量大.在沉浸式维修过程中,大部分维修动作不需要走动,只需要手、腕、肩、头部等关节的适度运动即可,而不必每次计算到根节点.因此,本文提出了改进型CCD算法来进行反向运动学计算.

图4 腿部关节求解过程Fig.4 Leg joint solution process

改进型CCD算法就是以肩关节和臀部关节为次根节点,方向计算只计算到次根节点,而不需要计算到根节点.虚拟维修人员的交互动作幅度比较小,或者交互距离比较近时,采用改进型CCD算法能显著减少回溯计算的工作量.以腿部关节求解过程说明改进型CCD算法的工作原理.为简化计算,计算转为在二维平面上进行.当脚踝和臀部中心的坐标点确定之后,根据改进型CCD算法快速计算出腿部关节角度.如图4所示,假设维修过程中人的脚踝骨骼节点坐标为P2(xc,yc),盆骨骨骼节点坐标为P1(xb,yb),膝关节坐标P(x,y),大腿长度Llap,小腿长度为Lcalf,盆骨弯曲度为θhip,膝盖弯曲度为θknee,脚踝弯曲度θank.大腿长度Llap和小腿长度Lcalf的求解公式为

综合以上改进型CCD算法如下.

1) 获取人体模型主要骨骼节点P1、P2、P的位置信息,以及各个关节点的初值与骨骼的长度信息;目标位置D;设置允许误差ε,循环变量i(i=0,1,…,Jroot);

2) 计算末端骨骼节点的位置E,如D-E≤ε,则算法结束;

3) 从节点Ji向末端骨骼节点E与目标点D分别做向量VE,VD;

4) 计算两个向量的夹角θ(VE,VD)以及旋转轴,使得Ji下的子链绕轴旋转角度θ(VE,VD)调整;

5) 按步骤2)~4)计算各关节旋转角度θ0,…,θi;根据约束条件修正不满足要求的旋转角;

6) 按θ0,…,θi控制各个关节的运动;

7) 若循环变量i=i+1,i

3 原型系统实现与测试

原型系统以某雷达设备为例,研究并构建该设备的沉浸虚拟维修训练环境,通过耦合HTC VIVE硬件设备,实现沉浸式虚拟维修能力.原型系统框架如图5所示.系统基于Unity 3D引擎开发,语言为C#,平台为64位Windows 7操作系统,支撑设备为HTC VIVE,数据库为Sql.运行效果图如图6所示.通过实际操作,系统运行良好.虚拟维修人员进行故障维修时,能对维修人员的动作实时定位追踪,并且维修人员与虚拟人体模型动作保持一致,基本实现了沉浸式虚拟维修要求.

图5 某型雷达的沉浸式虚拟维修系统Fig.5 An immersive virtual maintenance system for a type of radar

图6 沉浸式虚拟维修系统Fig.6 Immersive virtual maintenance system

4 小结

追踪定位和虚实动作耦合是沉浸式虚拟维修人机交互中两个关键技术.针对追踪定位,本文提出了基于EPnP特征点定位算法,用来计算当维修操作人员身体表面特征点位置相对不固定时的坐标信息.经过多次测试试验,在EPnP算法下,维修人员的定位精度满足了沉浸式虚拟维修追踪的要求.针对虚实动作的耦合,首先,维修人员自身局部坐标系变换到虚拟环境世界坐标系;其次,维修人员关键骨骼点与虚拟人体模型关键骨骼点匹配;最后,提出了改进型的CCD算法驱动虚拟人体模型完成维修动作.经过多次测试试验,虚实动作耦合的时间延迟基本满足虚拟维修的要求.

本文基于某型雷达设备,利用HTC VIVE构建沉浸式虚拟维修系统,维修人员的追踪定位和维修动作的虚实进行耦合,增加了虚拟维修的沉浸感和交互性,降低了人的眩晕感,强化了虚拟维修训练的效果.

猜你喜欢

人体模型虚拟环境骨骼
做家务的女性骨骼更强壮
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
三减三健全民行动——健康骨骼
如何通过虚拟环境有效管理Python第三方库
动画广告设计中虚拟环境的构建方法与运用
基于乘员体型的车辆安全性研究
Family makes 45—foot icicle in front yard
体验创新:3D人体扫描仪测三围
论高校思想政治教育网络虚拟环境的特征
人体模型内置摄像头为数据收集