孫依黎
摘 要 約束管理器有一個分級的數據圖表,維護所有來自對象和表面的相關信息。
關鍵詞 約束管理;優化
中圖分類號:TP391 文獻標識碼:A 文章編號:1671-7597(2014)13-0178-01
1 數據圖表
數據圖表是一個分層次的數據結構用來維護約束管理器的相關信息。它代表了約束管理器有的關于虛擬環境內組件的所有知識。數據圖是有組織的,像一個平坦的場景圖,最高層的節點代表對象,分叉節點代表表面。有效的轉變是轉化和轉動,而不是比例。對象可以通過直接操作或因其他對象的運動被轉化。對象可被固定在三維空間中,以防止如果無法被移動。
2 約束求解器
約束求解器是一個管理應用幾何約束的模塊。求解器決定了轉換適用于不固定的對象,所以應用約束是被強制執行的。這也是該求解器適用于新的約束,在三維環境下清除已有的并修復對象。潛在的這個模塊是D-Cubed 3D DCM庫,計算被約束對象的運動。約束求解器維護了一系列應用的約束。應用的約束是被強制執行的約束,并決定對象的轉變。約束只適用于明顯對象的表面,因為這個庫只支持剛體。這意味著一個相同對象的不同表面對于彼此相對固定,沒有約束可以被應用于它們之間。
所有的轉變都經過約束求解器。一個新的轉變對于一個對象意味著這個對象被從當前的位置移動到了一個新的位置。求解器決定是否這個運動可能或不可能,以及,如果不可能,它會計算另一種位置。一個對象的運動也會影響其他被約束對象的位置。求解器也計算被約束對象的新位置,并更新這些對象的位置。
3 約束識別器
約束識別器識別新的可能得約束并確認現有的約束。應用程序會指定一系列被用于搜索新約束的對象和被用于探測新約束的可能得表面。如果應用程序可以確定表面之間的碰撞,它能發送那些碰撞表面到約束識別器中。這會加速識別過程,因為它減少了一定數量的表面被探測。
用于識別新約束的方法也經常用于驗證現有的約束。驗證過程是建立在原理之上的。驗證是發生在現有約束被執行之前的,否則現有的約束將永遠被認可。不被認可的現有約束會被添加到破壞的約束的列表中。約束管理器有一組變量用來定義識別過程的界值。這些公差確定了臨界值下面的約束是被認可還是可通過應用程序動態調整。三個識別臨界值是線性的界值,角容限和破壞因素。線性寬容是兩個平面之間的最大距離(或軸,如果兩個圓柱體是相關的),角容限是兩個平面之間的最大角度,破壞因素是當約束是經過驗證的時候多種線性界值和角容限的換算系數。一個破壞因素大于1,這意味著它相比打破現有的約束更容易識別新的約束。增加了更多的困難因素使約束打破斷了。越來越多破壞因素使約束更難被打破壞了。
4 過濾器
需要過濾器將一定數量經過驗證的約束減少到最小限度。它將三個約束對一個對象到另一個完全修復。過濾器的功能是有選擇性的從他們的名單中移動公認的約束。對過濾原理的需求提高了,當我們用工業案例研究測試約束管理器。
通過約束管理器提供的一些目前的過濾器包括:表面置換:過濾有指定類型的約束的接近表面;柱面半徑:在不同的柱面半徑之間檢測移動的同軸約束;柱面定義:清除復制的柱面約束包括不同的具有完全相同幾何學的圓柱體表面;約束類型:拆除所有指定類型的約束。
4.1 識別器最優化
約束識別器被整合在一個虛擬現實的框架中,它增加了一對對象來代替一對表面被識別進入列表。識別器然后從所有可能的表面的組合中創造一個表面配對列表。一個對象與X表面和另一個與Y表面導致X*Y表面的配對。通過原始模型在兩個組件之間識別約束需要400個表面配對被檢測,當工業案例研究這一數字時增加到40萬表面配對。
為了減少一定數量的配對表面被檢測,空間信息被添加到每一個表面里。這個空間信息目的在于減少一定數量的表面被考慮,在很低的運算量之下。由于這個原因,我們實施了軸心對齊單元平面數據結構。軸線對齊規定的網格是它們與定向的邊界框相比的較低計算量。這種優勢是在準確性的支出,但是一旦其意圖是迅速拋棄表面,明顯超越感興趣的區域,它提供了一個良好的折衷辦法。
這個空間濾波器被作為一種預處理步驟,當一個組件被添加到約束管理器中。一個范圍框將為每個組件創造,通過增加所有它的邊界框表面。組件的邊界框然后被分為八個平等的空間單元,每個表面被指定到空間單元供它使用。識別器之前在兩個組件表面之間的約束,識別器決定每個組件的哪些單元是交叉的。這個信息然后被用來過濾表面配對測試:只有在交叉單元的表面會被搜索可能的約束??臻g信息的關聯是表面迅速減少,一定數量的表面在新的約束識別中被認可。利用這一新的執行,識別器的工作少于30毫秒,先前花了近200毫秒去選定的工業案例研究。
4.2 求解器最優化
所有的組件都是利用約束管理器轉化的。約束管理器從求解器收到了轉化或放著不管的指令。求解器決定了執行應用約束最終的對象。性能評價表明,三維DCM庫使用大多數時間,甚至是對無約束的對象。實驗也顯示,轉換部件所需的時間,相較于組件的復雜性更取決于約束的應用。約束管理器可以被使用在工業模型交互式維護仿真。最初實施的約束管理器需要大約250毫秒每次相互作用對完全自動化的約束管理,所以不能相互使用。約束管理器最佳的版本需要大約50毫秒去做相同的工作。我們發現這是一個可以接受的模擬時間給復雜的使用元件。
盡管有好的結果,有大量的工作要做使其成為一個成熟的系統,可以被用作一種虛擬樣機研究的工具。進一步改善現有約束管理器現在正被考慮。這些改善包括發展一種更有效的空間數據結構和運用過濾器,在識別新的約束之前。
參考文獻
[1]陳爐云.基于虛擬現實的遠程維修服務[J].計算機仿真,2005(02).
[2]趙樹恩.汽車零部件拆卸序列自動生成的理論研究及實現[D].重慶大學,2005.
[3]郭鵬,宋福慶.求解約束優化問題的新方法[J].計算機工程與應用,2011(24).endprint