張 靜, 徐 亮, 劉滿祿, 劉理想, 張 華, 王 姮
(1.西南科技大學 信息工程學院,四川 綿陽 621010;2.中國科學技術大學 信息科學技術學院,安徽 合肥 230026)
虛擬仿真技術是先進制造技術的重要研究分支,而虛擬仿真技術中的力覺感知問題是其中重要研究熱點之一[1~3]。吳崢等人[4]提出了一種基于四面體的碰撞檢測虛擬系統(tǒng),具有一定的靈活性,但對于動態(tài)目標無法形成力覺。靳雁霞等人[5]提出了一種R-Sphere包圍球,可有效處理復雜碰撞檢測,然而模型中的交互的節(jié)點求解卻“超平面”,實現力覺仿真較為困難。閆雒恒[6]通過物理模型,利用面、邊、頂點來代替物理模型提高了碰撞檢測效率,但虛擬系統(tǒng)交互效果受模型外形影響較大。郝建豹等人[7]提出基于模型的碰撞檢測系統(tǒng),通過計算相鄰物體間最近距離來確定物體是否碰撞,提高了碰撞檢測的效率,但虛擬力覺卻無法感知。金漢均等人[8]提出了凸多面體間碰撞檢測算法,但受限于凸多面體間碰撞檢測,并不能形成力覺。
劉書桂等人[9]提出了依賴于三維空間坐標的方法進行碰撞檢測,提高了交互精度,但系統(tǒng)實時性卻十分有限。
基于此,本文采用PHANTOM omni力反饋設備與Visual Studio 2010構建了分布式動態(tài)虛擬力覺系統(tǒng)。為解決虛交互過程中碰撞檢測的效率和力覺沉浸感,在檢測過程中通過對空間分割為層:幾何面層、面片層等進行分層式的碰撞干涉判斷,并根據模型在虛擬環(huán)境中的位置與運動狀態(tài)轉換為虛擬力,并映射至實體交互設備,實現操作者的力覺感知與交互。
在虛擬仿真系統(tǒng)中,分布式單元分為:人機交互接口管理單元;空間位形解算單元;渲染與可視化單元;運動控制與碰撞檢測單元4個部分。
其中,人機交互接口管理單元負責接收操作者在操作交互設備過程中的通過設備發(fā)送的指令信息,以及發(fā)送碰撞過程中虛擬代理點力覺信息;空間位形解算單元根據虛擬物體的尺寸、形狀、姿態(tài)等參數,建立虛擬物體在虛擬空間中的坐標配對關系;渲染與可視化單元捕獲虛擬環(huán)境中的部件顏色、光照等外界條件以物理參數或數學特性等信息進行轉換,經由OpenGL與圖形處理單元(graphic processing unit,GPU)進行實時渲染處理[10]。
運動控制與碰撞檢測單元分為運動控制子塊和碰撞檢測子塊,該單元接收其他成員的上行控制指令。執(zhí)行過程的參數可被其他單元讀取,同時也可對其他單元發(fā)送上行指令。該單元的運動控制子塊負責從人機交互接口管理單元和空間位形解算單元分別獲取空間虛擬空間中代理點和被碰撞物體的位形、姿態(tài)、坐標信息。
碰撞檢測單元會實時檢測代理點與物體干涉情況,從而實現碰撞的檢測。當虛擬空間中的物體發(fā)生碰撞時,將進行碰撞檢測。根據碰撞數據計算碰撞的力覺,形成約束數據并發(fā)送至人機交互接口管理單元。交互管理單元將約束數據發(fā)送給交互設備,形成實時約束,操作者通過交互設備感知虛擬力覺,如圖1所示。
圖1 虛擬系統(tǒng)碰撞檢測過程
虛擬交互對象為軟組織物體,采用彈簧—質點的形式進行表征[11]。內部彈簧結構根據質點與質點的關系可分為:拉伸彈性力FL、剪切彈性力FC以及彎曲彈性力FW。FL表示相鄰質點的拉伸關系,用于直接控制軟組織的縱橫方向形變,彈性系數KL最大;FC用于連接對角的相鄰質點防止形變橫向或縱向形變過于嚴重,彈性系數KC適中;FW用于連接統(tǒng)間隔為一個單位的質點主要用于表征軟組織的局部形變,彈簧系數KW最小。系統(tǒng)內部單質點的力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時,為無效碰撞。
其交互力覺通過質點系是否有質點位置發(fā)生改變進行判斷。當存在質點位置改變則必然有Z=[ΔZ1,ΔZ2,…,ΔZm]T中的ΔZi為非零值,進一步判斷當i≠m時,ΔZi≠0,此時必然存在交互作用,確定交互層數。
若要將虛擬力覺在操作設備上進行感知,顯然需要將虛擬力覺轉換為力矩,作為主操作端的系統(tǒng)的子單元。因此交互系統(tǒng)中的力矩可分為2個部分,如圖3所示。一部分為設備系統(tǒng)自身的控制,另一部分為由交互力覺的生成。
圖3 力覺感知系統(tǒng)
忽略機械臂關節(jié)摩擦力等擾動因素情況下,關節(jié)空間動力模型為
(13)
式中B(q)為慣性矩陣,C(q,)為離心和哥氏力項,G(q)為重力項
(14)
設u為控制部分,n(q,)動力學非線性部分,Ψ為控制函數,則動力學方程表示為
u=B(q)ψ+n(q,)
(15)
式中n(q,)=C(q,)+G(q)。
此時,操作主端力覺再現情況描述為
(16)
末端加速度與關節(jié)雅克比矩陣的二階微分方程滿足
(17)
取末端期望位置與交互實際位置的誤差為ed=xd-x。
交互系統(tǒng)中取慣性質量矩陣為M,則控制函數轉換為
(18)
u=B(q)ψ+n(q,)+JT(q)F
(19)
由于從端的交互力覺僅與末端位置有關,僅考慮末端位置速度與作用力關系,可得位置與末端力覺的控制率為
(20)
實驗平臺使用 SensAble 科技公司的PHANON Omni多自由度桌面機械臂設備[12,13]。將力反饋設備與計算機相連接,采用Visual Studio 2010與OpenGL圖形庫構建虛擬仿真環(huán)境。虛擬模型為3Dmax繪制,保存后綴為3DS文件供系統(tǒng)調用。計算機硬件環(huán)境為CPU酷睿i5—4590,3.30 GHz,顯卡為GTX960—4 GB。實驗系統(tǒng)如圖4所示。
圖4 虛擬力覺交互實驗系統(tǒng)
系統(tǒng)運行時,由用戶操作交互機械臂,椎體末端點為虛擬映射代理點,由操作者操作交互式設備,使得代理點與虛擬環(huán)境中的運動物體進行碰撞。選取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,力覺穩(wěn)定范圍2.77~3.26 N;后者用時為395 ms,力覺穩(wěn)定范圍2.68~3.35 N。顯然,后者交互動態(tài)性響應比前者靈敏,但交互過程的波動比前者更明顯。這是由于目標物體形變系數越大,越容易使系統(tǒng)控制部分陷入欠阻尼,越不易操控。因此,ξ值不能無限增大。
此外,該系統(tǒng)能夠有效地抑制操作者在使用PHANTOM omni設備時抖動干擾,實現了力覺感知與交互。
實驗證明:所設計的分布式系統(tǒng)實時性能良好。較為真實模擬出碰撞的力覺沉浸感。能實現虛擬系統(tǒng)的力覺感知與交互。下一步工作應提高優(yōu)化系統(tǒng)的控制器參數,提高系統(tǒng)的穩(wěn)定性與實時性。