李瓏
摘要:在現(xiàn)代產(chǎn)品開發(fā)設(shè)計過程中,經(jīng)常會用到虛擬運動仿真技術(shù),該技術(shù)已經(jīng)成為了現(xiàn)代化產(chǎn)品設(shè)計制造中的一項關(guān)鍵技術(shù)。本文以采摘機械手的設(shè)計開發(fā)為例,對基于Jave3D和VRML的虛擬運動仿真技術(shù)的應(yīng)用進行了探究,希望對相關(guān)工作能夠有所借鑒。
關(guān)鍵詞:采摘機械手;虛擬運動仿真;Java3D;VRML
DOI:10.16640/j.cnki.37-1222/t.2018.02.088
1引言
在現(xiàn)代產(chǎn)品開發(fā)設(shè)計過程中,經(jīng)常會用到虛擬運動仿真技術(shù),該技術(shù)已經(jīng)成為了現(xiàn)代化產(chǎn)品設(shè)計制造中的一項關(guān)鍵技術(shù)。對采摘機械手的設(shè)計開發(fā)來說,傳統(tǒng)方法是先形成設(shè)計方案,然后再依據(jù)方案將機械手的所有組成零部件都試制出來,最后進行裝配。這種方式具有一個明顯的缺點,即設(shè)計中的不合理之處只有在試制出成品后才能被發(fā)現(xiàn),一旦需要進行修改,那么就需要不斷重復(fù)試制過程,進而導(dǎo)致產(chǎn)品的開發(fā)成本和耗時都大幅度提升。在這種情況下,越來越多的人開始重視對虛擬運動仿真技術(shù)的運用。在方案形成環(huán)節(jié)就可以應(yīng)用該技術(shù)對設(shè)計中的潛在不合理之處進行驗證,然后就可以在沒有制出實物的情況下就完成產(chǎn)品的修改和優(yōu)化,進而就能有效保障最終制造出來的產(chǎn)品與設(shè)計目標(biāo)相一致。本文以采摘機械手的設(shè)計開發(fā)為例,對基于Jave3D和VRML的運動仿真技術(shù)進行了研究,希望對相關(guān)產(chǎn)品的設(shè)計開發(fā)工作能夠有所借鑒。
2虛擬場景生成
要進行虛擬運動仿真,首先要做的就是生成虛擬場景,而當(dāng)前應(yīng)用最為廣泛的虛擬場景生成工具主要包括四種:OpenGL、Dkect3D、Jave3D和VRML。以上這四種工具都可以實現(xiàn)三維可視化建模,而且每個工具都有各自的特點,下面將對這四種工具進行分別介紹:(1)OpenGL。OpenGL是一種底層的三維圖形建模工具,具有兼容性好、開放性好、接口通用、性能穩(wěn)定以及運行效率較高等優(yōu)勢。采用OpenGL進行三維建模時可以借助編程實現(xiàn),但編程語言較為復(fù)雜,所以會拖慢開發(fā)耗時。(2)Direct3D。Direct3D是一種基于應(yīng)用對象的三維圖形編程工具,采用該工具可以繞開圖形的顯示接口,進而就極大的提升了系統(tǒng)的運行效率,但該工具的開發(fā)難度較大,一般主要用在游戲的建模和開發(fā)上。(3)VRML。VRML是一種虛擬化的建模語言,可以直接使用瀏覽器對建模文件進行解釋并生成三維圖形,還可以借助網(wǎng)絡(luò)平臺構(gòu)建一個覆蓋全球的虛擬世界。這種語言的優(yōu)勢是便于和其他工具聯(lián)合使用,進而使得其虛擬建模的效果得到更大提升。(4)Java3D。Java3D是一種跨平臺的圖形開發(fā)工具,它是在Java的基礎(chǔ)形成的,可以提供比較完善的三維編程語言,這種語言的優(yōu)勢是形式簡單,利于很快上手,因此被廣泛用作虛擬環(huán)境的開發(fā)工具。
比較以上虛擬開發(fā)工具后發(fā)現(xiàn):OpenGL圖形的顯示速度較快,而且其建模效果也非常逼真,但因為編程語言較為復(fù)雜和不易掌握的緣故,所以開發(fā)耗時比較大;Direct3D主要被用在游戲開發(fā)中;VRML文件格式較小,可以借助傳感器來進行虛擬環(huán)境的交互,但場景在改變時需要執(zhí)行解釋操作,交互性較差。根據(jù)對這些虛擬場景生成技術(shù)的優(yōu)劣點進行綜合比較后決定,本研究采用Java3D為主、VRML為輔的方法,對采摘機械手(如圖1所示)作業(yè)的虛擬環(huán)境進行建模。
采摘機械手的虛擬交互系統(tǒng)是根據(jù)農(nóng)業(yè)操作人員的需求開發(fā)的,借助瀏覽器來將用戶的需求進行顯示并進行實時交互。
3軌跡規(guī)劃和碰撞仿真模型
當(dāng)對機械手的作業(yè)場景完成虛擬建模后,就需要對機械手的運動軌跡進行仿真計算,以驗證機械手是否可以按照設(shè)計軌跡動作。如果機械手是通過連續(xù)的位置點,那么就可以用逆運動學(xué)原理將中間點轉(zhuǎn)為期望的關(guān)節(jié)角度,然后計算每個關(guān)節(jié)的三次多項式,最后再依據(jù)新的路徑約束條件來求解多項式。
對于采摘機械手的運動仿真來說,碰撞檢測是其中非常重要的一項內(nèi)容,是保障采摘機械手在作業(yè)時可以成功規(guī)避障礙物的基礎(chǔ)。Java3D提供了碰撞仿真的兩個類,即Wake on CollisionEntry和Wake on CollisionExit。當(dāng)發(fā)現(xiàn)虛擬場景中的兩個檢測對象出現(xiàn)碰撞問題時,Wake on CollisionEntry被喚醒,而當(dāng)碰撞結(jié)束后,Wake on CollisionExit被喚醒。
用戶在使用過程中,可以根據(jù)采摘機械手的實際應(yīng)用情景創(chuàng)設(shè)虛擬場景,然后將其傳送到服務(wù)器端。VRML場景中的虛擬模型位置和方向可以被轉(zhuǎn)換成便于碰撞檢測的文件。同時,還可以利用Sweep and Prune算法對相隔很遠(yuǎn)的物體進行剔除,然后在應(yīng)用相交原理進行精確的碰撞檢測。當(dāng)仿真檢測到碰撞后,系統(tǒng)會將相關(guān)信息反饋給用戶端,然后由用戶端進行相應(yīng)的操作,最后再對模型的位置和方向信息進行更新。
4運動仿真
上文對基于Jave3D和VRML技術(shù)的采摘機械手運動仿真的可行性進行了探究,并討論了用三次多項式來表示運動軌跡模型的方法。根據(jù)這一理論,采用Java軟件并結(jié)合VRML技術(shù),可以采用面向?qū)ο蟮姆绞綄C械手進行建模。在此基礎(chǔ)上,通過對機械手的運動軌跡進行仿真來達(dá)到優(yōu)化設(shè)計的目的。在仿真過程,可以利用Java3D提供的API來對虛擬場景進行交互式仿真,并根據(jù)軌跡規(guī)劃來實現(xiàn)對運動軌跡的追蹤。最后,使用該理論進行運動仿真還可以對機械手的運動性能參數(shù)進行捕捉,從而實現(xiàn)對仿真結(jié)果可靠性的驗證。