正文 機器人仿真係統中碰撞檢測算法的優化(2 / 2)

2.3 OBB

一個給定對象的OBB被定義為包含該對象且相對於坐標軸方向任意的最小的正六麵體。OBB的緊密性最好,因其方向的任意性使它可以根據被包圍對象的形狀特點盡可能緊密地包圍對象,大大提高了算法的效率。但這也使其相交測試變得複雜,不能有效處理變形體的碰撞檢測。一般來說,OBB的總體性能優於前兩種方法,並且實時性較高。

2.4 k-DOP

由於AABB和包圍球的緊密性較差,而OBB的重疊測試和節點修改耗費又較高,所以提出了一種折中的k-DOP算法。k-DOP是一個凸多麵體,它使用k/2對平行平麵來包圍物體。當k值取足夠大時,k-DOP就發展成物體的凸包。

K的取值要根據碰撞檢測的不同需要而定,通過調整k值,k-DOP可以在碰撞檢測的簡單性和包裹物體的緊密性之間靈活取舍,以滿足特定的要求。k-DOP的緊密性要優於AABB,相交測試的複雜度要小於OBB,從而提高了碰撞檢測的效率。

3 混合包圍盒

對層次包圍盒法來說,其自身的簡單性和所包圍物體的緊密性是相互矛盾的。簡單性是指包圍盒要比被包圍的幾何對象簡單,既要求幾何形狀簡單易於計算,又要求相交測試算法簡單運算快速;緊密性則要求包圍盒盡可能貼近被包圍的對象。事實上,一種包圍盒的簡單性越高則緊密性越差,反之亦然,很難達到一定的平衡。

一般來說,AABB較適合於橢長形但與坐標軸夾角不大的物體,OBB則適合於橢長形且與坐標軸有一定夾角的物體;而包圍球較適合於三個坐標軸上分布比較均勻或經常發生旋轉運動的物體,k-DOP則適合用在表麵結構比較複雜但不發生旋轉的物體上。

為了既能利用包圍盒的優點,又能避免它們的不足,可以采用混合包圍盒法。即根據同一物體上不同的幾何特征選用不同的包圍盒,縮減可能發生碰撞的範圍,並通過包圍盒之間的求交運算,優化碰撞檢測算法,提高碰撞檢測的時效性。

4 結論

檢測速度的提高是機器人仿真係統碰撞檢測的核心問題。我們在七自由度機器人仿真控製係統中,結合機器人動作的軌跡采用了AABB-OBB混合包圍盒法。在包圍盒樹的頂層采用AABB,在樹的其他層次采用OBB,使AABB簡單性好和OBB緊密性好的優點有效結合。從而實現了碰撞檢測算法的優化,加快了檢測的速度,提高了檢測的實時性和可靠性。實驗結果表明,比OBB算法提高了大約10%~15%。此算法可應用於形狀複雜剛體的實時碰撞檢測,並且場景規模越大,算法改進的效果越明顯。

參考文獻

【1】崔漢國,陳軍,王大宇.虛擬環境中優化的OBB碰撞檢測算法研究【J】.計算機工程與設計,2007(11):2524-2526.

【2】申玉斌,蔡勇,華才健.虛擬環境中的碰撞檢測技術的研究與應用【J】.交通與計算機,2005(1):23.

【3】蔡文軍,陳虎.基於混合模型的碰撞檢測優化算法研究【J】.計算機與現代化,2006(7):49-52.