張智躍 梁 旭 游江維
(中國礦業(yè)大學(xué)〈北京〉機(jī)電與信息工程學(xué)院,中國 北京100083)
采用虛擬現(xiàn)實(shí)技術(shù)(VR)進(jìn)行采煤工作面的三維場景仿真,將整個(gè)采煤過程可視化,進(jìn)行采礦生產(chǎn)過程模擬,服務(wù)于工作面的隱患預(yù)警,提高煤炭開采的安全性,用于煤礦人員技術(shù)培訓(xùn)。
采煤工作面的設(shè)備包括刮板輸送機(jī)、采煤機(jī)和液壓支架,其中液壓支架的結(jié)構(gòu)組成復(fù)雜。液壓支架由多個(gè)部件構(gòu)成,組件類型多,部件的運(yùn)動(dòng)模式各不相同,包括垂直方向的升降運(yùn)動(dòng)、水平方向的平移運(yùn)動(dòng),依賴升降的旋轉(zhuǎn)運(yùn)動(dòng)等,組件間的運(yùn)動(dòng)關(guān)系難以準(zhǔn)確描述。準(zhǔn)確的實(shí)施液壓支架運(yùn)動(dòng)仿真的基礎(chǔ)是設(shè)計(jì)液壓支架的運(yùn)動(dòng)控制技術(shù),也是采煤工作面仿真的關(guān)鍵技術(shù)。
VR技術(shù)在煤礦領(lǐng)域的仿真工作主要有煤礦設(shè)備的虛擬設(shè)計(jì)、礦井火災(zāi)模擬和瓦斯爆炸模擬[1]等,但存在設(shè)備仿真模型粗糙、場景控制技術(shù)簡單和實(shí)時(shí)性差等缺陷。由于采煤設(shè)備的多樣性、采煤過程和場景的復(fù)雜性,采煤工作面的場景仿真研究很少。液壓支架的運(yùn)動(dòng)仿真及運(yùn)動(dòng)控制的相關(guān)研究沒有見諸報(bào)道。
1.1.1 液壓支架的組件
液壓支架一共由六個(gè)部件組成:前梁、頂梁、立柱、底座、掩護(hù)梁和連桿,如圖1。液壓支架的構(gòu)造可以簡化為圖2,其中A為頂梁,B是立柱,C是底座,D掩護(hù)梁,E是連桿,F是前梁。
圖1 液壓支架原圖
圖2 液壓支架示意圖
1.1.2 液壓支架的運(yùn)動(dòng)關(guān)系
液壓支架的運(yùn)動(dòng)由立柱的升降為主導(dǎo),隨著B的升降,頂梁A隨著立柱平動(dòng),底座C保持不變,拉桿E繞著W點(diǎn)旋轉(zhuǎn),掩護(hù)梁D的運(yùn)動(dòng)是最復(fù)雜的,不僅有升降還有旋轉(zhuǎn),對(duì)D的運(yùn)動(dòng)控制是工作的重中之重。液壓支架組件描述表1如下:
表1 支架組件描述表
液壓支架的運(yùn)動(dòng)是周期性的,設(shè)液壓支架的一個(gè)周期為時(shí)間T,整個(gè)周期T運(yùn)動(dòng)狀態(tài)又可以分為四個(gè)階段,支架部件在上述階段的運(yùn)動(dòng)模式見表2:
表2 支架部件不同階段運(yùn)動(dòng)模式
液壓支架運(yùn)動(dòng)過程表達(dá)為若干個(gè)關(guān)鍵幀,計(jì)算關(guān)鍵幀時(shí)刻支架所處的位置和狀態(tài)信息,以幀的形式組織描述支架狀態(tài),連接關(guān)鍵幀形成支架運(yùn)動(dòng)仿真過程[2-3]。通過場景中的幾何模型關(guān)系計(jì)算求解關(guān)鍵幀的方法,解決了液壓支架的復(fù)雜運(yùn)動(dòng)部件的路徑信息難以獲取的問題。
設(shè)置運(yùn)動(dòng)路徑是常用的運(yùn)動(dòng)控制及仿真方法,即求出場景中物體的真實(shí)運(yùn)動(dòng)數(shù)學(xué)關(guān)系模型,根據(jù)運(yùn)動(dòng)數(shù)學(xué)模型生成運(yùn)動(dòng)路徑[4]。如果運(yùn)動(dòng)數(shù)學(xué)關(guān)系模型特別復(fù)雜,提取數(shù)學(xué)關(guān)系模型困難,以及場景仿真時(shí)會(huì)運(yùn)算量巨大,仿真的實(shí)時(shí)性差,也無法提高渲染效率。提取關(guān)鍵幀的方法在保證仿真真實(shí)性的情況下,能夠很好的解決這個(gè)問題。
液壓支架的運(yùn)動(dòng)周期為[0,T4],從支架的運(yùn)動(dòng)周期中提取N個(gè)關(guān)鍵幀,幀間的時(shí)隔:
液壓支架的關(guān)鍵幀表述為H(t),描述t時(shí)刻液壓支架的狀態(tài),在液壓支架第m個(gè)運(yùn)動(dòng)周期的第i幀的時(shí)刻為:
關(guān)鍵幀由支架的各組件狀態(tài)組成:
本系統(tǒng)是基于Open Scene Graph(OSG)圖形庫開發(fā)[5],OSG包含了一系列的開源圖形庫,主要為圖形圖像應(yīng)用程序的開發(fā)提供場景管理和圖形渲染優(yōu)化的功能。它使用可移植的ANSIC++編寫,并使用已成為工業(yè)標(biāo)準(zhǔn)的OpenGL底層渲染API。因此,OSG具備跨平臺(tái)性,可以運(yùn)行在Windows,MacOSX和大多數(shù)類型的UNIX和Linux操作系統(tǒng)上。
OSG提供了樹狀的結(jié)構(gòu)組織模型,有效液壓支架進(jìn)行場景組織。3DMAX制作生成前六個(gè)設(shè)備部件模型文件,并進(jìn)行組織,然后由OSG Exp插件導(dǎo)出為.osg格式文件。
液壓支架是采煤工作面仿真的核心設(shè)備模型,通過OSG中加載模型函數(shù)osgDB::read Node File()從文件中讀取設(shè)備模型,然后對(duì)場景模型進(jìn)行相應(yīng)的運(yùn)動(dòng)控制。
加載液壓支架模型,首先按照液壓支架的運(yùn)動(dòng)位移范圍及運(yùn)動(dòng)時(shí)間,切分出若干關(guān)鍵點(diǎn)實(shí)施控制??刂谱兞堪ǎ弘p精度型時(shí)間變量,包括動(dòng)畫的起始時(shí)間和持續(xù)時(shí)間;向量型變量osg::Vec,用來控制關(guān)鍵點(diǎn)節(jié)點(diǎn)的位置;表示運(yùn)動(dòng)方式的四元數(shù)變量osg::Quat,其矢量部分表示旋轉(zhuǎn)軸,標(biāo)量部分表示關(guān)鍵點(diǎn)之間的旋轉(zhuǎn)角度。
由于液壓支架各部件功能各異,其運(yùn)動(dòng)形式也不同。因?yàn)橐簤褐Ъ転橹芷谛赃\(yùn)動(dòng),前面我們分析了在周期不同的階段各部件的運(yùn)動(dòng)狀態(tài),針對(duì)不同階段不同的運(yùn)動(dòng)狀態(tài)給不同的部件編寫動(dòng)畫函數(shù)。
首先設(shè)定動(dòng)畫持續(xù)的時(shí)間time,為整個(gè)周期T內(nèi)一段時(shí)間,起始時(shí)間time_start,以及整個(gè)動(dòng)畫過程由n個(gè)關(guān)鍵幀組成。
1)平移運(yùn)動(dòng)控制
平移以頂梁A為例,需設(shè)定升降的距離,即位移量displacement。由函數(shù)osg::Vec position()生成平動(dòng)時(shí)兩關(guān)鍵幀之間的位移量;函數(shù)osg::Animation Path::insert()把運(yùn)動(dòng)時(shí)間、位移量插入動(dòng)畫路徑函數(shù),完成路徑設(shè)置。頂梁A節(jié)點(diǎn)調(diào)用動(dòng)畫路徑回調(diào)函數(shù)osg::Node::set Update Callback()完成運(yùn)動(dòng)路徑。
2)旋轉(zhuǎn)運(yùn)動(dòng)控制
旋轉(zhuǎn)以連桿E為例,首先設(shè)置旋轉(zhuǎn)角度angle。關(guān)鍵幀之間的節(jié)點(diǎn)旋轉(zhuǎn)角度為angle/n,所用的時(shí)間為time/n,由函數(shù)osg::Quatrotation()更新旋轉(zhuǎn)角度。最后同樣調(diào)用insert()函數(shù)插入時(shí)間和當(dāng)前狀態(tài),返回動(dòng)畫路徑。同樣連桿E節(jié)點(diǎn)通過函數(shù)osg::Node::set Update Callback()調(diào)用動(dòng)畫路徑。
3)旋轉(zhuǎn)和平移協(xié)同運(yùn)動(dòng)控制:
旋轉(zhuǎn)又平移以掩護(hù)梁D為例,首先設(shè)置旋轉(zhuǎn)角度angle,平移量displacement。關(guān)鍵點(diǎn)之間的節(jié)點(diǎn)旋轉(zhuǎn)角度為angle/n,平移量為displacement/n,所用的時(shí)間為time/n,由函數(shù)osg::Quat rotation()更新旋轉(zhuǎn)角度,由函數(shù)osg::Vec position()更新平移量。最后仍然調(diào)用insert()函數(shù)插入時(shí)間和當(dāng)前狀態(tài),返回動(dòng)畫路徑。最后節(jié)點(diǎn)調(diào)用回調(diào)函數(shù)osg::Node::set Update Callback()完成掩護(hù)梁D的運(yùn)動(dòng)路徑。
圖3
論文主要研究了在基于OSG的虛擬場景中對(duì)模型運(yùn)動(dòng)的控制所需要的理論和方法,尤其是在對(duì)液壓支架的運(yùn)動(dòng)控制技術(shù)做了詳細(xì)設(shè)計(jì),提出了一種新的設(shè)備運(yùn)動(dòng)控制方法,能夠解決復(fù)雜動(dòng)畫路徑關(guān)系下對(duì)剛體的運(yùn)動(dòng)做準(zhǔn)確的運(yùn)動(dòng)控制,很好的解決了采煤工作面中復(fù)雜運(yùn)動(dòng)關(guān)系的控制。并且可以應(yīng)用在其它更復(fù)雜場景仿真中,都可以通過提取這種空間的幾何關(guān)系來取代運(yùn)動(dòng)路徑的數(shù)學(xué)模型關(guān)系,達(dá)到同樣的仿真效果。
系統(tǒng)也有自己的不足之處,首先設(shè)備模型單一,整個(gè)液壓支架精簡成了六個(gè)部件的運(yùn)動(dòng),雖然能體現(xiàn)出液壓支架的運(yùn)動(dòng)狀態(tài),但很多其他次要部件都被忽略。其次整個(gè)系統(tǒng)都沒有加入聲音系統(tǒng),整個(gè)場景的運(yùn)動(dòng)都是無聲的狀態(tài),不可避免的降低了場景的真實(shí)感。
隨著數(shù)字化礦山的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)在礦業(yè)方面的應(yīng)用將會(huì)越來越廣,將來可以將三維仿真虛擬現(xiàn)實(shí)技術(shù)與動(dòng)力學(xué)理論結(jié)合,做到場景的真實(shí)性,并且可以與傳感器和網(wǎng)絡(luò)設(shè)備一起結(jié)合,達(dá)到場景的實(shí)時(shí)性。
[1]禹亮.采煤工作面仿真系統(tǒng)研究[D].山東科技大學(xué),2008.
[2]X.Shen,R.Hage and N.D.Georganas.Agent-aided Collaborative Virtual Environments over HLA/RTI[C]//Proc.IEEE/ACM Third International Workshop on Distributed Interactive Simulation and Real Time Applications (D IS-R’99),Greenbelt MD,Oct.1999.
[3]J.C.Oliveira,X.Shen,N.D.Georganas.Collaborative Virtual Environment for Industrial Training and e-Commerce[C]//Proc.Workshop on Application of Virtual Reality Technologies for Future Telecommunication Systems,IEEEGlobecom’2000 Conference,Nov.-Dec.2000,San Francisco.
[4]肖甫,王汝傳,孫力娟.多關(guān)聯(lián)性虛擬現(xiàn)實(shí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(12):36-39.
[5]楊化斌.Open Scene Graph3.0三維視景仿真技術(shù)開發(fā)詳解[M].國防工業(yè)出版社,2012.