999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OSG的船橋碰撞檢測技術(shù)仿真

2014-11-28 09:45:41關(guān)克平江靖楠王靜波
中國航海 2014年2期
關(guān)鍵詞:船舶模型

關(guān)克平, 江靖楠, 王靜波

(上海海事大學(xué) 商船學(xué)院,上海 201306)

基于OSG的船橋碰撞檢測技術(shù)仿真

關(guān)克平, 江靖楠, 王靜波

(上海海事大學(xué) 商船學(xué)院,上海 201306)

為進(jìn)一步提高船舶操縱模擬器的真實(shí)性,使其更加有效地應(yīng)用于港航論證和船舶操縱模擬培訓(xùn)中,業(yè)界一直致力于研究較為關(guān)鍵的模型碰撞檢測技術(shù)。在介紹船舶操縱模擬器視景系統(tǒng)、Multigen Creator三維場景建模技術(shù)和OSG三維場景渲染技術(shù)的基礎(chǔ)上,通過分析多種包圍盒技術(shù)并比較其優(yōu)劣,在滿足精度要求的前提下,選取軸向包圍盒技術(shù)分別構(gòu)建船舶和橋體的碰撞檢測包圍盒,并提出相應(yīng)的檢測算法及優(yōu)化方案,最后成功應(yīng)用于船舶操縱模擬器的視景系統(tǒng)中。

水路運(yùn)輸;開源場景圖形(OSG);碰撞檢測;船橋碰撞;包圍盒

隨著我國船舶逐漸向大型化方向發(fā)展以及交通流密度不斷增大,船舶航行對橋梁安全的影響日益顯著。船橋碰撞是最常見的事故類型之一,只有安裝橋墩防撞預(yù)警系統(tǒng)并對駕駛?cè)藛T進(jìn)行船舶模擬操縱的培訓(xùn),才能更有效地降低此類事故的發(fā)生率。船舶模擬操縱通過對橋區(qū)水域的模擬而較多地應(yīng)用于通航安全影響論證和通航安全評估中。[1]

船舶操縱模擬器三維視景系統(tǒng)中常見的驅(qū)動(dòng)技術(shù)有OpenGVS、Vega Prime(VP) 和OpenSceneGraph(OSG)等,其中OSG是唯一開源的場景圖形管理開發(fā)庫,渲染品質(zhì)高、可移植性好,為研究提供了很好的技術(shù)支持。[2]碰撞檢測是船舶操縱模擬器中關(guān)鍵的技術(shù)之一,直接影響仿真效果的真實(shí)性,同時(shí)也是船橋碰撞仿真系統(tǒng)中最重要的一個(gè)環(huán)節(jié)。因此,在OSG的技術(shù)環(huán)境下,創(chuàng)造性地提出船橋碰撞檢測算法及其在復(fù)雜環(huán)境中的優(yōu)化方案,在三維視景系統(tǒng)中取得滿意的效果。

1 船舶操縱模擬器及其技術(shù)支持

1.1船舶操縱模擬器

船舶操縱模擬器可以使人參與到系統(tǒng)的仿真運(yùn)行中去,通過相關(guān)儀器設(shè)備給出的航行信息,人為地控制航速、航向,使駕駛?cè)藛T達(dá)到訓(xùn)練、通航安全評估和海事分析等的目的。其一般由教練臺(tái)、主控機(jī)、雷達(dá)、電子海圖和投影系統(tǒng)(投影機(jī)和圖形計(jì)算機(jī))等組成,可實(shí)現(xiàn)不同水域、不同風(fēng)流環(huán)境、不同交通會(huì)遇狀況和不同能見度下的航行、避讓、靠離泊訓(xùn)練與評估。[3]

1.2MultigenCreator三維建模技術(shù)

Multigen Creator軟件能夠?qū)崟r(shí)優(yōu)化OpenFlight數(shù)據(jù),可應(yīng)用于大面積矢量建模、多面形建模和大面積地形精確生成。[3]其與OSG的結(jié)合性較好,在視景仿真、模擬訓(xùn)練、城市仿真等實(shí)時(shí)仿真領(lǐng)域處于世界領(lǐng)先地位。在Creator環(huán)境下制作的三維模型通常保存為*.flt文件格式,支持LOD(Levels of Detail)、BSP(Binary Space Partitioning)等多種場景優(yōu)化組織結(jié)構(gòu),包含模型層次樹信息,不僅便于在OSG中導(dǎo)入,而且可以對其進(jìn)行讀與寫。

1.3OSG三維渲染引擎

OSG的相關(guān)擴(kuò)展模塊使該項(xiàng)技術(shù)功能更加豐富,如OsgEarth,其功能類似于GoogleEarth,具有良好的地形實(shí)時(shí)生成效率,可生成離線地形或根據(jù)高程圖與紋理實(shí)時(shí)生成地形;可實(shí)現(xiàn)矢量圖渲染、高度測量、距離查詢等功能。還有較常用的OsgOcean,是OSG的擴(kuò)展海洋模塊,其特點(diǎn)在于可以逼真地仿真大面積水域,并在其基礎(chǔ)上進(jìn)行二次開發(fā),以完善水域的仿真效果。

2 船舶與橋體碰撞檢測和響應(yīng)流程

在OSG中實(shí)現(xiàn)船舶與橋體碰撞檢測的流程及橋體模型(見圖1和圖2)。

圖1 船撞橋碰撞檢測和響應(yīng)流程圖

模型建好后,在OSG中將其導(dǎo)入,并進(jìn)行場景驅(qū)動(dòng)渲染,然后對模型進(jìn)行碰撞檢測,最后調(diào)用相應(yīng)的碰撞效果。其中,通過碰撞檢測可得出碰撞點(diǎn)的三維世界坐標(biāo)及該點(diǎn)的法線信息,為碰撞響應(yīng)算法提供必要的參數(shù)信息。因此,在實(shí)現(xiàn)船舶與橋墩碰撞的三維仿真中,碰撞檢測是最關(guān)鍵的環(huán)節(jié)。

3 OSG包圍盒碰撞檢測技術(shù)

在虛擬仿真中,檢測模型間的碰撞時(shí),通常先檢測兩個(gè)模型的包圍盒是否有碰撞,若無碰撞,則兩模型之間肯定沒有相交;若有碰撞,根據(jù)層次結(jié)構(gòu)樹原理,自上而下依次檢測其枝節(jié)節(jié)點(diǎn)及葉子節(jié)點(diǎn)的包圍盒是否相交。若出現(xiàn)相交,則停止檢測,返回相交結(jié)果;若檢測完其葉子節(jié)點(diǎn)仍未相交,可判斷兩者不相交。

圖2 Creator中構(gòu)建的橋體模型及其層次結(jié)構(gòu)圖

3.1包圍盒技術(shù)

包圍盒的構(gòu)建類型有很多,以下列舉幾種常用的包圍盒。[5]

3.1.1包圍球(Bounding Sphere)

OSG中,在構(gòu)建場景樹時(shí)就已經(jīng)為每個(gè)節(jié)點(diǎn)構(gòu)造了一個(gè)包圍球,并成為相應(yīng)節(jié)點(diǎn)的屬性,而并非在求取時(shí)專門構(gòu)建。[6]需要算法時(shí),可以通過getBound()直接調(diào)用。其一般適用于輪廓接近于球體的包圍盒的構(gòu)建,可通過兩個(gè)包圍球的半徑之和與兩者球心距離的關(guān)系,初步判斷兩個(gè)模型是否相交,但是不適用于長方體或條狀物包圍盒的構(gòu)建。

3.1.2軸向包圍盒AABB(Axis-Aligned Bounding Box)

軸向包圍盒的各個(gè)方向與坐標(biāo)軸方向平行,一般是長方體。[7-8]OSG中較常用的包圍盒構(gòu)建類型能滿足基本碰撞檢測精度的要求。

在進(jìn)行森林保護(hù)工作時(shí),更多的是依靠人工對森林做出相關(guān)的保護(hù)措施。因此林區(qū)保護(hù)人員的專業(yè)素質(zhì)就顯得非常重要。但是目前我國林區(qū)工作人員大多數(shù)并非經(jīng)過專業(yè)培訓(xùn),且在工作中并不能做到科學(xué)保護(hù),對于森林中出現(xiàn)的常見問題也不能很好的處理,很有可能會(huì)對森林造成二次傷害。林區(qū)保護(hù)人員的工作水平問題也是森林保護(hù)工作發(fā)展的一個(gè)重要阻礙,必須及時(shí)妥善的處理這個(gè)問題。

圖3為船舶模型的AABB包圍盒,分別記錄包圍盒在X、Y、Z3個(gè)軸上投影的最大值和最小值,并保存為3個(gè)矩陣,即Mat[0]=[Xmin,Xmax]、Mat[1]=[Ymin,Ymax]和Mat[2]=[Zmin,Zmax],通過組合可以得到包圍盒8個(gè)頂點(diǎn)的位置信息。船舶在X、Y、Z軸上的投影區(qū)間分別為(Xmin,Xmax)、(Ymin,Ymax)和(Zmin,Zmax),若與另一物體的包圍盒在3個(gè)坐標(biāo)上的投影區(qū)間同時(shí)重合,則判斷兩物體包圍盒相交,否則不相交。

3.1.3方向包圍盒OBB(Oriented Bounding Box)

方向包圍盒是三維空間中能夠包圍物體的沿任意方向構(gòu)建的最小長方體包圍盒,其緊密性較上述兩種包圍盒更好。在OSG中可通過改進(jìn)算法和坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn),但相交測試較復(fù)雜。

圖3 船舶模型AABB包圍盒及其頂點(diǎn)坐標(biāo)

3.1.4離散方向多面體包圍盒k-DOP(kDirection Orientation Polytopes)

k-DOP[8]是一種多面體包圍盒,不僅能夠包含該對象,而且其所有面的法向量都取自一個(gè)固定的方向(k個(gè)向量)集合。k-DOP比其他包圍體更緊密地包圍原物體,k的取值越大,包圍的就越緊密,而計(jì)算復(fù)雜度越高,求交運(yùn)算也就越復(fù)雜。

由于課題研究對象是船模和橋墩,其結(jié)構(gòu)基本成軸對稱且輪廓接近長方體。綜合考慮上述各種包圍盒的優(yōu)劣,在保證一定碰撞檢測精度的前提下,最終選取AABB軸向包圍盒技術(shù)。該技術(shù)在OSG中實(shí)現(xiàn)碰撞檢測的算法較其他方法的可行性更高,程序耗費(fèi)量較低。

3.2OSG碰撞檢測算法

3.2.1場景層次樹構(gòu)建

進(jìn)行碰撞檢測之前構(gòu)建合理的場景層次樹,使算法運(yùn)行時(shí)占用較小內(nèi)存,有利于提高碰撞檢測的效率。碰撞檢測判斷流程見圖4,需構(gòu)建的場景層次結(jié)構(gòu)見圖5。

在OSG中建立一個(gè)findNodeVisitor 的osg::NodeVisitor的派生類,用于讀取*.flt結(jié)構(gòu)樹中的用于碰撞檢測的節(jié)點(diǎn)b_1、b_2、b_3和b_4(見圖2),并作為OSG場景樹中4個(gè)用于碰撞檢測的橋墩節(jié)點(diǎn)brg_1、brg_2、brg_3和brg_4讀入,最后分別添加至brg組節(jié)點(diǎn)下。findNodeVisitor類的定義代碼在主程序中通過accept()調(diào)用即可。

class findNodeVisitor : public osg::NodeVisitor

{

public:

virtual void apply(osg::Node amp;searchNode);//將正在訪問的節(jié)點(diǎn)名稱與搜索節(jié)點(diǎn)名稱相比較,若相符,則添加至節(jié)點(diǎn)列表

圖4 碰撞檢測判斷流程圖

圖5 船橋碰撞的場景層次結(jié)構(gòu)圖

osg::Node* getFirst();//獲取第一個(gè)與搜索字符串名稱相符合的節(jié)點(diǎn)

……};

3.2.2碰撞檢測模塊

該模塊建立了一個(gè)碰撞檢測的類[5,9],主要用于檢測包圍盒之間是否產(chǎn)生碰撞,其主要代碼為:

class DecCallback: public osg::NodeCallback

{public:

virtual void operator()(osg::Node*node,osg::NodeVisitor*nv)

{……//定義相關(guān)包圍盒訪問器;

ship-gt;getParent(0)-gt;accept(boundvisitor1);//建立ship上一級父節(jié)點(diǎn)坐標(biāo)系下的包圍盒訪問器;

bridge-gt;accept(boundvisitor2); //建立bridge在當(dāng)前父節(jié)點(diǎn)坐標(biāo)系下的包圍盒訪問器

………//分別獲取船舶的包圍盒box_ship和整個(gè)橋體的包圍盒box_bridge;

collision_sign=box_ship.intersects(box_bridge);//用來標(biāo)記船舶是否碰撞的bool型變量,碰撞為True,不碰撞為False

if(collision_sign==True)//判斷船和整體橋體模型是否碰撞,若碰撞,則進(jìn)行下列操作:

{……//判斷船舶包圍盒與四個(gè)橋墩的包圍盒是否發(fā)生碰撞。}}};

上述代碼中,分別把船舶和橋體模型作為節(jié)點(diǎn)類型讀入為ship和bridge,由于它們是gp場景根節(jié)點(diǎn)的不同分支,直接求ship包圍盒的坐標(biāo)和bridge包圍盒的坐標(biāo)不在同一個(gè)坐標(biāo)系內(nèi),無法進(jìn)行碰撞檢測。因此,只有求出ship在其上一級父節(jié)點(diǎn)的坐標(biāo)系中包圍盒的位置,才能與橋體的包圍盒一起完成正確的碰撞檢測。[7]

在主程序中使用如下代碼,可使場景在更新每一幀時(shí)調(diào)用碰撞檢測:

gp-gt;setUpdateCallback(new DecCallback);

該碰撞算法可以實(shí)時(shí)檢測碰撞,且具有一定的碰撞精度。其碰撞檢測效果見圖6和圖7。

圖6 船舶未與橋墩碰撞的情況

圖7 船模和橋墩碰撞的情況

4 算法優(yōu)化

4.1碰撞檢測算法的優(yōu)化

在碰撞檢測算法中,還可利用OSG的IntersectVisitor遍歷節(jié)點(diǎn)和所有子節(jié)點(diǎn)。在OSG中讀入節(jié)點(diǎn)時(shí),構(gòu)建它們的k-D樹,以便更進(jìn)一步加快碰撞檢測速度。[5]主程序中調(diào)用k-D樹的代碼為

osgDB::Registry::instance()-gt;setBuildKdTreeHint(osgDB::Renderwriter::OPtions::BUILD_KDTREES);

在進(jìn)行碰撞檢測時(shí)調(diào)用InterseetionVisitor::SetUseKdTreewhenAvailable,可進(jìn)一步提高碰撞檢測效率。

4.2包圍盒的優(yōu)化

仔細(xì)觀察圖8,由于碰撞角度不同,當(dāng)檢測到兩包圍盒碰撞時(shí),船舶和橋墩可能還未發(fā)生碰撞。因此,需進(jìn)一步優(yōu)化包圍盒的構(gòu)建方案。圖8(左)是前文所構(gòu)建的包圍盒;圖8(中)是進(jìn)一步優(yōu)化的橋墩包圍盒,其下端明顯更接近實(shí)際橋墩模型,進(jìn)行碰撞檢測的精度也更高。如對碰撞檢測要求更高,可對橋墩模型進(jìn)行分段構(gòu)建包圍盒(見圖8(右)),但該方法的碰撞檢測算法更為復(fù)雜,運(yùn)算量大。實(shí)際應(yīng)用中可根據(jù)需要選擇構(gòu)建包圍盒的算法。[10]

圖8 橋墩模型的AABB包圍盒和Convex hull包圍盒

5 結(jié) 語

運(yùn)用OSG技術(shù),通過構(gòu)建模型的包圍盒,對船撞橋時(shí)船舶和橋墩的碰撞檢測進(jìn)行初步模擬,并已成功應(yīng)用到船舶操縱模擬器中。該項(xiàng)技術(shù)也可獲取碰撞點(diǎn)的世界坐標(biāo)法線等參數(shù),為后期碰撞響應(yīng)算法的加入提供技術(shù)支持。

[1] 關(guān)克平,施朝健,肖英杰,等. 港航設(shè)計(jì)論證中的三維視景建模技術(shù)[J]. 系統(tǒng)仿真學(xué)報(bào),2006(S2):436-440.

[2] YUAN Peng, WANG Shujie, ZHANG Jiwei,et al. Virtual Reality Platform Based on Open Sourced Graphics Toolkit Open Scene Graph[A]. Proceedings of 2007 10th IEEE International Conferences on Computer Aided Design and Computer Graphics,2007.

[3] 關(guān)克平,陳錦標(biāo),施朝健. 基于Creator和Vega的航海模擬器三維視景系統(tǒng)開發(fā)[A].2006系統(tǒng)仿真技術(shù)及其應(yīng)用學(xué)術(shù)交流會(huì)論文集,2006.

[4] 於文.基于OSG的航海模擬器視景系統(tǒng)關(guān)鍵技術(shù)研究[D].廈門:集美大學(xué),2012.

[5] 辛靜.基于增強(qiáng)現(xiàn)實(shí)的機(jī)械臂運(yùn)動(dòng)碰撞檢測算法研究[D].北京:北京郵電大學(xué),2011.

[6] FAN Wenshan,WANG Bin,PAUL J C,et al. An Octree-Based Proxy for Collision Detection in Large-Scale Particle Systems[J]. Science China:Information Sciences, 2013(1): 55-64.

[7] 楊曉,廉靜靜,張新宇. 基于OSG的虛擬場景中包圍盒碰撞檢測的研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2011(9):32-34.

[8] 汪璇. 基于OSG的分布式汽車駕駛模擬器運(yùn)行仿真及碰撞檢測研究[D].武漢:武漢理工大學(xué),2008.

[9] ICCD: Interactive Continuous Collision Detection Between Deformable Models Using Connectivity-Based Culling[J].IEEE Transactions on Visualization and Computer Graphics,2009,15(4):544.

[10] COMING, DANIEL S, STAADT, et al. Velocity-Aligned Discrete Oriented Polytopes for Dynamic Collision Detection[J].IEEE Transactions on Visualization and Computer Graphics, 2008, 14(1):1-12.

SimulationonShip-BridgeCollisionDetectionTechnologyBasedonOSG

GUANKeping,JIANGJingnan,WANGJingbo
(Merchant Marine College, Shanghai Maritime University, Shanghai 201306, China)

In order to improve the facticity of simulation, simulator developers turn attention to three-dimensional collision detection technology, which is one of the key technologies for that purpose. The visual system of the ship handling simulator, the three dimensional modeling technology based on Multigen Creator and the rendering technology of 3D scene based on Open Scene Graph(OSG) are introduced, and the different bounding boxes algorithms are compared. The Axis-aligned bounding box algorithm is chosen for the collision detection, and corresponding detection technology and optimization approaches are presented. The model has been successfully used in the visual system of a ship handling simulator.

waterway transportation; Open Scene Graph(OSG); collision detection; ship-bridge collision; bounding box

2014-02-10

國家自然科學(xué)基金(51149001);上海市教育委員會(huì)科研創(chuàng)新項(xiàng)目(11CX49);上海海事大學(xué)研究生物創(chuàng)新基金(2013ycx032)

關(guān)克平(1978-),男,福建寧德人,副教授,研究方向?yàn)楦酆桨踩撟C、航海仿真技術(shù)等。E-mail:kpguan@shmtu.edu.cn.

1000-4653(2014)02-0035-04

U666.158

A

猜你喜歡
船舶模型
一半模型
計(jì)算流體力學(xué)在船舶操縱運(yùn)動(dòng)仿真中的應(yīng)用
基于改進(jìn)譜分析法的船舶疲勞強(qiáng)度直接計(jì)算
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
船舶!請加速
BOG壓縮機(jī)在小型LNG船舶上的應(yīng)用
船舶壓載水管理系統(tǒng)
中國船檢(2017年3期)2017-05-18 11:33:09
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
主站蜘蛛池模板: 亚洲毛片网站| 色悠久久综合| 成人小视频网| 国产v精品成人免费视频71pao| 欧美性精品不卡在线观看| 好吊妞欧美视频免费| 啦啦啦网站在线观看a毛片| 91九色视频网| 青青操国产| 亚洲天堂网2014| 国产永久无码观看在线| 毛片久久久| 国产精品开放后亚洲| aa级毛片毛片免费观看久| 久久永久视频| 亚洲日韩精品伊甸| 亚洲成a人在线播放www| 高清国产在线| 国产福利在线免费| 亚洲综合欧美在线一区在线播放| 伊人久久精品无码麻豆精品| 一区二区午夜| 亚洲精品国产精品乱码不卞 | 国产亚洲精久久久久久无码AV| 日韩精品毛片人妻AV不卡| 亚洲一区二区视频在线观看| 成年人免费国产视频| 免费人成视网站在线不卡| 亚洲色图欧美一区| 精品国产欧美精品v| 国产成人精品免费av| 亚洲综合亚洲国产尤物| 国产成人久久777777| 国产午夜人做人免费视频中文 | 久久国产V一级毛多内射| 亚洲精品桃花岛av在线| 情侣午夜国产在线一区无码| 最新日本中文字幕| 久久精品无码中文字幕| 国产H片无码不卡在线视频| 一本大道香蕉久中文在线播放| 国产91高跟丝袜| 免费一级毛片完整版在线看| 九九免费观看全部免费视频| 亚洲精品国产首次亮相| 蝌蚪国产精品视频第一页| 国产日本欧美在线观看| 午夜精品久久久久久久无码软件| 国产性生交xxxxx免费| 污网站在线观看视频| 日本影院一区| 精品一区二区无码av| 韩国v欧美v亚洲v日本v| 狠狠色婷婷丁香综合久久韩国| 日本精品影院| 一级爱做片免费观看久久 | 国产成人亚洲精品蜜芽影院| 国产一国产一有一级毛片视频| 色久综合在线| 99热在线只有精品| 色精品视频| 人妻中文字幕无码久久一区| 97成人在线观看| 免费一级大毛片a一观看不卡 | 中文字幕亚洲专区第19页| 亚洲αv毛片| 国产精品亚洲欧美日韩久久| P尤物久久99国产综合精品| 香蕉色综合| 国产原创第一页在线观看| 夜夜操狠狠操| 国产91丝袜在线播放动漫 | 日韩 欧美 国产 精品 综合| 99热这里只有精品在线播放| a级毛片一区二区免费视频| 亚洲精品成人片在线观看| 国产成人无码综合亚洲日韩不卡| 在线永久免费观看的毛片| 丁香综合在线| 欧美精品另类| 国产成人做受免费视频| 欧美一级黄色影院|