国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

三維物體建模 - 移動機器人3D仿真軟件的設計

來源:微型機與應用2011年第4期 作者:劉潤丹, 王 華,2011年06月03日 11:50
[導讀] 2.2 三維物體建模 ODE物理引擎提供球體、盒子、膠囊、平面和圓柱等幾何體。在創(chuàng)建出一個幾何體后,其中心一般落在仿真環(huán)境坐標系的原點上。在對移動
2.2 三維物體建模

  ODE物理引擎提供球體、盒子、膠囊、平面和圓柱等幾何體。在創(chuàng)建出一個幾何體后,其中心一般落在仿真環(huán)境坐標系的原點上。在對移動機器人進行建模時,需要使用盒子和圓柱兩種幾何體,盒子需要指定3個參數(shù),即長、高、寬;對于圓柱而言,則需指定長度和半徑2個參數(shù)。在動力學世界中,以Geom代表物體幾何體,以Body代表虛擬場景中的對象。軟件可以通過調用ODE內部函數(shù)來檢測幾何體和對象的對應關系,也有函數(shù)用于檢測對象之間是否存在連接。下面以創(chuàng)建盒子物體為例,說明單個物體的建模方法。

  首先調用dBodyCreate函數(shù)創(chuàng)建出給定空間中的剛體對象,再調用dBodySetPosition和dBodySetRotation兩個函數(shù),調整該對象在空間中的位姿,接著調用dMassSetBoxTotal和dBodySetMass兩個函數(shù)設定該對象的質量屬性,最后調用dCreateBox函數(shù)創(chuàng)建相應尺寸的盒子幾何體,并調用dGeomSetBody函數(shù)將該幾何體與對象關聯(lián)起來。

  在創(chuàng)建出單個對象后,往往需要利用各種關節(jié)將不同對象連接起來。ODE物理引擎提供5種類型的關節(jié),分別為鉸鏈型、球-球窩型、滑竿柱型、固定型和鉸鏈2型等。其中鉸鏈型為合頁關節(jié),滑竿柱型為插銷關節(jié),鉸鏈2型則是帶有軸的關節(jié),這些關節(jié)都有內置的馬達。本文選用鉸鏈關節(jié)來連接驅動輪和機器人車體,采用固定關節(jié)構建機器人車體結構。下面以使用鉸鏈關節(jié)連接兩個對象為例,說明創(chuàng)建關節(jié)的方法。

  在調用dJointCreateHinge函數(shù)創(chuàng)建鉸鏈關節(jié)對象后,再調用dJointAttach函數(shù)指定用該關節(jié)連接的兩個物體對象,然后調用dJointSetHingeAnchor函數(shù)設定旋轉軸的中心點坐標,并調用dJointSetHingeAxis設定旋轉軸的方向。

  為了讓剛體對象能夠在仿真環(huán)境中運動起來,ODE提供了3種方法: (1)調用dBodyAddForce、dBodyAddTorque等函數(shù)給剛體施加力的作用; (2)調用dJointSetHingeParam

  函數(shù)來改變內置馬達的轉速,同時需指定該函數(shù)的第二個輸入?yún)?shù)為dParamVel; (3)調用dBodySetLinearVel和dBodySetAngularVel兩個函數(shù)直接給物體設定線速度和角速度。

  此外,在ODE仿真環(huán)境中,可通過兩種方式來模擬彈簧-阻尼系統(tǒng): (1)通過設置ERP(Error Reduction Parameter)和CFM(Constraint Force Mixing)兩個參數(shù)來實現(xiàn),ERP為每一仿真循環(huán)中的修正誤差,取值范圍為0~0.8,默認取值為0.2;CFM代表物理引擎的全局混合約束力,它反映物體表面的柔軟程度,其取值范圍為10e-9~1;(2)利用動力學方程來求解,即胡克定律:

  

 

  其中γ為阻尼系數(shù),它與物體的形狀以及周圍性質有關。

  綜上所述,典型ODE仿真過程為[6]:

  (1)生成一個動力學世界,并在該世界中創(chuàng)建物體;

  (2)設置物體狀態(tài)(如質量、質心位置和姿態(tài)等),并在動力學世界中創(chuàng)建關節(jié);

  (3)將關節(jié)與物體綁定起來,為所有的關節(jié)設置參數(shù);

  (4)生成碰撞檢測空間,并為需要作碰撞檢測的物體生成碰撞幾何體;創(chuàng)建一個容納關節(jié)的關節(jié)組;

  (5)循環(huán)處理過程:

  ①在物體上施加力;

  ②根據(jù)需要調整關節(jié)參數(shù);

  ③調用碰撞檢測,得到碰撞點和碰撞的物體;

  ④為每個碰撞點的碰撞創(chuàng)建一個接觸關節(jié),并將其放入關節(jié)組;

  ⑤執(zhí)行一個仿真步驟;

  ⑥清空接觸關節(jié)組中的關節(jié);

  (6)銷毀動力學世界和碰撞世界。

  2.3 三維圖形的繪制

  OpenGL繪制圖形的基本操作步驟[4]:

  (1)設置像素格式:設定OpenGL繪制風格、顏色模式和顏色位數(shù)等重要信息。

  (2)建立模型:根據(jù)基本圖元建立景物的三維模型,并對模型進行數(shù)學描述。

  (3)舞臺布置:把景物放置在三維空間的適當位置,設置視點、視角和投影模型等。

  (4)效果處理:設置物體的材質,加入光照及光照條件。

  (5)光柵化:把景物及其顏色信息轉化為可在計算機屏幕上顯示的像素信息。

  在繪制圖形時,需注意坐標系的變換,否則很容易導致繪制失敗。OpenGL定義了兩個坐標系:世界坐標系和當前繪圖坐標系。世界坐標系是固定不變的,規(guī)定以屏幕中心為原點,面對顯示終端,向右為x正軸,向上為y正軸,向終端外面為z正軸。當前繪圖坐標系是繪制物體時的參考坐標系。仿真軟件完成初始化后,世界坐標系與當前繪圖坐標系是重合的。在調用glTranslatef、glRotate等變換函數(shù)對繪圖坐標系進行平移和旋轉后,繪圖坐標系會在原來的基礎上做出相應改變。此時,若調用gluSphere、glVertex3f等繪圖函數(shù),繪圖函數(shù)是在改變之后的繪圖坐標系上進行繪制。如若要讓繪圖坐標系與世界坐標系再次重合,可以調用glLoadIdentity函數(shù)。此外,可以調用glColor3f(r,g,b)函數(shù)設置繪圖函數(shù)所使用的顏色,如果沒有再次調用該函數(shù),則繪制出的圖形顏色將保持原先顏色不變,rgb三個顏色分量的取值范圍為0.0~1.0。

  3 軟件框架

  軟件框架及其處理流程如圖2所示,軟件仿真循環(huán)的處理流程如圖3所示,下面簡述主要處理過程的實現(xiàn)思路及方法:

  

 

  

上一頁123下一頁

本文導航

相關閱讀

發(fā)表評論
技術交流、積極發(fā)言! 發(fā)表評請遵守相關規(guī)定。

0 條評論

推薦閱讀

每月人物

正面迎戰(zhàn)智慧家庭:從稱體重到“稱”健康,芯海智慧測量全包了!

正面迎戰(zhàn)智慧家庭:從稱體重到“稱”健康,芯海智慧測量全包
隨著科技的發(fā)展,人們對生活質量的追求越來越高,傳統(tǒng)的家庭生活方式已經無法滿足現(xiàn)代人的家居生活,智慧家庭的新型生活理念成為很多人夢寐以求的...

依托AI平臺,涂鴉智能開啟全屋智能2.0時代!

依托AI平臺,涂鴉智能開啟全屋智能2.0時代!
隨著物聯(lián)網(wǎng)技術的突飛猛進,生活中越來越多的家庭設備將會聯(lián)上網(wǎng)絡,變得“智慧”起來,智慧家庭的概念成了這幾年媒體、企業(yè)、用戶關注的焦點,而...

每周排行

  • 型 號
  • 產品描述