[0066] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0067] 下面结合附图对本发明的应用原理作详细的描述。
[0068] 如图1所示,支持实时按压的柔性体变形仿真建模方法,包括以下步骤:
[0069] 步骤一、虚拟场景初始化;
[0070] 步骤二、位置检测,当虚拟代理碰撞到虚拟柔性体表面上的任意点时,给定虚拟接触压力作用;
[0071] 步骤三、利用不同厚度的碟形弹簧叠合成组合弹簧虚拟模型来模拟虚拟代理与虚拟柔性体交互的局部区域的内部;即把柔性体产生形变的部分用这个模型来代替;
[0072] 步骤四、利用组合弹簧虚拟模型计算虚拟柔性体的局部区域变形量;
[0073] 步骤五、图形刷新,不断反馈输出力触觉信息,直至变形截止,完成支持实时按压的柔性体变形仿真建模;具体为:模型受力一层一层计算,每计算一层,判断是否满足截止条件,根据计算结果实时图形刷新,反馈输出力触觉信息,然后下一层继续上述操作,直至变形截止。
[0074] 如图2所示,在本发明的优选实施例中,所述步骤三具体为:
[0075] 在给定虚拟接触压力F作用下,当虚拟代理碰撞到虚拟柔性体表面上的任意点时,在碰撞点处悬挂一外径为D、内径为d、厚度为t1、自由高度为H01、被压平时的最大变形量为h0、弹簧刚度为k1的单片碟形弹簧,形成第一层;在第一层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为t2、自由高度为H02、被压平时的最大变形量为h0、弹簧刚度为k2的单片碟形弹簧,形成第二层;在第二层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为t3、自由高度为H03、被压平时的最大变形量为h0、弹簧刚度为k3的单片碟形弹簧,形成第三层,依此类推,在第i层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为ti、自由高度为H0i、被压平时的最大变形量为h0、弹簧刚度为ki的单片碟形弹簧,形成第i+1层,i=1,2,3,...,N,N为自然数,最终形成组合弹簧虚拟模型;各层单片碟形弹簧的外径、内径、被压平时的最大变形量均相同,且从上至下每一层单片碟形弹簧厚度是前一层单片碟形弹簧厚度的一半。
[0076] 在本发明的优选实施例中,所述步骤四具体为:
[0077] 假定给定虚拟接触压力F的作用线和与组合弹簧中心线一致,且在给定虚拟接触压力F作用下,当柔性体中共有M层单片碟形弹簧产生变形,则第M层称为变形截止层;
[0078] 当给定虚拟接触压力F能使第一层单片碟形弹簧被压缩时产生的变形量h1达到h0时,假定前M-1层单片碟形弹簧被压缩时产生的变形量均与第一层单片碟形弹簧被压平时的最大变形量h0相同,变形截止层第M层单片碟形弹簧被压缩时产生的变形量小于或者等于第一层单片碟形弹簧被压平时的最大变形量h0,则第一层单片碟形弹簧消耗的压力F1为:
[0079]
[0080] 其中,k1表示第一层单片碟形弹簧的弹簧刚度,h0表示第一层单片碟形弹簧被压平时的最大变形量;
[0081] 第一层单片碟形弹簧的弹簧刚度k1为:
[0082]
[0083] 其中,E、t1、μ、α、D分别为弹性模量、第一层单片碟形弹簧的厚度、泊松比、计算系数、单片碟形弹簧的外径,其中,弹性模量、泊松比的具体数值与柔性体的材质有关;
[0084] 计算系数α为:
[0085]
[0086] C为外径和内径之比:
[0087]
[0088] 第一层单片碟形弹簧被压平时的最大变形量h0为:
[0089] h0=H01-t1 (5)
[0090] 其中H01、t1分别为:第一层单片碟形弹簧的自由高度、厚度;
[0091] 第i层单片碟形弹簧被压平时的最大变形量 为:
[0092]
[0093] 其中H0i、ti分别为:第i层单片碟形弹簧的自由高度、厚度,
[0094] 除第一层和变形截止层第M层外,其余各层单片碟形弹簧消耗的压力Fj为:
[0095] Fj=kjh0 (7)
[0096] j的取值范围为[2,M-1],
[0097] 第j层单片碟形弹簧的弹簧刚度kj为:
[0098]
[0099] 其中,tj为第j层单片碟形弹簧的厚度,
[0100] 假设每一层单片碟形弹簧厚度是前一层单片碟形弹簧厚度的一半,则第i层单片碟形弹簧的厚度为:
[0101] ti=21-it1 i=1,2,3,...,N (9)
[0102] 变形截止层第M层的变形量为:
[0103]
[0104] 变形截止层第M层单片碟形弹簧的弹簧刚度kM为:
[0105]
[0106] 其中,tM为第M层单片碟形弹簧的厚度;
[0107] 如图3~5所示,使给定虚拟接触压力F作用于虚拟柔性体碰撞点,第i层对应的单片碟形弹簧被压缩,如果前i层所有单片碟形弹簧消耗的压力Fi之和小于给定虚拟接触压力F,且前i层所有的单片碟形弹簧产生压缩变形总计需要的时延时间满足刷新频率1000Hz以上的要求,设共计经过时延Li后,第i层单片碟形弹簧被压缩到被压平时的最大变形量h0,只有当第i层单片碟形弹簧被压缩到被压平时的最大变形量h0后,第i+1层对应的单片碟形弹簧才开始被压缩,依此类推,直到前M层所有的单片碟形弹簧消耗的压力之和不小于给定的虚拟接触压力,或前M层单片碟形弹簧产生压缩变形总计需要的时延时间不满足刷新频率的要求;
[0108] 用Ti、Li分别表示第i层单片碟形弹簧产生压缩变形需要的时延时间、前i层所有的单片碟形弹簧产生压缩变形总计需要的时延时间,且令层间的时延时间满足以第一层单片碟形弹簧产生压缩变形需要的时延时间T1为系数、以i2为变量的递增数列为:
[0109] Ti=i2T1 (13)
[0110] 从虚拟代理碰撞接触到虚拟柔性体表面算起,假定前i层所有的单片碟形弹簧产生压缩变形总计需要的时延时间Li满足Li<L,其中
[0111]
[0112] L为设定的力触觉再现刷新频率的倒数;
[0113] 所述虚拟柔性体表面的变形量,也即组合弹簧中前M层的变形量之和h为:
[0114]
[0115] 其中,(M-1)h0为组合弹簧前M-1层被压平时的最大变形量。
[0116] 下面以虚拟手和虚拟胆囊模型为例,列举本发明技术方案的具体实施方式。
[0117] 本实例中所有虚拟手和虚拟胆囊模型都直接采用从3DS MAX 2016软件中导出的OBJ格式,以2726个质点,5449个三角网格构成的虚拟手和8880个质点,17750个三角网格构成的虚拟胆囊模型为例来进行变形仿真,实验过程中模型获取和修改非常方便;操作系统为Windows 2010,以3DS MAX 2016、OpenGL图形库为基础,在MicrosoftVisual C++2016软件开发平台上进行仿真。
[0118] 在给定虚拟接触压力F=0.966N作用下,当检测到虚拟手碰撞到虚拟胆囊表面上的任意点时,虚拟手与虚拟胆囊交互的局部区域内部填充不同厚度的碟形弹簧叠合成组合弹簧虚拟模型,在交互过程中,输出反馈为采用组合弹簧虚拟模型计算出来的反应在压力作用下虚拟胆囊实时变形仿真的力触觉信息的信号,如图1所示;
[0119] 如图2和图4所示,在碰撞点处悬挂外径为D=4×10-4m、内径为d=2.04×10-4m、厚-5 -5度为t1=2.25×10 m、自由高度为H01=3.15×10 m、被压平时的最大变形量为h0=H01-t1=
3.15×10-5-2.25×10-5=9×10-6m、弹簧刚度为k1的单片碟形弹簧,形成第一层;在第一层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为t2、自由高度为H02、被压平时的最大变形量为h0、弹簧刚度为k2的单片碟形弹簧,形成第二层;在第二层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为t3、自由高度为H03、被压平时的最大变形量为h0、弹簧刚度为k3的单片碟形弹簧,形成第三层,依此类推,在第i层的单片碟形弹簧下,同方向设置一外径为D、内径为d、厚度为ti、自由高度为H0i、被压平时的最大变形量为h0、弹簧刚度为ki的单片碟形弹簧,形成第i+1层,i=1,2,3,...,N,N为自然数,最终形成组合弹簧虚拟模型;各层单片碟形弹簧的外径、内径、被压平时的最大变形量均相同,且从上至下每一层单片碟形弹簧厚度是前一层单片碟形弹簧厚度的一半;
[0120] 假定给定虚拟接触压力F的作用线和组合弹簧中心线一致,且在给定虚拟接触压力F作用下,若柔性体中共有M层单片碟形弹簧产生变形,则第M层称为变形截止层;
[0121] 计算的中间过程、最后的数据均按四舍五入法保留小数点后3位。
[0122] 若给定虚拟接触压力F能使第一层的单片碟形弹簧被压缩时产生的变形量h1达到第一层的单片碟形弹簧被压平时的最大变形量h0,这种情况下假定前M-1层的单片碟形弹簧被压缩时产生的变形量均与第一层的单片碟形弹簧被压平时的最大变形量h0相同,变形截止层第M层的单片碟形弹簧被压缩时产生的变形量不大于第一层的单片碟形弹簧被压平时的最大变形量h0,
[0123] 外径和内径之比C为:
[0124]
[0125] 计算系数α为:
[0126]
[0127] 单片碟形弹簧的弹性模量E=2.06×105MPa、泊松比μ=0.3取决于柔性体的材质;
[0128] 用Ti、Li分别表示第i层单片碟形弹簧产生压缩变形需要的时延时间、前i层所有的单片碟形弹簧产生压缩变形总计需要的时延时间,且令层间的时延时间满足以第一层单片碟形弹簧产生压缩变形需要的时延时间T1=10-5s为系数、以i2为变量的递增数列;
[0129] 假定设定的力触觉再现刷新频率为1100Hz,则力触觉再现刷新频率的倒数[0130]
[0131] 若在给定虚拟接触压力F作用下,能使得第一层的单片碟形弹簧达到被压平时的最大变形量h0,第一层单片碟形弹簧的弹簧刚度k1为:
[0132]
[0133] 则第一层的单片碟形弹簧消耗的压力F1为:
[0134] F1=k1·h0=9.397×104×9×10-6=0.846N
[0135] F1<F=0.966N
[0136] 第一层的单片碟形弹簧产生压缩变形需要的时延时间L1=T1=10-5s
[0137] 若在给定虚拟接触压力F作用下,能使得第二层的单片碟形弹簧达到被压平时的最大变形量h0,第二层单片碟形弹簧的弹簧刚度k2为:
[0138]
[0139] 则第二层的单片碟形弹簧消耗的压力F2为:
[0140] F2=k2·h0=1.175×104×9×10-6=0.106N
[0141] 前二层的单片碟形弹簧共消耗的压力之和为:
[0142] F1+F2=0.846+0.106=0.952N<F=0.966N
[0143] 前二层的单片碟形弹簧产生压缩变形需要的时延时间L2=T1+T2=(1+22)×10-5=5×10-5s
[0144] 若在给定虚拟接触压力F作用下,能使得第三层的单片碟形弹簧达到被压平时的最大变形量h0,第三层单片碟形弹簧的弹簧刚度k3为:
[0145]
[0146] 则第三层的单片碟形弹簧消耗的压力F3为:
[0147] F3=k3·h0=1.468×103×9×10-6=0.013N
[0148] 前三层的单片碟形弹簧共消耗的压力之和为:
[0149] F1+F2+F3=0.846+0.106+0.013=0.965N<F=0.966N
[0150] 前三层的单片碟形弹簧产生压缩变形需要的时延时间L3=T1+T2+T3=(1+22+32)×-5 -410 =1.4×10 s
[0151] 若在给定虚拟接触压力F作用下,能使得第四层的单片碟形弹簧达到被压平时的最大变形量h0,第四层单片碟形弹簧的弹簧刚度k4为:
[0152]
[0153] 则第四层的单片碟形弹簧消耗的压力F4为:
[0154] F4=k4·h0=1.835×102×9×10-6=0.002N
[0155] 前四层的单片碟形弹簧共消耗的压力之和为:
[0156] F1+F2+F3+F4=0.846+0.106+0.013+0.002=0.967N>F=0.966N
[0157] 因此,前四层的单片碟形弹簧共消耗的压力之和不小于给定虚拟接触压力F,则第四层为变形截止层,不需要再判断是否满足刷新频率的要求;
[0158] 变形截止层第四层的变形量h4为:
[0159]
[0160] 所述虚拟柔性体表面的变形量,也即组合弹簧中前四层的变形量之和h为:
[0161] h=(4-1)h0+h4=3×9×10-6+5.450×10-6=32.450×10-6m
[0162] 注意:在采用支持实时按压的柔性体变形仿真建模方法来计算在给定压力作用下柔性体实时变形仿真的过程中,若C、t1这些参数选取的过大,则支持实时按压的柔性体变形仿真建模方法中叠合碟形弹簧的变形截止层数值就少,计算量小,实时性好,但变形仿真效果不佳;如果C、t1这些参数选取的过小,则支持实时按压的柔性体变形仿真建模方法中组合弹簧的变形截止层数值就大,计算量大,实时性不佳,但变形仿真效果较好;另外在设置T1和Ti之间的关系时,要考虑到程序运行时计算机本身的硬件配置,故在调试整个程序的过程中,要折中选择这些参数,不断反复调试,从而使变形效果更加逼真。
[0163] 为验证本发明的实施效果,操作者通过PHANTOM OMNI手控器端部的手柄来触摸、感知和控制虚拟手对虚拟胆囊进行按压的变形仿真,并将交互过程中产生的力触觉信息实时反馈给操作者。实验结果表明:该模型是有效的,在交互过程中,操作者可实时、真实地感知到变形仿真过程中虚拟手与虚拟胆囊之间的力触觉信息,感知效果真实。
[0164] 以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。