楊雁冰
摘 要:虛擬現(xiàn)實(shí)是建立交互,構(gòu)建一個(gè)虛擬環(huán)境,以此為前提,設(shè)計(jì)并聯(lián)機(jī)器人的仿真系統(tǒng),是根據(jù)機(jī)器人的運(yùn)動(dòng)學(xué)仿真,完成仿真系統(tǒng)的設(shè)計(jì)。該系統(tǒng)設(shè)計(jì)后,可把并聯(lián)機(jī)器人放到一個(gè)三維空間內(nèi),機(jī)器人在這個(gè)空間內(nèi)根據(jù)指令做出相應(yīng)的動(dòng)作。
關(guān)鍵詞:虛擬現(xiàn)實(shí) 并聯(lián)機(jī)器人 運(yùn)動(dòng)學(xué)仿真 仿真系統(tǒng)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)03(c)-0018-02
虛擬現(xiàn)實(shí)是VR技術(shù),以計(jì)算機(jī)為平臺(tái),把視覺、聽覺、觸覺放到一個(gè)虛擬環(huán)境中,人們佩戴設(shè)備后,即可交互。系統(tǒng)開發(fā)中,是結(jié)合虛擬現(xiàn)實(shí)與并聯(lián)機(jī)器人的優(yōu)勢(shì),綜合后完成系統(tǒng)設(shè)計(jì),并給出實(shí)際應(yīng)用的實(shí)例,以為并聯(lián)機(jī)器人的進(jìn)一步開發(fā)提供輔助。
1 并聯(lián)機(jī)器人的運(yùn)動(dòng)學(xué)仿真
并聯(lián)機(jī)器人的運(yùn)動(dòng)學(xué)仿真有多個(gè)內(nèi)容,包括其正向、逆向的運(yùn)動(dòng)學(xué)計(jì)算、活動(dòng)空間等,而進(jìn)行仿真分析的目的是,用不同功能滿足計(jì)算機(jī)需求,分析運(yùn)動(dòng)空間,判斷其是否滿足需求。其運(yùn)動(dòng)學(xué)的運(yùn)算是并聯(lián)機(jī)器人的正、反解的運(yùn)算,它們是機(jī)器人運(yùn)動(dòng)學(xué)等研究進(jìn)行的前提,而為便于仿真系統(tǒng)的設(shè)計(jì),本文分析的正解運(yùn)算。
對(duì)于運(yùn)動(dòng)空間求解,是系統(tǒng)建設(shè)的重要任務(wù),機(jī)器人實(shí)際展示或虛擬展示中,會(huì)受很多因素影響,即實(shí)際進(jìn)行中,受連桿工作行程的控制,6個(gè)連桿之間互相影響,對(duì)機(jī)器人關(guān)節(jié)的運(yùn)動(dòng)造成限制,故仿真系統(tǒng)的設(shè)計(jì),是指導(dǎo)機(jī)器人操作,針對(duì)不同的情況,選擇相應(yīng)處理方案。也就是,仿真系統(tǒng)設(shè)計(jì)后,并聯(lián)機(jī)器人所有活動(dòng)的區(qū)域都在三維空間內(nèi),可從中直觀的看到結(jié)果。
2 虛擬現(xiàn)實(shí)下并聯(lián)機(jī)器人的仿真系統(tǒng)
該系統(tǒng)是讓并聯(lián)機(jī)器人在三維立體環(huán)境內(nèi),像人一樣做出動(dòng)作,包括走步、轉(zhuǎn)彎、跑步等,所有動(dòng)作的展示都可從多個(gè)角度觀看,增加效果的逼真性。系統(tǒng)中,機(jī)器人站在“地板”上,“地板”是一個(gè)立體的平面,在上面粘貼了一張貼圖,結(jié)構(gòu)簡(jiǎn)單,大小適中,它的加入,是把機(jī)器人與背景區(qū)分開,增加模擬的真實(shí)感。用這個(gè)系統(tǒng)制作機(jī)器人,可分散機(jī)器人各部分的零件,待使用時(shí),再把所有零件放在一起,通過其他操作,制作出并聯(lián)機(jī)器人。系統(tǒng)具體的設(shè)計(jì)方案如下。
2.1 系統(tǒng)總設(shè)計(jì)
該系統(tǒng)使用的是C++程序,而該程序的核心是,進(jìn)行消息循環(huán),設(shè)定的程序開始運(yùn)行后,操作者根據(jù)實(shí)際需求,向并聯(lián)機(jī)器人發(fā)出控制命令,讓命令進(jìn)入循環(huán),包括退出、運(yùn)動(dòng)與場(chǎng)景,如果是控制機(jī)器人運(yùn)動(dòng)的指令,命令進(jìn)入運(yùn)動(dòng)事件,控制并聯(lián)機(jī)器人做出相應(yīng)的動(dòng)作,最后把機(jī)器人放到三維空間內(nèi)。
2.2 詳細(xì)設(shè)計(jì)
2.2.1 設(shè)定運(yùn)動(dòng)軌跡
并聯(lián)機(jī)器人的設(shè)計(jì)方式是用其余程序計(jì)算,然后把計(jì)算結(jié)果輸入到系統(tǒng)內(nèi),在線控制,在系統(tǒng)內(nèi)部根據(jù)計(jì)算精度,精確設(shè)計(jì)并聯(lián)機(jī)器人的運(yùn)動(dòng)軌跡,在杠桿的作用下,完成動(dòng)作的初始路線設(shè)計(jì),隨后,根據(jù)軌跡的變化,確定每個(gè)點(diǎn)的桿長(zhǎng),以及對(duì)應(yīng)的動(dòng)作速度,把所有數(shù)字整合后,放到信息表中,虛擬環(huán)境中如果機(jī)器人需做出仿真運(yùn)動(dòng),即可查閱表格,得到對(duì)應(yīng)的數(shù)值與基本信息。另通過軌跡的整體規(guī)劃,把所有運(yùn)動(dòng)軌跡分成了6個(gè)分支[1]。
2.2.2 控制指令
控制指令是消息控制,在主程序內(nèi)加入消息控制環(huán)節(jié),在每個(gè)對(duì)象之間建立通信,且程序內(nèi)必然有控制程度的代碼??刂浦噶畹牧鞒虉D是:程序開始后,把控制指令從中拿出,根據(jù)指令內(nèi)容決定下一步操作;包括退出信息、處理指令、翻譯指令,其中退出信息是直接結(jié)束處理,把未使用的資源釋放,處理指令是進(jìn)行初始化設(shè)計(jì),放到三維空間內(nèi),嘗試運(yùn)行;待消息處理后,向外分派消息,隨后執(zhí)行相關(guān)操作。
2.2.3 主控
對(duì)系統(tǒng)的主控,是運(yùn)用面向?qū)ο蠛筒寮焦芾恚孟到y(tǒng)代碼構(gòu)建框架,而代碼運(yùn)行后,建立的是虛擬環(huán)境,同時(shí),在系統(tǒng)內(nèi)加入數(shù)控操作,基于并聯(lián)機(jī)器人的杠桿操作與運(yùn)行軌跡,接入多個(gè)代碼,這些代碼即為并聯(lián)機(jī)器人運(yùn)動(dòng)產(chǎn)生的實(shí)體。具體包括:(1)主控代碼的計(jì)算,是把所有結(jié)果顯示,完成數(shù)據(jù)計(jì)算,隨后實(shí)體代碼與主動(dòng)代碼連接后,控制主控代碼的操作;(2)CD3DMesh,它的作用是定義并聯(lián)機(jī)器人,記住并聯(lián)機(jī)器人的特征,把所有特征放到集合,如果需要添加新的內(nèi)容,可使用導(dǎo)出文件,并把新的信息輸入到確定的對(duì)象內(nèi),豐富對(duì)象的意義,如此,是把并聯(lián)機(jī)器人的所有信息都輸入到仿真系統(tǒng)內(nèi),記錄各部分的數(shù)據(jù)與特征;(3)(class Main Window,所有主控代碼動(dòng)作都在這里面完成,連接多個(gè)接口,這些接口均屬于HRESULT的類別。首先,對(duì)于One Time Scenelint(),發(fā)出預(yù)編譯的命令,雖然目的是與 64位機(jī)兼容,但真正調(diào)整的其他接口;其次,Init Device Objects(),其負(fù)責(zé)的安裝驅(qū)動(dòng),在系統(tǒng)內(nèi)讀取文件,裝載網(wǎng)格,把并聯(lián)機(jī)器人放到緩沖區(qū)內(nèi),讓其按照設(shè)定的運(yùn)動(dòng)軌跡,做出動(dòng)作,期間會(huì)產(chǎn)生3個(gè)數(shù)據(jù)流,包括初始、發(fā)生、恢復(fù),另這部分也會(huì)讀取其他文件,有特定的讀取方式;再次,Rrstore Device Objects(),對(duì)所有燈光、節(jié)點(diǎn)進(jìn)行初始化設(shè)計(jì);接著,F(xiàn)rame Move(),分析共享變量,把變量反應(yīng)到物體上,且這項(xiàng)操作結(jié)束后,流程隨即睡眠;最后,Render(),它負(fù)責(zé)的是處理場(chǎng)景,根據(jù)并聯(lián)機(jī)器人實(shí)際工作的空間,設(shè)計(jì)杠桿的位置,其中需提及的是,用三維圖形現(xiàn)實(shí)繪制,選擇網(wǎng)格點(diǎn),放在緩沖區(qū)內(nèi),并根據(jù)需求實(shí)際切換。
3 仿真系統(tǒng)的運(yùn)用與思考
3.1 運(yùn)用
該系統(tǒng)已經(jīng)完成了6-DOF并聯(lián)機(jī)器人的仿真,包括從模型分析到整體控制,從中得到大量數(shù)據(jù),并基于得到的數(shù)據(jù),完成數(shù)據(jù)分析[2]。對(duì)應(yīng)數(shù)據(jù)如下。
(1)起始位置的數(shù)據(jù):xp、yp、zp為0.000cm,α、β、γ是0.000rad。
(2)目標(biāo)位置數(shù)據(jù)是:xp是36.000cm,zp為60.000cm,yp與α、β、γ的數(shù)值不變。
(3)機(jī)械臂的運(yùn)動(dòng)(加速度):線是2.0000cm/s2,角是2.0000rad/s2,時(shí)長(zhǎng)10.0000s。
(4)PID控制:Kp是4.000,Ti是 1.000,Dd是0.000。
根據(jù)這四類數(shù)據(jù),分別繪制了6個(gè)分支分別對(duì)應(yīng)的曲線,從曲線中得到結(jié)果是,最大速度下,誤差為8.016%,最大的誤差接近2.67cm/s,而從仿真模擬得到的結(jié)果是,設(shè)定的分支長(zhǎng)度符合極限的要求,之間未有干涉,所有運(yùn)動(dòng)都在這個(gè)空間內(nèi)。
3.2 思考
從上述內(nèi)容的闡述中,總結(jié)出基于虛擬顯示模擬并聯(lián)機(jī)器人的仿真,是按照并聯(lián)機(jī)器人運(yùn)行的環(huán)境、整體運(yùn)行環(huán)境等參數(shù),用系統(tǒng)制作出三維立體空間,并在這個(gè)空間制作出并聯(lián)機(jī)器人,下發(fā)指令,讓其按照現(xiàn)場(chǎng)基本情況操作,檢驗(yàn)機(jī)器人內(nèi)多個(gè)杠桿的操作是否會(huì)相互干擾。由此,提出這一方式是增強(qiáng)了并聯(lián)機(jī)器人模擬操作的直觀性,通過直觀地觀察,得到基本判斷,即借助三維模擬,把并連機(jī)器實(shí)際操作的場(chǎng)景模擬,輸入不同的指令與指數(shù),記錄數(shù)據(jù),嘗試畫出分支曲線,曲線繪制后,結(jié)合分析結(jié)果,給出最優(yōu)的并聯(lián)機(jī)器人操作方式,設(shè)定既定的參數(shù)與模式,避免不同杠桿之間的相互干擾,優(yōu)化機(jī)器人使用的效果。但該系統(tǒng)還有部分細(xì)節(jié)需進(jìn)一步處理,包括數(shù)據(jù)分析的優(yōu)化、主控設(shè)計(jì)環(huán)節(jié)設(shè)計(jì)的優(yōu)化等,只有如此,才可以提高仿真系統(tǒng)設(shè)計(jì)的水平,給出科學(xué)、合理的設(shè)計(jì)方案。
4 結(jié)語
用虛擬現(xiàn)實(shí)開發(fā)并聯(lián)機(jī)器人的仿真系統(tǒng),是借由虛擬現(xiàn)實(shí)互動(dòng)的特點(diǎn),以及并聯(lián)機(jī)器人的運(yùn)動(dòng)學(xué)仿真,提出系統(tǒng)設(shè)計(jì)的總思路,以及細(xì)節(jié)的設(shè)計(jì),從這些設(shè)計(jì)中,可以優(yōu)化對(duì)并聯(lián)機(jī)器人運(yùn)動(dòng)狀態(tài)的分析,給出避免零件相互干擾的方案,保證其整體運(yùn)行都在目標(biāo)區(qū)域內(nèi)。但該系統(tǒng)還有很多細(xì)節(jié)需進(jìn)一步處理,補(bǔ)充系統(tǒng)的漏洞。
參考文獻(xiàn)
[1] 方向明,方明,劉天元,等.基于虛擬現(xiàn)實(shí)技術(shù)的機(jī)器人仿真設(shè)計(jì)研究[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2016,39(1):61-65.
[2] 李剛俊,陳永.面向機(jī)器人應(yīng)用的虛擬現(xiàn)實(shí)系統(tǒng)[J].西南交通大學(xué)學(xué)報(bào),2013(1):115-118.