機械裝備虛擬現實設計及實例分析 課件 第5章 裝備運動仿真關鍵技術_第1頁
機械裝備虛擬現實設計及實例分析 課件 第5章 裝備運動仿真關鍵技術_第2頁
機械裝備虛擬現實設計及實例分析 課件 第5章 裝備運動仿真關鍵技術_第3頁
機械裝備虛擬現實設計及實例分析 課件 第5章 裝備運動仿真關鍵技術_第4頁
機械裝備虛擬現實設計及實例分析 課件 第5章 裝備運動仿真關鍵技術_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第五章裝備運動仿真關鍵技術戰略性新興領域教材建設團隊-重型高端裝備制造目錄CONTENTS5.1 運動仿真總體思路5.2 父子關系5.3 液壓支架運動仿真5.4 采煤機運動仿真5.5 刮板輸送機運動仿真5.1運動仿真總體思路戰略性新興領域教材建設團隊-重型高端裝備制造1虛擬現實環境中默認不具備物理意義上的運動約束,要想實現運動仿真首先就要對裝備模型進行姿態解析。根據其工作運動原理,分析并揭示其運動過程中的不同部件之間角度、長度等一系列參數變化的規律。以此運動解析為基礎,再編寫控制腳本。父子關系構建姿態解析編寫腳本目錄CONTENTS5.1 運動仿真總體思路5.2父子關系5.2.1 父子關系的功能5.2.2 父子關系的構建方法5.2.3 父子關系的脫離5.3 液壓支架運動仿真5.4 采煤機運動仿真5.5 刮板輸送機運動仿真5.2父子關系戰略性新興領域教材建設團隊-重型高端裝備制造1 Unity3d中、父子關系是層級(Hierarehy)視圖中的基本組織結構。它是指一個對象附屬于另一個對象,而且一個父物體可以附帶多個子物體。

父子關系在Unity3d中的作用主要體現在變換繼承、層級組織、局部坐標系、批量操作等方面。合理利用父子關系可以使得機械裝備的虛擬仿真更加結構化、易于管理和高效。5.2.1父子關系的功能5.2.1父子關系的功能戰略性新興領域教材建設團隊-重型高端裝備制造1(1)繼承性

在父子關系中,子對象會繼承父對象的變換(Transform)屬性,包括移動、旋轉和縮放。5.2父子關系5.2.1父子關系的功能戰略性新興領域教材建設團隊-重型高端裝備制造1(2)局部獨立性

子對象的移動和旋轉僅僅是相對于其父對象的局部坐標系。(3)層級性。

可以對多個物體進行批量化管理和操作。5.2父子關系戰略性新興領域教材建設團隊-重型高端裝備制造1Transform.Position(全局)和Transform.localPosition(局部)全局坐標系全局坐標系是Unity場景的絕對坐標系統,所有對象都基于這個坐標系統進行放置。在全局坐標系中,(0,0,0)點是整個場景的中心點,也叫做“世界原點”。全局坐標系中的軸始終是固定的,X軸向右,Y軸向上,Z軸向前(默認情況下)。如果你獲取物體的transform.Position,你獲得的是該物體相對于全局坐標系的絕對位置局部坐標系局部坐標系是相對于某個對象自身的坐標系統。每個物體在Unity中都有自己的局部坐標系。局部坐標系的(0,0,0)點是物體的中心點,或者說是物體的“本地原點”。局部坐標系的軸是相對物體的方向,它會隨著物體的旋轉而改變方向。如果你操作物體的transform.localPosition,是在更改它在局部坐標系中的位置。5.2.1父子關系的功能5.2父子關系5.2.2父子關系的構建戰略性新興領域教材建設團隊-重型高端裝備制造1A.transform.SetParent(B)

//將B設置為A的父物體(1)編輯器構建:在Hierarchy層級視圖中,鼠標左鍵長按物體A,拖動至B松開鼠標,則使B成為A的父物體。(2)代碼實現:聲明變量,并在Start函數中調用方法實現父子關系的初次綁定。5.2父子關系5.2.2父子關系的構建戰略性新興領域教材建設團隊-重型高端裝備制造1(1)編輯器構建:在Hierarchy層級視圖中,鼠標左鍵長按物體A,拖動至B松開鼠標,則使B成為A的父物體。(2)代碼實現:聲明變量,并在Start函數中調用方法實現父子關系的初次綁定。5.2父子關系5.2.3父子關系的脫離戰略性新興領域教材建設團隊-重型高端裝備制造1(1)編輯器脫離:在Hierarchy層級視圖中,鼠標左鍵長按物體B層級下的物體A,長按拖動其脫離物體B的子層級,實現父子關系的斷開。(2)代碼實現:聲明變量,調用特定方法實現父子關系的脫離。A.transform.SetParent(null)

//將A的父物體設為空B.DetachChildren();//解除B的所有子物體5.2父子關系5.2.3父子關系的脫離戰略性新興領域教材建設團隊-重型高端裝備制造1(1)編輯器脫離:在Hierarchy層級視圖中,鼠標左鍵長按物體B層級下的物體A,長按拖動其脫離物體B的子層級,實現父子關系的斷開。(2)代碼實現:聲明變量,調用特定方法實現父子關系的脫離。5.2父子關系目錄CONTENTS5.1 運動仿真總體思路5.2父子關系5.3 液壓支架運動仿真5.3.1 液壓支架父子關系構建5.3.2 液壓支架姿態解析5.3.3 液壓支架腳本邏輯5.4 采煤機運動仿真5.5 刮板輸送機運動仿真5.3液壓支架運動仿真戰略性新興領域教材建設團隊-重型高端裝備制造1虛擬現實環境中默認不具備物理意義上的運動約束,要想實現運動仿真首先就要對裝備模型進行姿態解析。根據其工作運動原理,分析并揭示其運動過程中的不同部件之間角度、長度等一系列參數變化的規律。以此運動解析為基礎,再編寫控制腳本。父子關系構建姿態解析編寫腳本戰略性新興領域教材建設團隊-重型高端裝備制造15.3.1液壓支架父子關系構建5.3液壓支架運動仿真后連桿前連桿掩護梁護幫板底座頂梁伸縮梁前立柱后立柱戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真5.3.1液壓支架父子關系構建底座部分父子關系連桿部分父子關系立柱部分父子關系戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真5.3.1液壓支架父子關系構建實現方式:①通過從Hierarchy窗口直接長按物體拖動到另一物體上實現;②通過腳本編寫C#代碼,調用Unity引擎中的構建父子關系的特定方法實現創建腳本各部件Transform的聲明//聲明底座publicTransformdizuo;//聲明前連桿一脈publicTransformxiaozhou_qianliangan;publicTransformqianliangan;//聲明后連桿一脈publicTransformxiaozhou_houliangan;publicTransformhouliangan;publicTransformxiaozhou_yanhuliang;publicTransformYanHuLiang;publicTransformyanhuliang_CeHu;publicTransformxiaozhou_qianlianganshang;publicTransformxiaozhou_dingliang;publicTransformDingLiang;publicTransformxiaozhou_houlizhushang;publicTransformxiaozhou_qianlizhushang;……5.3.1液壓支架父子關系構建戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真publicTransformdizuo;//定義底座transform組件變量publicTransformxiaozhou—houlianganxia;//定義后連桿銷軸transform組件變量publicTransformxiaozhou—qianlianganxia;//定義前連桿銷軸transform組件變量Xiaozhou-qianlianganxia=dizuo.transform.GetChild(0).transform;//前連桿銷軸作為液壓支架底座的第一個子物體Xiaozhou-houlianganxia=dizuo.transform.GetChild(1).transform;//后連桿銷軸作為液壓支架底座的第二個子物體構建父子關系的語句戰略性新興領域教材建設團隊-重型高端裝備制造1液壓支架的姿態解析主要為液壓支架四連桿機構的解析、四連桿機構與頂梁的協同解析、四連桿機構和頂梁與前后立柱之間的協同解析。5.3.2液壓支架的姿態解析5.3液壓支架運動仿真符號意義θ后連桿傾角δ頂梁傾角Φ前后連桿連線與水平面夾角β前連桿傾角γ掩護梁傾角η前立柱與底座夾角ε后立柱與底座夾角戰略性新興領域教材建設團隊-重型高端裝備制造15.3.2液壓支架的姿態解析

已知L1、L2、L3、L4、L5、θ和φ等結構參數,設求β和γ

5.3液壓支架運動仿真5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(1)局部坐標系與全局坐標系的建立

5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(2)液壓支架各動作實現建立液壓支架的狀態State推溜(0)、收護幫板(1)、降柱(2)、移架(3)、升柱(4)、伸護幫板(5)。運用switch…case…語句來實現幾個不同狀態情況下隨著采煤機位置的變化而自動切換各自的運行狀態。m、n和q分別為收護幫工藝、移架工藝和推溜工藝的參數。5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(3)液壓支架速度求解

5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(3)液壓支架速度求解Unity可以對每秒刷新的幀數進行設置,在Edit—ProjectSetting—Quality的“VSyncCount”選項改為“Don’tSync”,然后添加修改幀數代碼:Application.targetFrameRate=targetFrameRate;//targetFrameRate=10表示程序一秒執行10幀,對應的Update函數執行10次。假設升柱過程中,頂梁上升200mm,根據前面位姿解算結果,對應的后立柱上升201.834mm,計算可得,升柱過程時間為14.46s,所以每幀增量為201.834/(14.46×10)=1.39mm。后立柱傾角由86.8度變到86.6度,然后通過if語句循環實現油缸伸長:if(DiZuoHouLiZhuShenChang<201.834f){

DiZuoHouLiZhuShenChang+=1.39f;}5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(5)移架與推溜過程的父子關系變換由于頂梁作為掩護梁的子物體,會隨著掩護梁的轉動而轉動,因此應該對頂梁在掩護梁轉動方向的反方向進行相應的角度補償,保證頂梁姿態正確。頂梁傾角由頂梁傾角變量獨自驅動,并在掩護梁動作過程中消除掩護梁角度變化影響,由如下代碼實現:YanHuDingLiangXiaoZhou.localRotation=newQuaternion(0,0,Mathf.Sin((DingLiangRotAngle-YanHuLiangQing

JiaoAngle)*Mathf.PI/360),Mathf.Cos((DingLiangRotAngle-YanHuLiangQing

JiaoAngle)*Mathf.PI/360));在推溜完畢后,必須將推移油缸桿和推移油缸體父與子關系暫時分離,用以下代碼實現:TuiYiYouGangTi.transform.DetachChildren();在移架完畢后,再次將推移桿的父物體設置為推移油缸體,并再次跟隨父物體一起運動:TuiYiYouGangGan.transform.parent=TuiYiYouGangTi;(4)頂梁抵消掩護梁轉動角度5.3.3液壓支架腳本邏輯戰略性新興領域教材建設團隊-重型高端裝備制造15.3液壓支架運動仿真(6)實際工況下的液壓支架姿態聲明Transform組件聲明Float類型計算變量(7)完整的代碼邏輯定義采煤機的俯仰角、橫滾角和偏航角為綜采工作面的俯仰角、橫滾角和偏航角。這三個角度的相互變化顯示液壓支架實際工作過程中的變化,進而也顯示綜采工作面地形條件發生的變化,用以下代碼實現:transform.eulerAngles=newVector3(RollAngle,YawAngle,PitchAngle);調用動作方法,執行判斷邏輯聲明變量區Start函數FixedUpdate函數變量初始化賦值、父子關系構建動作方法聲明區編寫動作方法執行邏輯目錄CONTENTS5.1 運動仿真總體思路5.2父子關系5.3 液壓支架運動仿真5.4

采煤機運動仿真5.4.1 采煤機父子關系構建5.4.2 采煤機姿態解析5.4.3 采煤機腳本邏輯5.5 刮板輸送機運動仿真戰略性新興領域教材建設團隊-重型高端裝備制造15.4.1采煤機父子關系構建5.4采煤機運動仿真publicTransformJiShen;//定義采煤機機身變量YouJiShen=CaiMeiJi.transform.GetChild(0).transform;//右機身是采煤機的第一個子物體戰略性新興領域教材建設團隊-重型高端裝備制造15.4.2采煤機姿態解析采煤機姿態示意圖5.4采煤機運動仿真

戰略性新興領域教材建設團隊-重型高端裝備制造15.4.3采煤機腳本邏輯5.4采煤機運動仿真采煤機主要動作有機身的變速移動,搖臂的旋轉,調高油缸的伸長收縮與旋轉,滾筒的旋轉。if(Youlong<699f){YouYaoBiLianDong(YouRotAngle);Youlong+=Youinc;}publicvoidYouYaoBiLianDong(floatYouRotAngle){YouYouGangAngle=Mathf.Acos((1693f*1693f+1630f*1630f-985f*985f)/(2f*1693f*1630f))-Mathf.Acos(((1693f-Youlong)*(1693f-Youlong)+1630f*1630f–985f*985f)/(2f*(1693f-Youlong)*1630f));//右調高油缸的轉動角度youyaobixiaozhou.localRotation=newQuaternion(0,0,Mathf.Sin(-0.5f*YouRotAngle),Mathf.Cos(-0.5f*YouRotAngle));//右搖臂銷軸的轉動角度youtuiyiyougangxiaozhou.localRotation=newQuaternion(0,0,Mathf.Sin(0.5f*(-YouYouGangAngle)),Mathf.Cos(0.5f*(-YouYouGangAngle)));//右調高油缸銷軸的轉動角度youtuigan.localPosition=newVector3(-13f+Youlong/100f,0f,0f);//控制右調高油缸推桿伸縮量}采煤機搖臂動作函數聲明采煤機搖臂動作函數調用目錄CONTENTS5.1 運動仿真總體思路5.2父子關系5.3 液壓支架運動仿真5.4采煤機運動仿真5.5

刮板輸送機運動仿真5.4.1 刮板機父子關系構建5.4.2 刮板機姿態解析5.4.3 刮板機腳本邏輯5.5.1刮板機父子關系構建戰略性新興領域教材建設團隊-重型高端裝備制造15.5刮板輸送機運動仿真publicTransformJiWei;//定義刮板機機尾變量JiWeiXiaoZhou1=CaiMeiJi.transform.GetChild(0).transform;//機尾銷軸1是刮板機的第一個子物體戰略性新興領域教材建設團隊-重型高端裝備制造15.5.2刮板機姿態解析5.5刮板輸送機運動仿真

戰略性新興領域教材建設團隊-重型高端裝備制造15.5.3刮板機腳本邏輯5.5刮板輸送機運動仿真對場景中的中部槽編號,并給每一節中部槽添加銷軸。刮板輸送機彎曲過程中,各節中部槽繞銷軸有微小轉動,為每個銷軸定義變量數組,通過對銷軸數組變量的操作,實現刮板輸送機的彎曲。在Gbj.cs腳本中對銷軸變量進行賦值,編寫QianDuan()、HouDuan()函數,控制刮板輸送機的前9節中部槽及9節以后的中部槽彎曲。虛擬刮板輸送機彎曲段形成:聲明函數QianDuan()用于控制刮板輸送機前9節中部槽推溜,形成第一個彎曲段。彎曲過程如下:液壓支架1推溜,推動中部槽1前進1/9個采煤機截深,與之相連的中部槽2前銷軸與中部槽1后銷軸銷軸坐標一致,同時,中部槽2繞父物體旋轉;液壓支架2推溜時,中部槽1繼續向前推溜1/9個采煤機截深,中部槽2與中部槽3的連接處銷軸坐標一致,同時,中部槽3繞父物體旋轉;以此類推,直到9個中部槽形成“S”彎曲段。戰略性新興領域教材建設團隊-重型高端裝備制造15.5.3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論