崔艷波,王彤宇
(長春理工大學 機電工程學院,長春 130022)
為了滿足最新技術,減少開支的需求和保護資源日益增長的需求,很多公司為他們的產品爭取一個更好更廉價的設計?;谶@種思想,虛擬環(huán)境作為一個很有效的工具應用在生產設計的前沿。然而,當前大多數(shù)CAD軟件包都存在缺點:缺乏感知裝配或者機器的實際運行時所受力的能力。因此,消除CAD和制造之間的隔閡是現(xiàn)代和將來機械設計的關鍵。若在CAD功能中添加一個力反饋裝置,允許工程師對于復雜裝配的附加洞察,通過觸覺將進一步提高設計質量。從而使得一個簡單的電腦變成一個虛擬裝配生產線,去觀察和感覺產品是如何從設計到制造到裝配。這將使問題在設計階段就可以被及時發(fā)現(xiàn)、得以糾正,通過觸覺界面或虛擬觸覺就可以實現(xiàn)。而這項工作的重點是創(chuàng)建一個應用程序允許用戶完成虛擬裝配任務,本文就以釘孔裝配為例展開研究。
力反饋系統(tǒng)可以看作是一個有人參與的雙向閉環(huán)系統(tǒng)。如圖1、圖2所示,操作者操作力反饋設備PHANTOM的末端手柄,控制設備接口點(HIP,Haptic Interface Point)在設備工作空間中運動,HIP的位置如圖2中的P點所示??臻g匹配模塊將HIP的位姿通過空間匹配算法映射為虛擬環(huán)境中的代理(proxy)點的位姿,代理點如圖2中Q點所示,因此代理點的位姿可以隨HIP的位姿更新;力的渲染模塊根據虛擬環(huán)境信息和代理點與虛擬環(huán)境的交互狀態(tài),以不低于每秒1000次的運算速度計算反饋力,并將反饋力發(fā)送給力反饋設備,力反饋設備根據要輸出的反饋力的大小和方向驅動電機轉動,把要輸出的反饋力轉化為機械能,從而使操作者能夠感受到反饋力,完成虛擬環(huán)境中的“力的渲染”。
圖1 力反饋應用系統(tǒng)結構圖Fig.1 Force feedback application system structure drawing
由圖1可以看出,力反饋應用系統(tǒng)主要包括兩個功能模塊:空間匹配模塊和力的渲染模塊。空間匹配模塊的功能是將PHANTOM的HIP的位置和姿態(tài)匹配到虛擬空間中代理點的位置和姿態(tài),從而使代理點的位置和姿態(tài)隨HIP的位置和姿態(tài)一起改變。如果當前代理點拾取某個虛擬模型,則虛擬模型的位姿也可以隨代理點的位姿一起改變,如圖2所示。力的渲染模塊的功能是根據代理點與虛擬環(huán)境交互狀態(tài)實時計算反饋力和反饋力矩,并將其發(fā)送給PHANTOM輸出。
圖2 PHANTOM結構圖和交互原理圖Fig.2 PHANTOM structure drawing and interactive schematic diagram
如圖2所示,PHANTOM系列的力反饋設備是上世紀90年代初由美國麻省理工大學設計的,它有6個自由度的位姿輸入和3個自由度的力反饋,其結構類似于6自由度關節(jié)型機械手臂。當操作者移動PHANTOM末端的手柄時,PHANTOM各個關節(jié)和手臂隨末端手柄一起協(xié)同運動。
PHANTOM力反饋設備具有兩個基本功能:位姿輸入和力的反饋。這兩個基本功能是由6個關節(jié)機構實現(xiàn)的,其中1、2、3關節(jié)中的每個關節(jié)上有一個直流電機和一個編碼器,這三個直流電機協(xié)調工作決定了反饋力的大小和方向。計算機通過讀取關節(jié)1、2、3上的編碼器數(shù)值和PHANTOM臂A、B、C的固定長度計算出HIP在PHANTOM坐標系的位置。4、5、6關節(jié)組成了一個萬向節(jié),決定了HIP的姿態(tài)(即旋轉量),同樣4、5、6關節(jié)的每個關節(jié)上也有一個編碼器,計算機通過讀取編碼器的數(shù)值,獲得HIP在PHANTOM坐標系的姿態(tài)。
OpenHaptics是sensAble公司提供的一個開放式力覺/觸覺渲染軟件設計平臺,可以用來與程序中的PHANTOM裝置相結合。它不僅實現(xiàn)了一些基本的力覺/觸覺渲染算法和空間匹配算法,而且包含了一些面向底層操作的應用程序接口函數(shù)(API,Application Programming Interface),可以實現(xiàn)計算機應用程序與PHANTOM之間的雙向通信,因此用戶可以開發(fā)各種基于 C語言或者 C++語言的力覺/觸覺反饋應用程序。本文結合 OpenHaptics、計算機圖形學、用戶自定義界面和模擬觸覺裝置,開發(fā)一種基于C++語言的力反饋應用程序。
OpenHaptics包含兩個函數(shù)庫,一個是HLAPI(High-levelAPI)函數(shù)庫,另外一個是HDAPI(Haptic Device API)函數(shù)庫。本文在OpenHaptics設計平臺上,展開基于力反饋的虛擬裝配技術研究。Open-Haptics可以將HDAPI函數(shù)庫和HLAPI函數(shù)庫一起使用。HLAPI為快速的將觸覺執(zhí)行到已存在的程序中,對該裝置進行了高水平控制。因此應用程序可以使用HLAPI中所提供的力覺/觸覺渲染算法;同時 HDAPI為了更進一步的工作和力的渲染,提供了低水平觸覺信息,又可以使用 HDAPI函數(shù)庫實現(xiàn)自定義功能,從而簡化和加速應用程序的設計過程。如果需要的話,在 HDAPI中用戶能夠為PHANTOM創(chuàng)建它們自己的彈簧阻尼系統(tǒng)。
圖3 應用程序層次結構Fig.3 Application program hierarchy structure
基于 OpenHaptics的應用程序層次結構如圖3所示,共包含四層:
(1)最下面一層是硬件層,即力覺/觸覺反饋設備PHANTOM層。
(2)硬件驅動層指 PHANTOM 的驅動程序,它可以實現(xiàn)應用程序與PHANTOM的雙向通訊,例如讀取 PHANToM 各個關節(jié)的旋轉角度,讀取代理點、HIP點的位置,將反饋力轉化為對各個電機的驅動等。
(3)OpenHaptics層提供一些C語言接口函數(shù),包含HLAPI函數(shù)庫和HDAPI函數(shù)庫,實現(xiàn)了一些與力覺/觸覺渲染有關的命令集合。
(4)力覺/觸覺應用層是指與具體應用有關的各種模塊,這些模塊集成在一起,成為一個實現(xiàn)特定功能的應用程序。
通常一個基于OpenHaptics的應用程序包含三個線程:主線程、力覺/觸覺渲染線程和碰撞檢測線程。主線程主要完成圖形渲染,并為碰撞檢測線程提供需要進行力覺/觸覺渲染的面片信息;碰撞檢測線程確定PHANTOM代理點與虛擬物體發(fā)生碰撞的位置,為力覺/觸覺渲染線程提供了發(fā)生碰撞的面片集;力覺/觸覺渲染線程讀取力覺/觸覺反饋設備HIP的物理位姿(位置和姿態(tài)),并通過空間匹配模塊把HIP的位姿轉化為代理點在虛擬場景中位姿,從而根據虛擬物體的位姿和物理屬性計算反饋力的大小和方向,并把計算結果發(fā)送給力覺/觸覺反饋設備輸出。
圖4 HLAPI庫的主線程框架Fig.4 HLAPI library main thread frame
基于OpenHaptics HLAPI庫的主線程框架如圖4所示,首先是OpenGL初始化和HLAPI初始化,經過空間匹配后程序進入主循環(huán)。主循環(huán)主要完成了力覺/觸覺渲染事件的處理、圖形渲染和提供需要進行力覺/觸覺渲染的面片信息。由于主線程提供的進行力覺/觸覺渲染的面片通常是整個虛擬場景中的面片,因此當場景中面片很多時,力覺/觸覺渲染的負荷會很大,從而影響系統(tǒng)的穩(wěn)定性。
總之,HLAPI用來以觸覺和圖形方式來渲染物體,而 HDAPI用來傳遞自定義的力給 PHANTOM。另外,PHANTOM還提供了程序中的兩個主要思路,他們能夠從回叫信號中發(fā)送和接收信息。在程序中,用戶思路成為主要思路,在這里創(chuàng)建了所有的渲染環(huán)境。碰撞思路決定場景中的哪個物體與觸覺點發(fā)生交互。
OpenHaptics工具通過HDAPI中的不同時間的回收信號來完成,這樣能夠從PHANTOM中獲得力的信息,在用戶思路中,是以1000Hz速率的安全方式來運行的。HLAPI用可用的路由來渲染銷釘、孔和填充物來進行觸覺力反饋和碰撞。碰撞思路也是在HLAPI中利用100Hz速度的V-Collide來檢測碰撞。通過對碰撞思路創(chuàng)建回收信號,V-Collide開始在場景中進行釘和孔的碰撞檢測。
釘和孔的力是由力的方程決定的,該力是在HDAPI回叫信號時被訪問的,基于接受碰撞的類型,把計算的力傳遞出去。通過該點力開始回收信號,并且被用戶傳遞給PHANTOM裝置,圖5顯示了該結構的示意圖,能夠看出只有 HLAPI才能把回收信號的碰撞庫交互相結合,防止通過以1000Hz速度運行的 HDAPI在用戶思路中關于碰撞檢測的過程減速。通過這種方法,釘—孔裝配可能發(fā)生力的反饋。
圖5 在OpenHaptics傳遞力給PHANToM的結構圖Fig.5 Transmission strength to the PHANTOM structure drawing in the OpenHaptics
進行實驗是要了解參與者能否通過應用程序來區(qū)分不同直徑和潤滑的銷釘,目的是證明該程序在虛擬環(huán)境中利用觸覺論能用來模擬裝配條件。
選擇10個參與者來完成這項試驗,同時為每個參與者進行實驗的說明。所有的實驗都是在Win-dowsNT2000操作系統(tǒng)的電腦上完成的。電腦配置為:PentiumⅢ900 GHz的雙核處理器,512M內存。PHANTOM通過并行接口連接到電腦上,以提供交互作用。
實驗要求用戶將四種不同直徑尺寸的銷釘插入孔中十五次。目的是求測得的平均值,它們是力、時間、銷釘和孔的碰撞次數(shù)。銷釘直徑分別為7.4cm、6.9cm、6.4cm、5.9cm。孔的直徑為常量7.5cm。每個參與者隨機分配四種銷釘,通過特殊定制的界面來進行這項實驗。潤滑油的值為常數(shù)I=0.7,相當于=0.3。完成實驗后,根據力由大到小排列。
每一個參與者使用 PHANTOM 指針的角度不同,導致產生銷釘不同角度誤差,因此有不同的力。實驗允許銷釘在程序中有固定的初始角度誤差,不同銷釘?shù)膶嶒灴梢韵嗳荨S刹煌嵌日`差組成的觀測是程序應該運行的。因為小的角度誤差才能產生小的力。這也證明了程序內部的運算是正確的。
這項實驗與第一部分是相同的,只是本實驗中給用戶提供的潤滑油的順序是隨機的,并且銷釘?shù)闹睆绞浅A俊榇耍姆N孔,四種水平的潤滑油是0.3、0.5、0.7和0.9。這些水平的潤滑油被描述成摩擦系數(shù)的反函數(shù)。因此,增加潤滑油不一定降低摩擦系數(shù)。同樣的,所有的銷釘被插入15次后,要求參與者將它們按力由大到小排列。該部分實驗開始證明潤滑油是否能被區(qū)分和潤滑油是否能應用到虛擬裝配程序中。
對于不同直徑的釘子,十個參加者中的七個能辨認四個釘子的正確順序。所有參加者能在兩個極端的情況(直徑7.4 cm和5.9 cm的釘)進行區(qū)分。
圖6以圖形的格式描述釘子分辨的情景??梢钥闯?,所有的10個參與者都能夠區(qū)分直徑為5.9cm和6.4cm、6.4cm和7.4cm以及6.9cm和7.4cm的釘子。大多數(shù)發(fā)生的錯誤是,三名參與者錯誤的拾取了6.4cm的釘子比6.9cm的釘用了更大的力。從結果來看,可以說應用程序可以由用戶用于區(qū)別不同直徑的釘子。
圖6 區(qū)分不同直徑的實驗結果Fig.6 Distinguish different diameter of experimental results
這個實驗中10個參與者中的3個可以正確識別在作用力基礎上四個釘子的順序。全部十個參與者能準確地辨認最多的潤滑和最少的潤滑的極端情況 (l=0.9 和 l=0.3)。
圖7 區(qū)分不同潤滑實驗的結果Fig.7 Distinguish different lubricating of experimental results
從圖7中可以看出,十個參與者都能正確的從l=0.3的釘子中辨別出 l=0.7的釘子。90%的參與者能從l=0.5的釘子辨別出l=0.9的釘子。80%的參與者能分辨出l=0.7和l=0.5的釘子以及l(fā)=0.5和l=0.3的釘子。最糟糕的情況是,釘子具有最多潤滑油的情況(l=0.7和 l=0.9)只有70%的參與者能夠辨別這種關系。
結果發(fā)現(xiàn),不同的潤滑效果似乎是不能作為界定那些不同直徑的原因。首先,對不同的潤滑所遇到的插入力量外形,不管是什么潤滑,都是在同一個位置發(fā)生兩點接觸的。其次,力的最大值出現(xiàn)在兩點接觸期間,在每個潤滑案件的同樣深度。因此,除了短時間感受一個不同的力的高峰值之外,每個場景的裝配感知都是相同的。通過從參與者那里獲得的反饋信息,所有人都認為潤滑方案要比直徑案例困難的多。不過,從實驗的潤滑部分取得的成果可知,實際上潤滑是能夠被模仿的。成功率顯示,在帶有力反饋的虛擬環(huán)境中,用戶可以區(qū)分不同層次的潤滑。
兩種情況下得到的力的外形圖如下所示。圖8是直徑改變下的力的外形圖,圖9是潤滑改變條件下的力的外形圖。
圖8 隨直徑改變的力的外形圖Fig.8 Along with diameter change force outline drawing
從圖 8可以看出,力的最大值發(fā)生在直徑為7.4cm的釘上。釘子具有最小的光潔度是顯而易見的。從這點開始,力的最大值隨著釘子直徑的減小而減小。同時隨著直徑的減小,兩點接觸發(fā)生的位置就越深,例如7.4cm直徑的釘子第一次發(fā)生兩點接觸大約在深度3cm處。而直徑為5.9cm的釘子是在15cm左右的深度發(fā)生兩點接觸的。
圖9與圖8情形相似,兩種情況下兩點接觸發(fā)生在同一深度7cm處。潤滑最少的釘子會獲得較大的力而后從那里下落。這種下落發(fā)生在開始階段,表明基于潤滑條件倒角通道是不同的。
圖9 根據不同潤滑的力的外形圖Fig.9 Along with lubricating change force outline drawing
從前述的實驗結果可以看出,觸覺裝配起到了一定的作用。設計工程師就可以很好的感知產品裝配時所受到的力,能夠比較真實的感受和觀察產品的裝配過程,這就使得產品設計者在設計階段初期就能夠及時發(fā)現(xiàn)產品自身存在的問題,并能夠及時的進行糾正解決,從而大大縮短產品的開發(fā)周期,使產品能盡早的投入市場。
[1]寧汝新,鄭軼.虛擬裝配技術的研究進展及發(fā)展趨勢分析[J].中國機械工程,2005,16(15):1398-1404.
[2]王愛民,戴金橋.人機交互中的力/觸覺設備進展綜述[J].工業(yè)儀表與自動化裝置,2007(2):14-18.
[3]焦念東,劉連慶,田孝軍,等.具有力覺與視覺反饋的交互式納米操作系統(tǒng)[J].機器人,2006,28(3):279-284.
[4]劉檢華,姚裙,寧汝新.基于虛擬裝配的碰撞檢測算法研究與實現(xiàn)[J].系統(tǒng)仿真學報,2004,16(8):1775-1778.
[5]楊潤黨,武殿梁,鄧華林,等.虛擬環(huán)境下產品裝配技術的研究與實現(xiàn)[J].計算機集成制造系統(tǒng),2004,10(10):1220-1224.