张 静, 徐 亮, 刘满禄, 刘理想, 张 华, 王 姮
(1.西南科技大学 信息工程学院,四川 绵阳 621010;2.中国科学技术大学 信息科学技术学院,安徽 合肥 230026)
虚拟仿真技术是先进制造技术的重要研究分支,而虚拟仿真技术中的力觉感知问题是其中重要研究热点之一[1~3]。吴峥等人[4]提出了一种基于四面体的碰撞检测虚拟系统,具有一定的灵活性,但对于动态目标无法形成力觉。靳雁霞等人[5]提出了一种R-Sphere包围球,可有效处理复杂碰撞检测,然而模型中的交互的节点求解却“超平面”,实现力觉仿真较为困难。闫雒恒[6]通过物理模型,利用面、边、顶点来代替物理模型提高了碰撞检测效率,但虚拟系统交互效果受模型外形影响较大。郝建豹等人[7]提出基于模型的碰撞检测系统,通过计算相邻物体间最近距离来确定物体是否碰撞,提高了碰撞检测的效率,但虚拟力觉却无法感知。金汉均等人[8]提出了凸多面体间碰撞检测算法,但受限于凸多面体间碰撞检测,并不能形成力觉。
刘书桂等人[9]提出了依赖于三维空间坐标的方法进行碰撞检测,提高了交互精度,但系统实时性却十分有限。
基于此,本文采用PHANTOM omni力反馈设备与Visual Studio 2010构建了分布式动态虚拟力觉系统。为解决虚交互过程中碰撞检测的效率和力觉沉浸感,在检测过程中通过对空间分割为层:几何面层、面片层等进行分层式的碰撞干涉判断,并根据模型在虚拟环境中的位置与运动状态转换为虚拟力,并映射至实体交互设备,实现操作者的力觉感知与交互。
在虚拟仿真系统中,分布式单元分为:人机交互接口管理单元;空间位形解算单元;渲染与可视化单元;运动控制与碰撞检测单元4个部分。
其中,人机交互接口管理单元负责接收操作者在操作交互设备过程中的通过设备发送的指令信息,以及发送碰撞过程中虚拟代理点力觉信息;空间位形解算单元根据虚拟物体的尺寸、形状、姿态等参数,建立虚拟物体在虚拟空间中的坐标配对关系;渲染与可视化单元捕获虚拟环境中的部件颜色、光照等外界条件以物理参数或数学特性等信息进行转换,经由OpenGL与图形处理单元(graphic processing unit,GPU)进行实时渲染处理[10]。
运动控制与碰撞检测单元分为运动控制子块和碰撞检测子块,该单元接收其他成员的上行控制指令。执行过程的参数可被其他单元读取,同时也可对其他单元发送上行指令。该单元的运动控制子块负责从人机交互接口管理单元和空间位形解算单元分别获取空间虚拟空间中代理点和被碰撞物体的位形、姿态、坐标信息。
碰撞检测单元会实时检测代理点与物体干涉情况,从而实现碰撞的检测。当虚拟空间中的物体发生碰撞时,将进行碰撞检测。根据碰撞数据计算碰撞的力觉,形成约束数据并发送至人机交互接口管理单元。交互管理单元将约束数据发送给交互设备,形成实时约束,操作者通过交互设备感知虚拟力觉,如图1所示。
图1 虚拟系统碰撞检测过程
虚拟交互对象为软组织物体,采用弹簧—质点的形式进行表征[11]。内部弹簧结构根据质点与质点的关系可分为:拉伸弹性力FL、剪切弹性力FC以及弯曲弹性力FW。FL表示相邻质点的拉伸关系,用于直接控制软组织的纵横方向形变,弹性系数KL最大;FC用于连接对角的相邻质点防止形变横向或纵向形变过于严重,弹性系数KC适中;FW用于连接统间隔为一个单位的质点主要用于表征软组织的局部形变,弹簧系数KW最小。系统内部单质点的力Fin为
Fin=FL+FC+FW
(1)
忽略弯曲弹力,选择四边形进行模拟软组织的物体,令KL=KC满足
Fin=4FL=4FC
(2)
对于代理点而言在与软组织交互过程中势必会刺入软组织物体。
设切向形变长度为ΔL,因此,作用单个质点受到的力为F=4FL=4KLΔL1。
对于每k和第(k+1)层的力觉关系为
4kFC=4kKCΔLk=4(2k-1)KCΔLk-
[8(k+1)-4]KCΔLk+1
(3)
总的切向力觉FS为
FS=4KCΔL1+4×2KCΔL2+…+4(m+1)KCΔLm+1
(4)
进一步化简,得到
FS=4KCΔL1+…+[8(m+1)-4]KCΔLm+1
(5)
设切向变形率为ξ,对应单层形变有
ξi=ΔLi/Li
(7)
形变率与交互层数m的关系为
(8)
对于外围第m层受到的形变设为ΔZi,形变关系如图2所示。
图2 形变关系
若刺入深度影响到i+1层,对应的切向与纵向深度关系为
(9)
设代理点与软组织深度交互弹性系数为δ,当交互层数m确定后ΔLm+1≈0,此时深度交互力觉为
(10)
在交互过程中软组织弹性系数δ确定,形变层数m确定,则感知到交互力觉大小仅与软组织形变程度有关。
干涉结果采用较小的模拟步长进行碰撞检测。选取碰撞接触面的点Q(xq,yq,zq),碰撞接触面表达为F(x),在任意处可导,选取碰撞位置Q点以δ为半径的去心邻域内任意不同两点A(xa,ya,za)和B(xb,yb,zb)。Q点碰撞的法向量m(xm,ym,zm),碰撞接触时速度矢量V(xv,yv,zv),有
(11)
碰撞接触时的有效方向即末端垂直接触面,设碰撞时速度与初始接触面的法向量方向夹角为η∈[0,π/2),有
(12)
η∈[0,π/2)时,为有效碰撞;η=π/2时,为无效碰撞。
其交互力觉通过质点系是否有质点位置发生改变进行判断。当存在质点位置改变则必然有Z=[ΔZ1,ΔZ2,…,ΔZm]T中的ΔZi为非零值,进一步判断当i≠m时,ΔZi≠0,此时必然存在交互作用,确定交互层数。
若要将虚拟力觉在操作设备上进行感知,显然需要将虚拟力觉转换为力矩,作为主操作端的系统的子单元。因此交互系统中的力矩可分为2个部分,如图3所示。一部分为设备系统自身的控制,另一部分为由交互力觉的生成。
图3 力觉感知系统
忽略机械臂关节摩擦力等扰动因素情况下,关节空间动力模型为
(13)
式中B(q)为惯性矩阵,C(q,)为离心和哥氏力项,G(q)为重力项
(14)
设u为控制部分,n(q,)动力学非线性部分,Ψ为控制函数,则动力学方程表示为
u=B(q)ψ+n(q,)
(15)
式中n(q,)=C(q,)+G(q)。
此时,操作主端力觉再现情况描述为
(16)
末端加速度与关节雅克比矩阵的二阶微分方程满足
(17)
取末端期望位置与交互实际位置的误差为ed=xd-x。
交互系统中取惯性质量矩阵为M,则控制函数转换为
(18)
u=B(q)ψ+n(q,)+JT(q)F
(19)
由于从端的交互力觉仅与末端位置有关,仅考虑末端位置速度与作用力关系,可得位置与末端力觉的控制率为
(20)
实验平台使用 SensAble 科技公司的PHANON Omni多自由度桌面机械臂设备[12,13]。将力反馈设备与计算机相连接,采用Visual Studio 2010与OpenGL图形库构建虚拟仿真环境。虚拟模型为3Dmax绘制,保存后缀为3DS文件供系统调用。计算机硬件环境为CPU酷睿i5—4590,3.30 GHz,显卡为GTX960—4 GB。实验系统如图4所示。
图4 虚拟力觉交互实验系统
系统运行时,由用户操作交互机械臂,椎体末端点为虚拟映射代理点,由操作者操作交互式设备,使得代理点与虚拟环境中的运动物体进行碰撞。选取M=1,当取KP=11,KD=0.2,期望力Fd=3.0 N。目标物体的形变系数分别为ξ=0.2和ξ=0.5,作用效果如图5所示。
图5 不同ξ值下的形变效果
在ξ=0.2,和ξ=0.5情况下,对应的力觉交互实验结果,如图6所示。
图6 不同ξ值下的交互力
由图5可以看出,对于同一虚拟目标物提而言,当交互的期望力一定时,形变系数大的,物体越容易受到形变,作用效果越明显,传播层数越深,作用效果也就越明显,到达了人机力觉交互的效果。由图6可以看出,当ξ值增大时,操作者感知的力愈接近感知的期望值。前者首次达到的期望值的交互时间为488 ms,力觉稳定范围2.77~3.26 N;后者用时为395 ms,力觉稳定范围2.68~3.35 N。显然,后者交互动态性响应比前者灵敏,但交互过程的波动比前者更明显。这是由于目标物体形变系数越大,越容易使系统控制部分陷入欠阻尼,越不易操控。因此,ξ值不能无限增大。
此外,该系统能够有效地抑制操作者在使用PHANTOM omni设备时抖动干扰,实现了力觉感知与交互。
实验证明:所设计的分布式系统实时性能良好。较为真实模拟出碰撞的力觉沉浸感。能实现虚拟系统的力觉感知与交互。下一步工作应提高优化系统的控制器参数,提高系统的稳定性与实时性。