任俠
摘要:在機(jī)器人中,機(jī)械臂為主要執(zhí)行機(jī)構(gòu),對(duì)機(jī)械臂運(yùn)動(dòng)仿真進(jìn)行分析具有重要意義。使用仿真技術(shù)實(shí)現(xiàn)參數(shù)設(shè)置、調(diào)試等工作能夠提高效率,有效節(jié)約成本。目前,虛擬技術(shù)能夠創(chuàng)建三維環(huán)境,并且和外界實(shí)時(shí)交互,被廣泛應(yīng)用到機(jī)械臂仿真領(lǐng)域中。以此,本文就對(duì)Java 3D虛擬現(xiàn)實(shí)技術(shù)背景下機(jī)械臂運(yùn)動(dòng)仿真進(jìn)行分析。
關(guān)鍵詞:Java3D虛擬現(xiàn)實(shí)技術(shù);機(jī)械臂;運(yùn)動(dòng)仿真
虛擬現(xiàn)實(shí)VR在機(jī)器人系統(tǒng)中使用就是通過(guò)三維建模軟件創(chuàng)建機(jī)器人和環(huán)境物體三維模型,使用三維圖形仿真技術(shù)實(shí)現(xiàn)真實(shí)三維場(chǎng)景的創(chuàng)建,對(duì)機(jī)器人環(huán)境和本體進(jìn)行幾何建模,以此為機(jī)器人控制系統(tǒng)提供觀察、研究的平臺(tái)。利用虛擬仿真能夠?qū)C(jī)器人所達(dá)到空間范圍、周圍環(huán)境、運(yùn)動(dòng)狀態(tài)的關(guān)系進(jìn)行預(yù)知,降低實(shí)際運(yùn)行意外事故,并且使運(yùn)行效率得到提高。本文通過(guò)實(shí)驗(yàn)創(chuàng)建機(jī)械臂仿真系統(tǒng),實(shí)現(xiàn)機(jī)械臂的運(yùn)動(dòng)仿真。
1 機(jī)械臂三維形體造型
Java3D為三維領(lǐng)域中Java語(yǔ)言的擴(kuò)展,為純粹面向?qū)ο蠼Y(jié)構(gòu)。Java3D場(chǎng)景圖為DAC,也就是具備方向性的不對(duì)稱圖形。三維形體為Java3D編程過(guò)程中的主要對(duì)象,包括三種方式生成需求三維形體:通過(guò)Java3D所提供用于編寫點(diǎn)線面的類生成點(diǎn)線面對(duì)象;利用調(diào)用外部其他格式三維圖形文件,實(shí)現(xiàn)復(fù)雜三維形體對(duì)象的生成;利用Utility生成形體geometry classes,Java3D具備基本形體和編寫點(diǎn)線面對(duì)象應(yīng)用,此可用在程序中創(chuàng)建簡(jiǎn)單形體,但是無(wú)法實(shí)現(xiàn)復(fù)雜形體。利用調(diào)用其他格式三維圖形文件得到復(fù)雜形體,比如直接調(diào)用Lightwave格式與VRML2.0格式的三維圖形文件,或者利用處理對(duì)DXF、DEG、3DS等格式三維圖形文件,此格式三維模型能夠在Ja-va3D程序中使用。
2 機(jī)械臂運(yùn)動(dòng)仿真的實(shí)現(xiàn)
2.1 遙操作VR系統(tǒng)結(jié)構(gòu)
系統(tǒng)使用瀏覽器/服務(wù)器(BIS)模式,用戶界面利用WWW瀏覽器實(shí)現(xiàn),在前端實(shí)現(xiàn)部分事務(wù)邏輯,大部分在服務(wù)器端實(shí)現(xiàn)主要事務(wù)邏輯,在服務(wù)器中存儲(chǔ)數(shù)據(jù)與應(yīng)用程序,通過(guò)瀏覽器軟件登錄服務(wù)器實(shí)現(xiàn)客戶端運(yùn)行程序。服務(wù)器和機(jī)器人相互連接,機(jī)器人通過(guò)單片機(jī)進(jìn)行控制,單片機(jī)利用串行口RS-232通信對(duì)數(shù)據(jù)發(fā)送和接收,對(duì)機(jī)械臂運(yùn)動(dòng)控制。
在瀏覽器客戶端,瀏覽器對(duì)操作者提供文字、圖像等提示信息的操作環(huán)境與良好界面,操作界面使用切換方式實(shí)現(xiàn)不同顯示模式。在預(yù)顯示模式中,虛擬機(jī)器人將機(jī)械臂各關(guān)節(jié)理想運(yùn)行軌跡演示;在遙現(xiàn)模式中,操作員能夠監(jiān)控操作現(xiàn)場(chǎng),并且實(shí)現(xiàn)意外誤差診斷。
2.2 機(jī)械臂運(yùn)動(dòng)學(xué)建模
機(jī)械臂是通過(guò)一系列關(guān)節(jié)連接連桿構(gòu)成,為了對(duì)末端執(zhí)行器位姿描述,能夠在每個(gè)連桿中固連的坐標(biāo)系,對(duì)連桿坐標(biāo)系關(guān)系進(jìn)行描述。要想知道目標(biāo)物體在第i個(gè)連桿坐標(biāo)系中位置ip,物體在基坐標(biāo)系中位置op的表達(dá)式為:
i-1Ai指的是第i個(gè)連桿相對(duì)于第i-1個(gè)連桿位姿。
以此表示,兩桿之間位姿矩陣能夠得到手部位姿矩陣,并且和兩桿的結(jié)構(gòu)參數(shù)、運(yùn)動(dòng)參數(shù)、運(yùn)動(dòng)方式相關(guān)。每個(gè)連桿都通過(guò)四個(gè)變量進(jìn)行描述,連桿長(zhǎng)度為ai,連桿轉(zhuǎn)角為ai,關(guān)節(jié)角為θi,連桿偏距為di。
常用確定機(jī)械臂連桿位姿矩陣的方法為D-H法,相鄰兩個(gè)坐標(biāo)系Xn-zn和xn+1和xn+1-zn+1的變換矩陣表示為:
機(jī)械臂運(yùn)動(dòng)學(xué)方程就是創(chuàng)建機(jī)械臂末端手爪相當(dāng)于基坐標(biāo)位姿,也就是將上述連桿間距位姿矩陣通過(guò)基坐標(biāo)系乘以末端連桿坐標(biāo)系順序,從而得到運(yùn)動(dòng)學(xué)方程。機(jī)械臂使用關(guān)節(jié)型結(jié)構(gòu)保證結(jié)構(gòu)的布局合理、輕巧簡(jiǎn)單。
2.3 機(jī)械臂運(yùn)動(dòng)仿真分析
實(shí)現(xiàn)機(jī)械臂運(yùn)動(dòng)學(xué)分析之后,能夠在Java中開展四自由度機(jī)械臂正逆運(yùn)動(dòng)學(xué)的仿真。使用Java Swing技術(shù)所開發(fā)運(yùn)動(dòng)學(xué)仿真界面和具體運(yùn)動(dòng)學(xué)仿真模塊。在機(jī)械臂末端位置為(800,0,349)的時(shí)候,仿真能夠得到四個(gè)關(guān)節(jié)角度值為0.000,-45.007,-67.229,22.236。圖3為機(jī)械臂運(yùn)動(dòng)學(xué)仿真分析,以下為運(yùn)動(dòng)學(xué)仿真的實(shí)現(xiàn)代碼。
public class Joint_move{
public Point3f Forwardkinematics(float L[],float Angle[],float n[],float o[],float a[],float RPY[]){
Point3f P=new Point3f();
P.x=c1*(L[1]*c2+L[2]*c23+L[3]*c234);
P.y=s1*(L[1]*c2+L[2]*c23+L[3]*c234);
P.z=L[1]*s2+L[2]*s23+L[3]*s234;
return P;}}
3 結(jié)束語(yǔ)
機(jī)械臂為機(jī)器人主要執(zhí)行機(jī)構(gòu),在應(yīng)用領(lǐng)域不斷擴(kuò)大的過(guò)程中,其所承擔(dān)的任務(wù)復(fù)雜性也不斷增加,對(duì)于其要求不斷提高。機(jī)器人仿真研究為機(jī)器人學(xué)界重點(diǎn)領(lǐng)域,機(jī)械臂三維運(yùn)動(dòng)仿真為機(jī)器人仿真中的主要部分。通過(guò)本文分析表示,利用虛擬現(xiàn)實(shí)技術(shù)與Java技術(shù)生成機(jī)械臂實(shí)體和仿真環(huán)境,在此虛擬環(huán)境中實(shí)現(xiàn)修改和實(shí)驗(yàn),能夠?qū)C(jī)器人工作原理、碰撞檢測(cè)與軌跡策劃,有效節(jié)約成本和時(shí)間,對(duì)于機(jī)器人技術(shù)的開發(fā)具有指導(dǎo)性的建議。
參考文獻(xiàn)
[1]王亞平,姚春梅,張永.虛擬現(xiàn)實(shí)技術(shù)對(duì)機(jī)械臂的操控性研究[J].商情,2018(14):197.
[2]高國(guó)雪,高輝,焦向東,等.墓于 Unity3D的焊接機(jī)器人虛擬現(xiàn)實(shí)仿真技術(shù)研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2018(03):19-22.
[3]程伯文,鄭一力,黃青青,等.基于Unity3D的林木聯(lián)合采育機(jī)虛擬訓(xùn)練系統(tǒng)研究[J].系統(tǒng)仿真學(xué)報(bào),2018,30(04):106-114.
[4]羅立宏,譚夏梅.基于外部Flash的Web3D虛擬場(chǎng)景二維導(dǎo)航[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(02):163-167.