蔣充劍,韓海良,翟永翠
(江蘇自動(dòng)化研究所,江蘇 連云港 222006)
隨著機(jī)械及工程自動(dòng)化裝備的不斷發(fā)展,現(xiàn)代工程機(jī)械車輛的機(jī)械化、自動(dòng)化程度日益提高,隨之帶來了機(jī)械作業(yè)操縱復(fù)雜、訓(xùn)練困難、不易掌握等多方面困擾.與此同時(shí),實(shí)車訓(xùn)練還存在成本高、培訓(xùn)周期長、安全隱患大等缺點(diǎn).虛擬訓(xùn)練設(shè)備為受訓(xùn)人員提供一個(gè)反復(fù)熟悉操作的逼真模擬訓(xùn)練環(huán)境,可提高訓(xùn)練效率和訓(xùn)練安全性,降低訓(xùn)練成本,具有十分顯著的經(jīng)濟(jì)效應(yīng)[1].
當(dāng)前國外工程機(jī)械模擬訓(xùn)練設(shè)備以美國為首,體系結(jié)構(gòu)完整,技術(shù)含量高,設(shè)計(jì)的車輛訓(xùn)練種類多.在推土機(jī)模擬器方面,目前僅有卡特彼勒公司開發(fā)了推土機(jī)模擬器,采用手柄連接主機(jī)進(jìn)行控制,其操作方式與真實(shí)機(jī)械完全一致,可使操作者快速熟悉推土機(jī)的基本操作.
雖然國內(nèi)一些高校和相關(guān)研制單位在此研究領(lǐng)域一直在積極開展研究,但與國際先進(jìn)水平相比,有較大的差距.主要體現(xiàn)如下:① 雖然建立了挖掘機(jī)、叉車等工程機(jī)械模擬器,但由于推土機(jī)模擬器的一些關(guān)鍵技術(shù)沒有突破,到目前為止還未開發(fā)出推土機(jī)模擬器;② 操控設(shè)備多采用簡易操控桿,操作不真實(shí),采用三維動(dòng)畫效果模擬不逼真,基于力學(xué)原理解算又無法滿足模擬訓(xùn)練的實(shí)時(shí)操控響應(yīng)要求.
為解決以上問題,本文提出了基于Unity 3D游戲引擎的推土機(jī)模擬訓(xùn)練平臺(tái)的實(shí)現(xiàn)方法.本方法充分利用Unity 3D強(qiáng)大的圖形渲染、碰撞檢測(cè)及物理模擬功能,通過對(duì)引擎功能進(jìn)行優(yōu)化和二次改進(jìn),開發(fā)完成的模擬器采用推土機(jī)真機(jī)手柄、腳踏板等操縱設(shè)備,可實(shí)現(xiàn)黏土、沙石等多種工況下進(jìn)行推土、松土、平土作業(yè),具有模擬效果逼真、沉浸感強(qiáng)等特點(diǎn),填補(bǔ)了國內(nèi)該技術(shù)領(lǐng)域的空白.
3D Max(簡稱Max)軟件,由國際著名的Autodesk公司的子公司Discreet公司制作開發(fā)的.它是集造型、渲染和制作動(dòng)畫于一身的三維制作軟件,廣泛應(yīng)用于廣告、影視、工業(yè)設(shè)計(jì)、建筑設(shè)計(jì)、多媒體制作、游戲、輔助教學(xué)以及工程可視化等領(lǐng)域.在推土機(jī)模擬器中,使用多邊形建模、紋理映射、紋理混合技術(shù),實(shí)現(xiàn)了對(duì)推土機(jī)三維實(shí)體的建模;在三維場(chǎng)景建模時(shí),在推土機(jī)的訓(xùn)練場(chǎng)景中,大面積的工作區(qū)使用四方連續(xù)貼圖,而道路和圍欄使用二方連續(xù)貼圖的方法,這樣可節(jié)省計(jì)算機(jī)資源,提高運(yùn)行效率.
Unity 3D是由丹麥Unity公司開發(fā)的游戲引擎,其整合了光影、聲效、動(dòng)畫、物理系統(tǒng)、碰撞檢測(cè)、渲染等強(qiáng)大功能,是一個(gè)讓開發(fā)者輕松創(chuàng)建諸如三維游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)綜合型游戲開發(fā)工具.本系統(tǒng)在Unity 3D物理引擎及碰撞檢測(cè)的基礎(chǔ)上,建立了鏟刀內(nèi)土壤碰撞翻滾運(yùn)動(dòng)、車體6自由度運(yùn)動(dòng)等仿真模型;利用聲效功能,實(shí)現(xiàn)了對(duì)發(fā)動(dòng)機(jī)、履帶運(yùn)轉(zhuǎn)時(shí)的機(jī)械摩擦聲音模擬;利用動(dòng)畫剪切技術(shù),完成了推土機(jī)履帶轉(zhuǎn)動(dòng)模擬,通過腳本編碼控制,可使履帶轉(zhuǎn)動(dòng)速度隨車體速度的變化而變化.
推土機(jī)模擬訓(xùn)練平臺(tái)主要由操控設(shè)備、顯示設(shè)備、模擬解算設(shè)備和支撐設(shè)備等部件組成,各部件主要功能如表1所示,推土機(jī)模擬訓(xùn)練平臺(tái)外形圖如圖1所示.
表1 推土機(jī)模擬訓(xùn)練平臺(tái)部件組成及功能表Tab.1 The bulldozer simulation training platform component and function
圖1 推土機(jī)模擬訓(xùn)練平臺(tái)外形圖Fig.1 Bulldozer simulation training platform shape
推土機(jī)解算設(shè)備生成一個(gè)模擬訓(xùn)練場(chǎng)景,用戶根據(jù)所選場(chǎng)景進(jìn)行推土、松土作業(yè).當(dāng)用戶操縱履帶手柄、鏟刀手柄或腳踏板等操控設(shè)備時(shí),控制器會(huì)將操控設(shè)備的模擬量轉(zhuǎn)換為數(shù)字量,并以CAN總線傳輸方式發(fā)送給數(shù)據(jù)采集軟件;數(shù)據(jù)采集軟件對(duì)數(shù)據(jù)進(jìn)行采集、加工處理后以網(wǎng)絡(luò)UDP通訊方式,再將數(shù)據(jù)傳輸給推土機(jī)模擬軟件;推土機(jī)模擬軟件根據(jù)推土機(jī)所在地形環(huán)境及自身狀態(tài),對(duì)土塊碰撞翻滾運(yùn)動(dòng)、三維地形動(dòng)態(tài)變化及車體6自由度姿態(tài)進(jìn)行仿真計(jì)算和三維場(chǎng)景渲染,并響應(yīng)操控設(shè)備的操縱進(jìn)行鏟刀升降、履帶轉(zhuǎn)動(dòng)等運(yùn)動(dòng),最后將三維畫面及發(fā)動(dòng)機(jī)、履帶工作時(shí)音效實(shí)時(shí)送主、輔顯示器展示.與此同時(shí),推土機(jī)模擬器的發(fā)動(dòng)機(jī)轉(zhuǎn)速、油量、水溫等儀表信息也會(huì)受操控設(shè)備及發(fā)動(dòng)機(jī)工作時(shí)間影響而作相應(yīng)的變化,從而給用戶一個(gè)身臨其境的訓(xùn)練環(huán)境[2].
推土機(jī)模擬訓(xùn)練平臺(tái)的接口關(guān)系如圖2所示.
圖2 推土機(jī)模擬訓(xùn)練平臺(tái)的接口關(guān)系圖Fig.2 The interface relationship between the bulldozer simulation training platform
推土機(jī)工作過程中三維地形的動(dòng)態(tài)變化主要是對(duì)與推土機(jī)工作裝置(鏟刀、松土器)相接觸的地形的形變過程進(jìn)行模擬,其中鏟刀內(nèi)的土壤變化是三維建模的重點(diǎn).土塊在鏟刀內(nèi)的翻滾過程能否如實(shí)反映真實(shí)情況是提高三維地形動(dòng)態(tài)變化仿真建模逼真度的關(guān)鍵.
三維地形動(dòng)態(tài)變化模擬包括兩部分:① 鏟刀作用范圍內(nèi)的地形,即鏟刀前、后的地形;② 松土器作用范圍內(nèi)的地形,即松土器前、后的地形.
(1) 鏟刀前地形變化模擬.在建模前需要對(duì)推土機(jī)作業(yè)時(shí)的工作場(chǎng)景進(jìn)行網(wǎng)格化處理.處理時(shí)以推土機(jī)訓(xùn)練場(chǎng)左下角為坐標(biāo)原點(diǎn),建立北東天地理坐標(biāo)系,這樣就可以把推土機(jī)的工作場(chǎng)景劃分為若干個(gè)邊長為A的正三角形網(wǎng)格,然后設(shè)定每個(gè)網(wǎng)格頂點(diǎn)的高度和顏色,通過連接相鄰頂點(diǎn)對(duì)應(yīng)的三維坐標(biāo)點(diǎn)來描述地形的起伏變化.采樣點(diǎn)布置示意圖如圖3所示.
圖3 采樣點(diǎn)布置示意圖Fig.3 Layout of sampling points
推土過程中鏟刀前地形動(dòng)態(tài)變化范圍主要包括采樣點(diǎn)內(nèi)及鏟刀平面之上的地形.在建模時(shí)需要根據(jù)推土機(jī)鏟刀長度,設(shè)置推土機(jī)推土鏟上的采樣點(diǎn)個(gè)數(shù)和采樣點(diǎn)半徑,確保采樣點(diǎn)數(shù)能夠覆蓋鏟刀的寬度.利用高斯曲面公式計(jì)算該地形在采樣半徑內(nèi)的高斯衰減值,高斯曲面公式如下:
Y=Pow[360.0f,-Pow(D/r,2.5f)-0.01f]
(1)
式中:D為采樣點(diǎn)到中心點(diǎn)的距離;r為最大衰減半徑.新的地形網(wǎng)格坐標(biāo)可表示為
(2)
式中:NewP為處理完成后的新坐標(biāo)點(diǎn);OldP為原始坐標(biāo)點(diǎn);Yi為采樣點(diǎn)i;Ri為采樣半徑;DelteT為在三維渲染系統(tǒng)中每幀之間的間隔.當(dāng)?shù)匦伟l(fā)生變化時(shí),將地形顏色修改成深色.圖4為推土機(jī)推土過程中鏟刀前三維地形動(dòng)態(tài)變化示意圖.
(2) 鏟刀后地形模擬.在模擬鏟刀后地形變化時(shí),首先判斷地形高度是否高于鏟刀底部采樣點(diǎn)圓心,若高于鏟刀底部采樣點(diǎn)圓心,則將采樣點(diǎn)圓心高度賦值給地形高度,并使地形顏色變成深色;若地形高度沒有采樣點(diǎn)圓心高度高時(shí),則不改變地形高度,也不改變地形顏色.通過鏟刀后地形模擬,可以解決推土機(jī)后退時(shí),地形穿透鏟刀的現(xiàn)象.
圖4 推土過程中土塊及地形模擬示意圖Fig.4 The soil block and terrain simulation are indicated in the process of bulldozing
(3) 松土器前、后地形模擬.在模擬松土過程中松土器前的地形變化時(shí),以松土器前部為中心點(diǎn),半徑為R1、夾角為A1的扇形區(qū)域?yàn)樗赏疗髑暗匦巫兓瘏^(qū)域.根據(jù)松土器插入地形的深度,不規(guī)則隆起松土器前地形,同時(shí)在松土器前動(dòng)態(tài)生成不規(guī)則形狀土塊.模擬松土器后部地形時(shí),以松土器后部為中心點(diǎn),半徑為R1、夾角為A2的扇形區(qū)域?yàn)樗赏疗骱蟮匦巫兓瘏^(qū)間.當(dāng)進(jìn)行松土?xí)r,把該區(qū)域的地形高度設(shè)置成與松土器底部一致,并把扇形半徑設(shè)置為[m1,m2]之間隨機(jī)變化的值,這樣就形成了一個(gè)不規(guī)則的三角槽.在模擬地形動(dòng)態(tài)變化時(shí),將高度發(fā)生變化的地形顏色設(shè)置為深色.圖4中右圖為松土器作用下的三維地形動(dòng)態(tài)變化示意圖.
土塊運(yùn)動(dòng)仿真主要是模擬推土機(jī)推土作業(yè)過程中,鏟刀內(nèi)的不規(guī)則土塊與地形、鏟刀及土塊之間相互碰撞、翻滾的力學(xué)運(yùn)動(dòng)過程.具體實(shí)現(xiàn)方法如下.
在鏟刀底部橫向等間距布置若干個(gè)采樣點(diǎn),通過各個(gè)采樣點(diǎn)與鏟刀所在地形的距離進(jìn)行比較,可實(shí)時(shí)監(jiān)測(cè)鏟刀左、右傾斜角度,及入土深度.若鏟刀附近地形在采樣點(diǎn)范圍內(nèi),則該區(qū)域即為動(dòng)態(tài)產(chǎn)生土塊的初始位置,其表達(dá)式為
P=P1+Vxkx+VzRandom+Vyky
(3)
式中:P1為地形位置;Vx,Vy,Vz為分別為x,y,z方向的單位矢量;kx,ky為x,y方向系數(shù);Random為隨機(jī)量.
土塊進(jìn)行實(shí)例化時(shí),預(yù)先生成10余種不同形狀的土塊.土塊的大小、形狀及顏色先由3D Max預(yù)先處理好,并作為Unity 3D的預(yù)設(shè)載入到引擎中.當(dāng)需要實(shí)例化土塊時(shí),隨機(jī)選擇一種作為這一時(shí)刻生成的土塊.與此同時(shí),還要為土塊添加剛體及球體碰撞器屬性,這樣就可利用Unity 3D自帶的物理引擎,實(shí)現(xiàn)對(duì)鏟刀中大量土塊進(jìn)行碰撞、翻滾運(yùn)動(dòng)的力學(xué)模擬.
在土塊動(dòng)態(tài)生成過程中,由于生成的土塊間距太小經(jīng)常會(huì)出現(xiàn)土塊發(fā)生劇烈彈跳的現(xiàn)象,致使仿真效果不理想,且物理引擎計(jì)算量太大,導(dǎo)致系統(tǒng)運(yùn)行較慢.
本系統(tǒng)通過對(duì)物理引擎的二次開發(fā),很好地解決了這一問題.在仿真過程中實(shí)時(shí)監(jiān)測(cè)土塊運(yùn)動(dòng)的速度,當(dāng)某土塊速度大于預(yù)設(shè)速度時(shí)對(duì)其進(jìn)行干預(yù),將其速度重置,從而有效解決土塊在動(dòng)態(tài)生成時(shí)出現(xiàn)劇烈彈跳的問題,使土塊的運(yùn)動(dòng)比較平穩(wěn),增加了仿真的逼真性.當(dāng)鏟刀中土塊落到鏟刀外兩側(cè)的地形上時(shí),且土塊速度小于預(yù)設(shè)值,對(duì)土塊進(jìn)行銷毀處理,并使土塊所在的地形微微隆起.推土過程中鏟刀內(nèi)土塊運(yùn)動(dòng)示意圖如圖4左圖所示.
Unity 3D自帶一套物理引擎,能對(duì)運(yùn)動(dòng)車輛的6自由度進(jìn)行仿真.當(dāng)車輛在崎嶇不平的地形上運(yùn)動(dòng)時(shí),Unity 3D能較逼真地仿真車輛的運(yùn)動(dòng)姿態(tài).但使用這種方法存在一個(gè)缺陷,即消耗資源較大,尤其當(dāng)?shù)匦尉W(wǎng)格較密時(shí),大量網(wǎng)格都會(huì)與車輪進(jìn)行碰撞檢測(cè)計(jì)算,使資源消耗更大.由于本系統(tǒng)模擬土塊碰撞翻滾過程本身就會(huì)占用大量資源,另外模擬推土過程中三維地形動(dòng)態(tài)變化時(shí),需要用較密的網(wǎng)格來對(duì)地形進(jìn)行模擬,所必須對(duì)傳統(tǒng)的車體6自由度運(yùn)動(dòng)建模仿真方法進(jìn)行優(yōu)化.
首先用一塊扁平矩形盒來代替推土機(jī)車體,3個(gè)半徑一致的球體來代替履帶內(nèi)的車輪,兩側(cè)共6個(gè)球體,并將矩形盒置于6個(gè)球體之上.使6個(gè)球體只作上下運(yùn)動(dòng),扁平矩形盒只作空間旋轉(zhuǎn),當(dāng)一些球高度發(fā)生變動(dòng)時(shí),會(huì)使矩形盒的俯仰角、滾轉(zhuǎn)角發(fā)生變化,以上就是車體6自由度運(yùn)動(dòng)建模的原理.當(dāng)推土機(jī)在運(yùn)動(dòng)過程中,實(shí)時(shí)采集履帶兩側(cè)6個(gè)車輪所對(duì)應(yīng)的地形高度,并將這些車輪的高度分別賦值給6個(gè)球體.如果地形崎嶇不平,那么所對(duì)應(yīng)的6個(gè)球體的高度也是不同的,從而導(dǎo)致放置在球體上的矩形盒的姿態(tài)會(huì)隨球的高度不同而發(fā)生變化,那么當(dāng)前矩形盒的俯仰、滾轉(zhuǎn)角可近視等同于推土機(jī)的俯仰、滾轉(zhuǎn)角.用這種方法可以對(duì)車體的俯仰角、滾轉(zhuǎn)角2個(gè)自由度進(jìn)行模擬,另外4個(gè)自由度即x,y,z3個(gè)方向的位移可通過速度和時(shí)間的乘積求得,偏航角可通過角速度與時(shí)間的乘積求得.使用這種方式,每一幀只需要對(duì)6個(gè)球體與矩形盒的碰撞檢測(cè)進(jìn)行解算,大大降低了運(yùn)算量,而模擬逼真度基本沒有降低.圖5為簡化的推土機(jī)車體及模擬車體俯仰、滾轉(zhuǎn)角示意圖.
本文介紹了推土機(jī)模擬器的開發(fā)環(huán)境及總體設(shè)計(jì)方法,重點(diǎn)介紹了土塊運(yùn)動(dòng)、三維地形動(dòng)態(tài)變化及推土機(jī)車體6自由度運(yùn)動(dòng)仿真建模等多項(xiàng)關(guān)鍵技術(shù)的實(shí)現(xiàn)方法,實(shí)現(xiàn)了推土機(jī)在沙石、黏土等多種工況下進(jìn)行推土、松土、平土作業(yè)的整個(gè)仿真過程,所開發(fā)的模擬器具有運(yùn)動(dòng)流暢、模擬逼真、沉浸感強(qiáng)等特點(diǎn).推土機(jī)模擬器可滿足工程機(jī)械制造商新產(chǎn)品宣傳、功能展示等需要;也可為受訓(xùn)人員提供一個(gè)反復(fù)熟悉操作的逼真模擬訓(xùn)練環(huán)境,提高訓(xùn)練效率和訓(xùn)練安全性,降低訓(xùn)練成本,具有十分顯著的經(jīng)濟(jì)效應(yīng).
圖5 模擬車體俯仰、滾轉(zhuǎn)角示意圖Fig.5 Simulated body pitch,roll angle diagram
[1] 汪璇.虛擬駕駛系統(tǒng)運(yùn)動(dòng)仿真及控制的設(shè)計(jì)與實(shí)現(xiàn)[J].湖北工業(yè)大學(xué)學(xué)報(bào),2007,22(3):71-74.
WANG X.Design and implementation of simulation and control of virtual driving system[J].Journal of Hubei University of Technology,2007,22(3):71-74.
[2] 于俊發(fā).某型坦克無姿態(tài)仿真駕駛模擬器的研制[D].大連:大連理工大學(xué),2006.
YU J F.The development of a simulation driving simulator for a type of tank without attitude[D].Dalian:Dalian University of Technology,2006.
[3] 蔣充劍,韓海良,翟永翠,等.履帶式推土機(jī)工作過程中三維地形動(dòng)態(tài)變化仿真:中國,ZL201310634125.5[P].2013-12-01.
JIANG C J,HAN H L,ZHAI Y C,et al.Dynamic simulation of three-dimensional terrain in the working process of crawler bulldozer:China,ZL201310634125.5[P].2013-12-01.
[4] 韓海良,翟永翠,蔣充劍,等.一種推土鏟內(nèi)動(dòng)態(tài)土壤仿真建模方法:中國,ZL201310627537.6[P].2013-12-01.
HAN H L,ZHAI Y C,JIANG C J,et al.A simulation modeling method of dynamic soil within the plow:China,ZL201310627537.6[P].2013-12-01.
[5] 黃旭,鞏秀鋼.模擬駕駛系統(tǒng)中動(dòng)力學(xué)模型的研究與仿真[J].山東理工大學(xué)學(xué)報(bào),2008,22(2):80-83.
HUANG X,GONG X G.Study and emulation of dynamic models in automobile driving simulator technology[J].Journal of Shandong University of Technology,2008,22(2):80-83.
[6] 翟永翠,韓海良,蔣充劍,等.履帶車輛6自由度仿真方法:中國,ZL201310642242.6[P].2013-12-01.
ZHAI Y C,HAN H L,JIANG C J,et al.Six degrees of freedom simulation method of tracked vehicle:China,ZL201310642242.6[P].2013-12-01.