• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      動車組受電弓虛擬拆裝培訓(xùn)系統(tǒng)開發(fā)研究*

      2018-09-19 08:09:48,,,,,,
      現(xiàn)代機(jī)械 2018年4期
      關(guān)鍵詞:電弓鼠標(biāo)動車組

      ,,,,,,

      (大連交通大學(xué)交通運(yùn)輸工程學(xué)院,遼寧大連116028)

      0引言

      動車組作為我國鐵路運(yùn)輸?shù)闹匾M成部分,已經(jīng)成為新時(shí)期我國鐵路建設(shè)的關(guān)鍵。為保障動車組車輛的可靠運(yùn)行,需要定期對動車組車輛進(jìn)行檢修[1]。受電弓作為動車組運(yùn)行安全的重要設(shè)備之一,其檢修人員隨著動車組產(chǎn)量的增加也在不斷增多,在檢修培訓(xùn)過程中如果采用物理樣機(jī),不但成本巨大,而且會造成人力物力的浪費(fèi)[2]。虛擬現(xiàn)實(shí)技術(shù)(virtual reality,VR)是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)仿真系統(tǒng),它利用計(jì)算機(jī)生成多源信息融合的、交互式的、逼真的模擬環(huán)境,給用戶一種身臨其境的感覺,增強(qiáng)用戶的沉浸感和體驗(yàn)感[3]。

      虛擬培訓(xùn)作為虛擬現(xiàn)實(shí)技術(shù)的一個重要分支,并利用虛擬現(xiàn)實(shí)技術(shù)構(gòu)建三維虛擬環(huán)境,使學(xué)員更好地完成知識的學(xué)習(xí)和技能的提升,從而解決傳統(tǒng)的集中培訓(xùn)教學(xué)中的一些難題[4]。如在高速動車組中,受電弓作為動車組車輛中的復(fù)雜機(jī)械裝備,對于其拆裝培訓(xùn)的學(xué)習(xí)成本較高,反復(fù)拆裝會導(dǎo)致其功能的減弱,并且在實(shí)際培訓(xùn)過程中如果操作不當(dāng),會造成受電弓零部件的損壞,并且培訓(xùn)過程安全性難以保證,容易發(fā)生安全事故。虛擬培訓(xùn)能夠擺脫人們對于物理樣機(jī)的依賴,受訓(xùn)人員可以通過虛擬現(xiàn)實(shí)的培訓(xùn)場景反復(fù)進(jìn)行拆裝練習(xí),實(shí)現(xiàn)良好的人機(jī)協(xié)同,快速掌握產(chǎn)品的內(nèi)部結(jié)構(gòu)、充分了解實(shí)際運(yùn)行過程中的工作狀態(tài)。該系統(tǒng)不受時(shí)間地域等條件的限制,很好地解決了受電弓拆裝訓(xùn)練場地限制的難題,并且實(shí)際交互性強(qiáng),可用于企業(yè)技術(shù)培訓(xùn)和高校教學(xué)培訓(xùn)[5]。

      1 虛擬現(xiàn)實(shí)引擎Unity3D概述

      本文所應(yīng)用的Unity3D是一款全面的游戲開發(fā)軟件,界面簡潔、功能強(qiáng)大,玩家能夠在此平臺上輕松創(chuàng)建2D、3D游戲的動畫及建筑可視化等互動內(nèi)容,同時(shí)可以將多種軟件平臺提供的資源整合于一體。支持C#,JavaScript和Boo Script等多種開發(fā)語言,用戶可自由選擇,提高了工作效率;實(shí)時(shí)的光照渲染和光影烘焙技術(shù)、聲音、圖像等多種功能的添加,能夠滿足系統(tǒng)開發(fā)過程中對于游戲品質(zhì)的要求;強(qiáng)大的跨平臺特性,使得開發(fā)的游戲可以在Windows、Mac、Android、IOS、VR設(shè)備等20多重平臺上發(fā)布[6]。

      2 系統(tǒng)整體框架設(shè)計(jì)

      動車組受電弓虛擬拆裝培訓(xùn)系統(tǒng)的目的就是開發(fā)出適合動車組檢修培訓(xùn)的通用軟件架構(gòu)和平臺。采用目前流行的軟件開發(fā)思想——面向?qū)ο缶幊谭绞?,完成虛擬培訓(xùn)系統(tǒng)和功能模塊構(gòu)建[7],系統(tǒng)總體框架如圖1,從下向上依次為系統(tǒng)數(shù)據(jù)層、系統(tǒng)開發(fā)層、系統(tǒng)功能層和用戶界面層。

      圖1 系統(tǒng)總體框架

      對系統(tǒng)總體框架作如下概述:

      系統(tǒng)數(shù)據(jù)層。主要完成用戶信息、受電弓結(jié)構(gòu)和尺寸參數(shù)以及檢修工藝資料等的數(shù)據(jù)收集,是整個系統(tǒng)的基礎(chǔ)部分。

      系統(tǒng)開發(fā)層。是系統(tǒng)的核心層,通過三維模型建立、虛擬場景搭建、程序軟件開發(fā)、數(shù)據(jù)庫的管理和維護(hù)來實(shí)現(xiàn)系統(tǒng)的主要功能。

      系統(tǒng)功能層。主要包括理論學(xué)習(xí)、虛擬拆卸、虛擬裝配、練習(xí)操作、考核操作等功能,由用戶界面層展現(xiàn)。

      用戶界面層。把整個系統(tǒng)的功能呈現(xiàn)給用戶,用戶根據(jù)界面的指引完成受電弓的培訓(xùn)任務(wù),逐步提高工作技能。用戶界面層主要包括用戶登錄界面、系統(tǒng)主界面和受電弓虛擬拆裝界面。

      3 系統(tǒng)開發(fā)流程

      受電弓虛擬培訓(xùn)系統(tǒng)基于Unity3D開發(fā)平臺,結(jié)合前期素材的收集和整理,利用三維建模軟件3DsMax創(chuàng)建標(biāo)準(zhǔn)受電弓模型、程序語言開發(fā)交互腳本以及通過NGUI實(shí)現(xiàn)界面交互。數(shù)據(jù)庫技術(shù)則完成受電弓內(nèi)部結(jié)構(gòu)、工作原理、拆裝培訓(xùn)、評估考核、個人信息等模塊信息的整理和存儲。

      3.1 三維模型建立及優(yōu)化

      圖2 受電弓模型

      根據(jù)要培訓(xùn)的受電弓模型,收集其對應(yīng)的結(jié)構(gòu)資料及其尺寸參數(shù),利用3DsMax進(jìn)行三維建模。在建模時(shí),參考前期收集到的CAD圖紙,并保證系統(tǒng)中模型的尺寸和規(guī)格相同[8]。由于受電弓零部件較多,本文采用分層建模的方法,將受電弓分為弓頭組裝、上臂組裝、上導(dǎo)桿組裝、下臂組裝、下導(dǎo)桿組裝、底架組裝、弓裝配組裝和升弓裝置組裝分別進(jìn)行建模。每一層中把需要同時(shí)拆裝的零部件組合在一起。同時(shí)為了保證后期培訓(xùn)平臺的流暢性,需要對模型面數(shù)進(jìn)行優(yōu)化,將看不到的點(diǎn)、線、面進(jìn)行刪除,進(jìn)而降低受電弓模型在Unity3D場景中所占資源度。整個模型完成之后,應(yīng)用V-Ray渲染器對其進(jìn)行貼圖渲染以及模型細(xì)節(jié)的優(yōu)化處理,最后保存為.FBX格式文件導(dǎo)入到Unity3D中。如圖2所示創(chuàng)建完成的受電弓模型。

      3.2 場景搭建

      導(dǎo)入到Unity3D場景中的受電弓模型可能會出現(xiàn)材質(zhì)失效、坐標(biāo)錯誤等問題,為了達(dá)到真實(shí)的拆裝工藝效果,需要對場景進(jìn)行一系列設(shè)置。例如:通過鼠標(biāo)的拖拽調(diào)整模型坐標(biāo)和相機(jī)位置、導(dǎo)入所需的資源文件、設(shè)置場景燈光等。通過交互腳本的編寫完成對虛擬場景的控制,例如:編寫MouseView.cs腳本實(shí)現(xiàn)鼠標(biāo)滾輪對零部件的縮放和旋轉(zhuǎn)移動功能,并將其掛載到主攝像機(jī)上便于用戶多角度查看模型。

      3.3 數(shù)據(jù)庫設(shè)計(jì)

      數(shù)據(jù)庫設(shè)計(jì)在已有的數(shù)據(jù)庫管理系統(tǒng)基礎(chǔ)上開發(fā)新的數(shù)據(jù)庫結(jié)構(gòu)。根據(jù)已有的應(yīng)用需求和應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式有效的存儲和管理數(shù)據(jù)。滿足用戶和開發(fā)者的使用需求。良好的數(shù)據(jù)庫結(jié)構(gòu)有利于整個系統(tǒng)的開發(fā)和維護(hù),本系統(tǒng)使用SQLServer2012對數(shù)據(jù)庫進(jìn)行開發(fā)設(shè)計(jì),存儲和管理其工作原理、拆裝順序、個人信息和考試題目等數(shù)據(jù),通過C#編寫腳本實(shí)現(xiàn)與Unity3D端數(shù)據(jù)傳輸?shù)墓δ?。例如:在?shù)據(jù)庫中每個零件都有對應(yīng)的ID,為了能夠快速提取模型信息并將其顯示在虛擬場景中,C#將數(shù)據(jù)庫以數(shù)組的形式存儲。

      4 關(guān)鍵技術(shù)研究

      4.1 碰撞檢測

      碰撞檢測是模擬現(xiàn)實(shí)環(huán)境中物體之間是否發(fā)生接觸,以及接觸之后的本能反應(yīng)。例如,當(dāng)人伸手觸碰墻壁時(shí),如果沒有設(shè)計(jì)碰撞檢測,則手會透過墻壁發(fā)生穿插現(xiàn)象。在現(xiàn)實(shí)中,當(dāng)手觸碰到墻壁時(shí)應(yīng)當(dāng)停止前進(jìn),改變運(yùn)動方向,而不是穿過墻壁。所以,需要對手部及墻壁添加合適的碰撞器[9]。在Unity3D中常用的碰撞器主要有:盒碰撞器、球形碰撞器、膠囊碰撞器和網(wǎng)絡(luò)碰撞器。比如,對手部和墻壁分別添加一個盒碰撞器,一旦兩個物體相互接觸則會產(chǎn)生碰撞檢測,阻止物體相向運(yùn)動。本系統(tǒng)針對不同的零件模型添加不同的碰撞器如圖3所示。

      圖3 不同碰撞器

      4.2 三維幾何變換

      在三維虛擬場景中,受電弓模型的移動、旋轉(zhuǎn)和縮放等交互操作,都是通過三維幾何變換實(shí)現(xiàn)的,這種操作的變換運(yùn)算可以用一個4×4的矩陣來表示。三維場景當(dāng)中的幾何變換實(shí)質(zhì)上是在二維變換的基礎(chǔ)上增加了空間坐標(biāo)Z軸組成的。在三維系統(tǒng)中,對實(shí)體做平移變換的基本原則是在實(shí)體的三維坐標(biāo)軸方向通過移動一定距離的三維變換向量來對實(shí)體做變換;對虛擬場景進(jìn)行縮放變換則是通過縮放因子實(shí)現(xiàn);而對虛擬場景的旋轉(zhuǎn)變換則是通過利用給定軸的方向和旋轉(zhuǎn)角度建立旋轉(zhuǎn)矩陣。以下是對這三種幾何變換做運(yùn)算,實(shí)體的集合變換用矩陣T3表示。

      4.3 拆裝動畫功能的實(shí)現(xiàn)

      利用Unity3D開發(fā)引擎中NGUI的Tween功能來完成受電弓拆裝動畫的的設(shè)計(jì),Tween功能窗口下設(shè)有包括顏色、位置、寬度、高度、透明度、大小的動畫類型[11],由Tween Position功能實(shí)現(xiàn)受電弓零部件的運(yùn)動,將零部件運(yùn)動前后的位置坐標(biāo)及其運(yùn)動軌跡通過C#腳本語言編寫完成,將受電弓零件的運(yùn)動軌跡設(shè)置為重力加速度軌跡,用來模擬真實(shí)的受電弓拆裝效果,腳本中通過調(diào)整Gameobject.active實(shí)現(xiàn)零件在完成運(yùn)動軌跡之后的消失狀態(tài)。此時(shí)則可以模擬出受電弓零件在拆裝過程中的動畫。

      4.4 交互界面設(shè)計(jì)的實(shí)現(xiàn)

      系統(tǒng)采用Unity自帶的NGUI插件進(jìn)行界面設(shè)計(jì),該系統(tǒng)主界面由受電弓基本結(jié)構(gòu)、工作原理、拆裝工藝、檢修工藝四個模塊組成,培訓(xùn)人員可按照需求分別進(jìn)人相應(yīng)模塊學(xué)習(xí)。本文培訓(xùn)系統(tǒng)主要針對受電弓弓頭拆裝模塊,用戶參考界面上方文字提示,通過鼠標(biāo)、鍵盤控制零件運(yùn)動完成拆裝過程。以DSA380受電弓弓頭拆裝交互界面為例。

      4.4.1 拆卸過程的實(shí)現(xiàn)

      拆卸過程根據(jù)受電弓真實(shí)拆卸工藝流程、工具的選擇以及所需要注意的事項(xiàng)等實(shí)時(shí)模擬拆卸過程。圖4為弓頭拆卸交互界面。

      圖4 弓頭拆卸交互界面

      拆卸過程如下:

      1)學(xué)員進(jìn)入虛擬拆卸場景后,可以根據(jù)場景中的操作提示面板,使用鼠標(biāo)移動旋轉(zhuǎn)至所要拆卸零件的物體附近,鼠標(biāo)放置到零件上方通過零件外發(fā)光的顏色判斷該零件是否可以被拆卸。

      2)當(dāng)零件的外發(fā)光為綠色時(shí),需要在場景界面下方選擇正確的拆卸工具,包括:棘輪扳手,套筒扳手或不使用扳手等選項(xiàng),完成該零件的拆裝操作。

      3)選擇工具后,移動鼠標(biāo)至需要拆卸的位置點(diǎn)擊該零部件,若選擇的工具正確,則可以進(jìn)行拆卸該零件,播放該零件的拆卸動畫。若某部件的所包含的零件都拆解完成后,該部件會自動上一層的拆卸。

      實(shí)現(xiàn)其拆卸功能的核心代碼如下:

      {

      case "0"://零件已經(jīng)不可被拆卸

      Text_Title.text = "零件已經(jīng)不可被拆卸";

      Debug.Log("零件已經(jīng)不可被拆卸");

      break;

      case "1"://零件可以被拆卸

      if(useToolName == selectToolName)//選擇工具是否正確,如果正確

      {

      PlayAnim(GO);

      GO.GetComponent().partInfo.PartState = "0";

      StartCoroutine(StartScecondAnim(AnimTime));

      Text_Title.text = "工具選擇正確";

      Debug.Log("工具選擇正確");

      }

      else

      {

      Debug.Log("工具選擇錯誤");

      Text_Title.text = "工具選擇錯誤";

      }

      break;

      case "2"://零件目前不可被拆卸

      Debug.Log("請先拆卸掉該部件上剩余部分的螺栓");

      Text_Title.text = "請先拆卸掉該部件上剩余部分的螺栓";

      break;

      }

      4.4.2 裝配過程的實(shí)現(xiàn)

      裝配過程依照規(guī)劃好的裝配序列,選擇正確的安裝工具對零部件實(shí)現(xiàn)有序裝配,直到受電弓的全部零部件安裝完成,提示裝配結(jié)束。圖5弓頭裝配交互界面。

      圖5 弓頭裝配交互界面

      裝配過程如下:

      1)學(xué)員進(jìn)入受電弓虛擬裝配場景后,界面下方會有受電弓各部分零部件的選擇面板,通過鼠標(biāo)點(diǎn)擊各部分的零件后,所選擇的零部件會在場景中出現(xiàn),并使用鼠標(biāo)可以進(jìn)行拖動和旋轉(zhuǎn)瀏覽查看。

      2)通過再次選擇下方零部件選擇面板,在三維場景中進(jìn)行實(shí)例化顯示,通過鼠標(biāo)的拖動,移動至所要裝配的位置進(jìn)行碰觸,若裝配正確,拖動的零件會出現(xiàn)綠色邊緣發(fā)光效果,松開鼠標(biāo)后會播放裝配動畫;若裝配錯誤,拖動的零部件會出現(xiàn)紅色邊緣發(fā)光的效果,并且松開鼠標(biāo)零件不會進(jìn)行裝配。

      3)按照2)的裝配方式,將零件選擇面板中的所有零部件安裝至正確的位置,系統(tǒng)會自動提示裝配完成。根據(jù)學(xué)員完成裝配過程所用的時(shí)間和裝配中錯誤的次數(shù)等參數(shù),系統(tǒng)會對本次的裝配進(jìn)行評分,并保存在學(xué)員的數(shù)據(jù)庫中,便于以后查看和統(tǒng)計(jì)分析。

      實(shí)現(xiàn)其裝配功能的部分核心代碼如下:

      {

      case "0"://零件已經(jīng)不可被拆卸

      Text_Title.text = "零件已經(jīng)不可被拆卸";

      Debug.Log("零件已經(jīng)不可被拆卸");

      break;

      case "1"://零件可以被拆卸

      if( useToolName == selectToolName )//選擇工具是否正確,如果正確

      {

      PlayAnim(GO);

      GO.GetComponent().partInfo.PartState = "0";

      StartCoroutine(StartScecondAnim(AnimTime));

      Text_Title.text = "工具選擇正確";

      Debug.Log("工具選擇正確");

      }

      else

      {

      Debug.Log("工具選擇錯誤");

      Text_Title.text = "工具選擇錯誤";

      }

      break;

      case "2"://零件目前不可被拆卸

      Debug.Log("請先拆卸掉該部件上剩余部分的螺栓");

      Text_Title.text = "請先拆卸掉該部件上剩余部分的螺栓";

      break;

      }

      5 結(jié)束語

      本系統(tǒng)結(jié)合虛擬現(xiàn)實(shí)技術(shù)和虛擬培訓(xùn)技術(shù),以Unity3D為平臺進(jìn)行了受電弓虛擬拆裝相關(guān)技術(shù)的理論探討和開發(fā)實(shí)踐,通過合適碰撞器的添加解決了零件之間的穿插現(xiàn)象,利用NGUI的Tween功能完成受電弓拆裝動畫的設(shè)計(jì);創(chuàng)建的數(shù)據(jù)庫為用戶提供基本信息、結(jié)構(gòu)、工作原理、拆裝練習(xí)、評級考核等模塊的操作和學(xué)習(xí),提高了學(xué)習(xí)效率;完成的系統(tǒng)具有很好的三維交互功能,給培訓(xùn)人員一種真實(shí)感、沉浸感,同時(shí)該系統(tǒng)的研究為動車組受電弓制造生產(chǎn)、維修檢修等方面的研究起到了積極的推動作用,為傳統(tǒng)的培訓(xùn)模式提供了借鑒和參考。

      猜你喜歡
      電弓鼠標(biāo)動車組
      Progress in Neural NLP: Modeling, Learning, and Reasoning
      Engineering(2020年3期)2020-09-14 03:42:00
      “95后”動車組女司機(jī)的首個春運(yùn)
      海峽姐妹(2020年2期)2020-03-03 13:36:34
      動車組BTM帶內(nèi)干擾的排查與整治
      高速動車組用受電弓概述
      受電弓滑板異常磨耗分析
      動車組受電弓風(fēng)管故障分析及改進(jìn)措施
      CRH3型動車組輪對壓裝曲線研究
      高速鐵路動車組站內(nèi)對標(biāo)停車難的研究
      CRH2型動車組受電弓控制電路及常見故障分析與處理
      45歲的鼠標(biāo)
      锦州市| 徐汇区| 陆丰市| 武山县| 区。| 什邡市| 城固县| 渭南市| 潜江市| 新源县| 松江区| 莫力| 嘉义县| 宿松县| 密云县| 牟定县| 苍溪县| 邹平县| 宝山区| 新和县| 西华县| 定安县| 衡阳县| 霍林郭勒市| 霍邱县| 隆昌县| 隆安县| 临清市| 琼海市| 民勤县| 武乡县| 丘北县| 唐河县| 富锦市| 翁牛特旗| 崇文区| 察哈| 丽水市| 谢通门县| 会泽县| 通渭县|