張錦思,劉晶郁,楊煒
(長(zhǎng)安大學(xué)汽車學(xué)院,陜西 西安 710064)
用虛擬視景模擬車輛運(yùn)動(dòng)仿真實(shí)驗(yàn)已成為主流趨勢(shì)。其中車輛的碰撞檢測(cè)的方式是檢測(cè)方向包圍盒(OBB 型包圍盒)與場(chǎng)景中物體的相交情況[4]。傳統(tǒng)的OBB 包圍盒具有良好的緊致性、包圍體個(gè)數(shù)少,但是仍存在間隙過(guò)大與碰撞目標(biāo)發(fā)生檢測(cè)失效的問(wèn)題[5]。本文在此基礎(chǔ)上,針對(duì)汽車模型提出了一種改進(jìn)的OBB 包圍盒檢測(cè)方式,在第一層包圍和基礎(chǔ)上,在車身附著第二層包圍盒,使碰撞檢測(cè)結(jié)果更加精確,減少碰撞誤判斷。
OBB 包圍盒(Oriented bounding box)的特點(diǎn)是具有方向性,可旋轉(zhuǎn)。由于車輛屬于規(guī)則三維實(shí)體,可采用包圍盒法構(gòu)造包圍車輛檢測(cè)碰撞的盒體,首先獲取車輛三維坐標(biāo),再通過(guò)三維坐標(biāo)制作合理的包圍線段,進(jìn)而組合成體,再將包圍盒與車輛進(jìn)行綁定,隨車輛在虛擬場(chǎng)景運(yùn)動(dòng)就可以實(shí)現(xiàn)車輛在虛擬場(chǎng)景中碰撞的檢測(cè),并為OBB 包圍盒添加碰撞響應(yīng)[6]。
圖1 包圍盒制作流程圖
包圍盒的制作流程圖如圖1 所示。
由于制作包圍盒可能由于間隙過(guò)大與碰撞目標(biāo)發(fā)生檢測(cè)失效(場(chǎng)景原因、參數(shù)設(shè)置、碰撞角度等),故本文采用改進(jìn)的OBB 包圍盒檢測(cè)與周圍環(huán)境發(fā)生的碰撞,包圍盒通過(guò)記錄的車輛三維坐標(biāo)點(diǎn)構(gòu)成第一層包圍盒,改進(jìn)后則通過(guò)車身的各個(gè)坐標(biāo)位置構(gòu)成附著于車體的第二層包圍盒,包圍車體外部的最小盒體[7]。通過(guò)自定義碰撞檢測(cè)的方式添加,在程序的Vega Prime 工作線程中實(shí)時(shí)運(yùn)行并檢測(cè)碰撞。
在場(chǎng)景中可以顯示其效果如圖2 所示:
圖2 車輛及其包圍盒檢測(cè)線
碰撞檢測(cè)的原理是使用檢測(cè)線去與預(yù)先在場(chǎng)景中設(shè)置的碰撞目標(biāo)進(jìn)行相交檢測(cè),如果發(fā)生相交則判定發(fā)生碰撞[8]。VegaPrime 檢測(cè)碰撞發(fā)生的策略是:車輛碰撞檢測(cè)的檢測(cè)線與對(duì)象(Object)的檢測(cè)線相交不為0。若為0 則兩者不會(huì)進(jìn)行相交判定,若不為 0 則會(huì)進(jìn)行相交判定,所以利用VegaPrime 的這個(gè)特性進(jìn)行碰撞檢測(cè)的控制。
碰撞檢測(cè)目標(biāo)要求在滿足檢測(cè)需求的基礎(chǔ)上,盡可能的選擇較小、組成較為簡(jiǎn)單的體。在此基礎(chǔ)上,根據(jù)場(chǎng)景檢測(cè)的需求設(shè)計(jì)合理、合適的碰撞檢測(cè)目標(biāo)。這些目標(biāo)可以是靜止的物體,例如車道線、路牙、房屋、透明的物體等,也可以是運(yùn)動(dòng)的物體,比如虛擬場(chǎng)景中運(yùn)行的車輛,都可以作為碰撞目標(biāo)[9][10]。
表1
本文以科目二考試場(chǎng)景的五個(gè)項(xiàng)目為例,為了較小的程序開銷需要設(shè)置較少的碰撞目標(biāo),以此為原則設(shè)計(jì)碰撞目標(biāo)如下:
科目二場(chǎng)景如表1 所示。
在Vega Prime 中的配置截圖如下圖3:
圖3 在Vega Prime 中的配置部分截圖
本文提出用改進(jìn)的OBB 包圍盒來(lái)進(jìn)行碰撞檢測(cè)的方法,在Vega Prime中設(shè)計(jì)了一種標(biāo)定碰撞目標(biāo)來(lái)判斷是否與車輛發(fā)生碰撞的方式。使碰撞檢測(cè)不僅用于車輛與物體的碰撞,也可用于檢測(cè)判斷是否壓線、路徑是否合理等方面。