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