虚拟装配中的虚拟手交互技术
虚拟装配(VirtualAssembly,VA)是虚拟现实技术的典型应用之一,它通过虚拟装配来检查零/部件之间的装配关系,如可达性、顺序性、方向性、干涉隋况等等,以评价产品装配性能虚拟装配系统中,操作者可以借助数据手套、力反馈装置等VR外设,以虚拟手(有时利用虚拟工具)操纵零/部件进行产品的虚拟装配,分析评价产品的装配性能或进行装配工艺规划。这需要对虚拟环境中的零/部件运动进行引导,通常的做法是通过自动约束别与用户交互意图的捕捉。Kitamura等研究了导航触发器和运动修正,动态识别约束条件.基于实体的约束进行定位求解。
集成虚拟装配系统(Integrated Virtual AssemblyEnvironment,IVAE)是上海交通大学承担的“UNIX环境下VR系统关键技术研究及应用系统开发”课题的子项目之一。目标是建立一个集成化的虚拟装配环境。
1 虚拟装配基本操作流程
1.1 虚拟装配基本操作流程简述借助外设PinchGlove与FOB,虚拟手在VE中即可对虚拟零/部件进行操作。装配操作宏观的基本流程如图1,该过程中:
(1)用户可切换控制读取FOB信号数据驱动虚拟手;
(2)系统检测用户的抓取信号,分析虚拟手接触到的零件的装配状况,若属于同一个已装配好的子装配(或为单个零件).则抓取成功,否则抓取失败:
(3)FOB信号驱动虚拟手,虚拟手按照运动传递规则带动所抓取的整个零/部件移动;
(4)系统动态检测所抓零/部件(主动体)与目标装配体之问的相关装配约束,并显示捕捉到的约束;
(5)用户确认该约束,系统调整整个主动体位姿以满足约束要求;
(6)约束作用下,主动体的运动不再完全由虚拟手驱动,而是在约束作用下进行导航运动;
(7)零/部件的运动过程中为避免干涉穿透现象出现,须进行碰撞检测与响应;
(8)随着约束依次地被确认.零/部件自由度逐渐减少,最后被定位,一次装配过程完毕。
1.2 相关数据结构简述
本文所用装配模型:零件模型采用精确模型(保存零件精确的儿何、拓扑信息)、面片模型(含有面片信息、局部坐标信息等)和凸包模型(含有凸包信息等,用于碰撞检测计算)描述。采用装配树表达装配成员间关系。IVAE中c++语言描述的装配体类中:AsmtName,装配体名;ASMID,装配体ID;FartherASMID.所属父装配ID;IsAsmFinish,装配完成标志;AssSphere,子装配体的包围球。儿何约束主要记录约束类型和参数、约束完成状态、约束所属层次等信息。在c++描述的约束类中:
ConstraintlD,约束ID;ConstraintType,具体的几何约束类型;ConstraintPara,约束的儿何参数;
IsConfirm,约束确认标志;ConstraintLevel,约束层次,为装配树上某子装配ID。
2 基于虚拟手的装配逻辑
2.1虚拟手抓取零/-~rl件过程
IVAE的交互操作支持对零件和子装配体的装配操作。虚拟手抓取零/部件过程中,系统处理过程如下。
(1)首先检测虚拟手碰撞模型与VE中零件碰撞模型的接触,若未检测到有接触,则抓取失败;否则获得一组零件碰撞模型lD.
(2)结合零件模型库,获得该组碰撞模型对应的精确模型ID。对于其中每一精确零件模型.根据装配体对象的IsAsmFinish标志.逐层向上层查找.直至找到已装配好的一个最高层子装配。比较这些最高层子装配,若为同一子装配,则它即为拾取到的对象(记为picked—Ass),否则抓取失败。
(3)生成主动体链表、待捕捉约束链表和目标零件链表等。1VAE L}|,picked—Ass的直接父节点(记为op—Ass)称为操作层子装配 op— Ass的其它直接装配成员称为picked—Ass的同层装配体。遍历picked_ Ass可得其所有叶子节点(零件),分析这些零件上约束的约束层次标志(ConstraintLeve1),可找出本次操作相关的约束,存入待捕捉约束链表。
还须求解计算此时各零件相对于子装配基准坐标系的相对位姿矩阵。比如,对于零件A,可获取其在VE中位姿矩阵 ,设子装配的基准坐标系的位姿矩阵为 ,则可知零件A在子装配基准坐标系下的位姿矩阵M :M . 。
(4)记录虚拟手与子装配体的相对位姿矩阵。设虚拟手全局位姿矩阵为M ,由于子装配的基准坐标系位姿矩阵为M ,得:子装配在虚拟手坐标系下的相对位姿阵为:MH B=M ·MH。
(5)根据主动体链表中各零件ID,查找它们对应的显示模型和碰撞模型,激活必要的碰撞检测对。
2.2 虚拟手移动与装配零店I5件过程
在虚拟手驱动零/部件移动后,系统响应涉及以下几个主要问题。
(1)虚拟手抓住零/部件后,虚拟手驱动零/部件的方式。虚拟手在飞行状态下以及抓取零/部件自由移动时,数据手套FOB信号对虚拟手的驱动采用增量驱动方式:设M 为FOB上一帧结束时的全局位姿矩阵,M 为其本帧的全局位姿矩阵,M 。为虚拟手上一帧结束时的全局位姿,则FOB的增量矩阵为M,=M MP~;IVAE假定一帧中虚拟手的位姿增量与数据手套上FOB的位姿增量相同,由此,虚拟手在这一增量驱动下的新位姿为M =M,.M 。。当某零件(或子装配体)被虚拟手抓取以后,IVAE的处理方式是:将他们(虚拟手和子装配)的相对位姿固结。首先,求解子装配的基准坐标系的新位姿矩阵,M =M 一 ·M ;然后,求得子装配运动到新位姿后,其上各个零件的位姿矩阵。仍以零件A为例,M =MR·M 。这样,整个子装配就在虚拟手的驱动下自由运动。