專利名稱:在虛擬環(huán)境中移動虛擬鏈接對象同時避免鏈接對象和環(huán)境之間的碰撞的制作方法
技術(shù)領域:
本發(fā)明涉及在一個虛擬環(huán)境中模擬虛擬鏈接對象的移動的領域。更具體地,涉及在鏈接對象和它的環(huán)境間避免碰撞。
背景技術(shù):
在眾多工業(yè)中,像航空或空間工業(yè),通常會用到虛擬現(xiàn)實中的模型。例如,常常用數(shù)字模型來評估在各種不同部件之間的碰撞。
類似地,可以使用模型化來模擬在預定的環(huán)境中技術(shù)人員或機器人的行動,以便為了采取這些行動而顯現(xiàn)人或機器人將需要做出的運動。這對機器的特定部分的驗證和優(yōu)化可達性很有用,例如在飛機引擎中的部件,這些部件需要定期的檢查和保養(yǎng)。
因此,借助于使用虛擬鏈接對象的模擬,一旦元件被模型化就能虛擬地檢查利用設備的各個元件的容易程度。
虛擬鏈接對象是定義動態(tài)系統(tǒng)的數(shù)字數(shù)據(jù)組,其特征在于以多個自由度鏈接的多個元件。
因此,在指定的時刻,虛擬鏈接對象可以通過在三維空間中的位置和方向以及它的接頭的自由度的值來限定。定義虛擬鏈接對象的環(huán)境的數(shù)據(jù)和參數(shù)可以存儲在數(shù)字數(shù)據(jù)介質(zhì)中。
現(xiàn)在已經(jīng)有了這種應用的虛擬鏈接對象的應用。
由Chedmail,Damay,和Le Roy所寫的文章給出一個實例,該文章的標題為“Réalité virtuelle,maquette numérique du produit,outils dedistribution et partage de la conception”(虛擬現(xiàn)實、產(chǎn)品的數(shù)字模型、分布和共享設計的工具)(Journées Priméca,la Plagne,April 7-9,1999)。
該文章提供了一種驗證可達性方法,用于虛擬環(huán)境中使用兩個虛擬鏈接臂的移動的模型,組合和分解障礙環(huán)境中的對象。
為了避免在鏈接臂和環(huán)境之間的碰撞,Chedmail等人的文章中提出的方法使用相對于鏈接臂自由度計算碰撞線斜度。
通過有限差計算斜度需要執(zhí)行每個鏈接臂接頭的大量移動,并且對每個移動而言必須計算碰撞線的長度。由于這種方法在耗費非常多的計算時間,因此非常慢。
發(fā)明內(nèi)容
本發(fā)明旨在克服以上所述的缺點,通過提供一種方法和系統(tǒng),使得可以模擬鏈接對象的位移或操縱,同時避免對象和它的環(huán)境間的碰撞,以及限制計算時間。
這些目的通過以下技術(shù)方案實現(xiàn)的。
一種在虛擬環(huán)境中以一系列單位移動來移動一個虛擬鏈接對象的方法,該鏈接對象通過定義一組鏈接元件的位置的一個整體位置、一個整體方位、和多個接頭角被指定在所述環(huán)境中,所述一組鏈接元件組成所述鏈接對象并具有多個自由度,該方法包括以下步驟計算鏈接對象和它的環(huán)境之間的相互作用距離;從所述相互作用距離中提取屬于鏈接對象的元件之一的第一點、和屬于環(huán)境的第二點;由所述第一和第二點定義單個提取向量;和通過定義為單個提取向量的函數(shù)的移動,將鏈接對象移開并遠離其環(huán)境,該單獨的移動的實現(xiàn)是通過作用在鏈接對象的整體位置上的平移中的移動、和/或作用在鏈接對象的整體方位上的旋轉(zhuǎn)中的運動、和/或作用在所述第一點所屬的鏈接對象的元件以前屬于一連串接頭的每個接頭的接頭撓曲移動;從而避免在鏈接對象和環(huán)境間的碰撞。
這樣,本發(fā)明的方法使用了單個相互作用距離計算,以將鏈接對象從它的環(huán)境移開。這就導致了極大的簡化并顯著地節(jié)省了時間。
本發(fā)明的方法進一步包括在所述一系列單位移動的每個單位移動之后、確定在鏈接對象和它的環(huán)境之間是否發(fā)生碰撞的的步驟。
在執(zhí)行本發(fā)明的第一個實現(xiàn)方案中,相互作用距離對應于穿透深度,使得提取向量等于第二點的坐標減去第一點的坐標,穿透深度能夠使鏈接對象移動并且與環(huán)境的碰撞量是有限的和可控制的。
在本發(fā)明的第二個實現(xiàn)方案中,相互作用距離對應于一個最小距離,以便提取向量等于第一點的坐標減去第二點的坐標,該最小距離能夠使鏈接對象在與它的環(huán)境無碰撞的情況下移動。
該方法進一步包括以下步驟在鏈接對象和它的環(huán)境之間發(fā)生碰撞時,取消所述一系列單位移動的最近的單位移動。
有利地,只要在鏈接對象和它的環(huán)境之間不發(fā)生碰撞,不執(zhí)行所述提取第一和第二點,定義提取向量,以及將鏈接對象移開的步驟。
根據(jù)本發(fā)明的第一個特征,通過與作用在鏈接對象的整體位置上的提取向量的分量成比例的平移中的移動,可以將鏈接對象從它的環(huán)境移開。
根據(jù)本發(fā)明的第二個特征,通過作用在鏈接對象的整體方位的旋轉(zhuǎn)中的移動,將鏈接對象從它的環(huán)境中移開,在旋轉(zhuǎn)中的移動包括以下步驟定義一個在鏈接對象重力中心和提取向量起點之間的一個第一整體向量;定義一個在鏈接對象重力中心和提取向量終點之間的一個第二整體向量;計算使得第一整體向量與第二整體向量重合的整體旋轉(zhuǎn)角;通過分解繞定義鏈接對象的整體方位的一個或多個軸的所述整體旋轉(zhuǎn)角,計算一個或多個單獨的整體旋轉(zhuǎn)角;和轉(zhuǎn)動鏈接對象通過一個或多個與所述單個整體旋轉(zhuǎn)角成比例的角度。
根據(jù)本發(fā)明的第三個特征,通過接頭撓曲移動將鏈接對象從其環(huán)境移開,該接頭撓曲移動作用在屬于所述第一點所屬的鏈接對象的元件以前的一連串接頭的每個接頭上,包括以下步驟定義在所述指定接頭的鏈接中心和提取向量的起點之間的一個第一局部向量;定義在所述指定接頭的鏈接中心和提取向量的終點之間的一個第二局部向量;計算使得第一局部向量與第二局部向量重合的一個局部旋轉(zhuǎn)角;通過分解限定對應于所述指定接頭的自由度的一個或多個軸上的局部旋轉(zhuǎn)角,計算一個或多個單個接頭旋轉(zhuǎn)角;和轉(zhuǎn)動在所述指定接頭上的鏈接元件通過與所述單個接頭角成比例的一個或多個角。
整體旋轉(zhuǎn)角可以通過在第一和第二整體向量之間的整體向量乘積來計算,并且局部旋轉(zhuǎn)角通過在第一和第二局部向量之間的局部向量乘積來計算。
單個整體旋轉(zhuǎn)角可以通過在整體向量乘積和整體方位軸之間的一個或多個標積而計算,該單個接頭角通過在局部向量乘積和該指定接頭的自由度的軸之間的一個或多個標積來計算。
在本發(fā)明的特定實現(xiàn)方案中,鏈接對象可以通過作用在該鏈接對象的整體位置,和/或整體方位,和/或多個自由度上的吸引代理來移動。
有利地,該方法進一步包括通過作用在位置和/或方向和/或鏈接對象的自由度上的操作代理實時地操作移動鏈接對象。
根據(jù)本發(fā)明的一個特征,鏈接對象是一個在虛擬環(huán)境的底面上移動的虛擬假人,該假人通過在虛擬底面上的位置、與所述底面垂直并且通過該假人的重力中心的豎軸的方位、以及定義鏈接元件組的多個接頭角來限定。
本發(fā)明還提供了一種計算機程序,當其由計算機執(zhí)行時實現(xiàn)以上描述的方法。
附圖簡要描述本發(fā)明的方法和系統(tǒng)的其他特征和益處通過以下參考附圖且非限制性的描述將更加的清晰,其中
圖1是實現(xiàn)在本發(fā)明的系統(tǒng)或方法中的硬件裝置的透視圖;圖2A顯示了根據(jù)本發(fā)明的在三維空間中的虛擬鏈接對象;圖2B示出根據(jù)本發(fā)明的在三維空間中的虛擬假人;圖3A示出定義在本發(fā)明的最小距離模式中的提取向量;圖3B示出定義在本發(fā)明的穿透深度模式中的提取向量;圖4示出作用在根據(jù)本發(fā)明的鏈接對象的整體位置上的單獨移動;圖5示出作用在本發(fā)明的鏈接對象的整體方位上的單獨移動;圖6示出作用在本發(fā)明的鏈接對象的指定接頭上的單獨移動;圖7A顯示的是根據(jù)本發(fā)明的在移動鏈接對象中的主要步驟的流程圖;圖7B顯示的是圖7A的一個變型;和圖8示出根據(jù)本發(fā)明的用于使用移動鏈接對象的多代理系統(tǒng)的結(jié)構(gòu)。
具體實施例方式
圖1顯示了可用于對鏈接對象的移動模型化的系統(tǒng)。該系統(tǒng)包括一個具有良好的圖形能力的工作站或計算機1,用來執(zhí)行設計實現(xiàn)本發(fā)明的方法的計算機程序。
計算機1包括此類型的裝置通常所包括的硬件裝置。更具體地,該計算機包括一個中心單元2,其執(zhí)行用于實現(xiàn)本發(fā)明的方法的程序中的指令序列;一個中心存儲器3,其存儲數(shù)據(jù)和被執(zhí)行的程序;數(shù)字數(shù)據(jù)存儲介質(zhì)(硬盤,CD4,軟盤,...),用來長時間存儲所使用的數(shù)據(jù)和程序;輸入外設(鍵盤5,2D或3D鼠標6,游戲柄,...);和輸出外設(顯示屏7,立體聲耳機或眼鏡,...),以便能夠觀察到鏈接對象的移動。
自然,為了增加計算能力,可以在多個并行操作的工作站上執(zhí)行本發(fā)明的模型化。
圖2示出以接頭的樹結(jié)構(gòu)為特征的虛擬鏈接對象10。因此,鏈接對象10被定義為一組“被動對象”,即,元件11通過多串接頭中的接頭12互相連接,接頭12可以傳統(tǒng)方式分類。
在鏈接對象10的重力G的中心具有它的起點的局部參考幀能與之關聯(lián)。
具體地,局部參考幀可以有一個通過鏈接對象10的重力G的中心的單個軸z。
鏈接對象10在虛擬環(huán)境13中中移動,受到特定數(shù)量的對象或障礙物13a,13b,13c和13d阻擋,當鏈接對象10移動時必須避免這些對象或障礙物的。該鏈接對象10和它的環(huán)境都在三維空間(o,x,y,z)中定義。
通過使用三維空間,鏈接對象10的位置和方位以及在其環(huán)境13中的各個對象13a,13b,13c和13d能以簡單的方式指定。
因此,在環(huán)境13中,鏈接對象10在任何時候都可以通過一個整體位置,一個整體方位,和定義相對于多個自由度的鏈接元件組11的位置的多個接頭角來指定。
鏈接對象10的整體位置能通過沿軸x,y和z用于其重心G的中心的笛卡兒坐標來定義。
它的整體方位可以通過定義與相對于軸x,y和z的鏈接對象關聯(lián)的軸 的方位的三個角度以已知的方式來指定。
自然,還需要考慮由接頭的限制和由在鏈接對象10的各個部件或元件11之間物理連接所強加的參數(shù)或約束。
定義鏈接對象10的這些數(shù)據(jù)和變量以及定義其環(huán)境13的參數(shù)存儲在計算機系統(tǒng)1的數(shù)字數(shù)據(jù)介質(zhì)3中。
圖2B顯示了該鏈接對象可以由在虛擬環(huán)境13的底面上移動的虛擬假人10a具體地構(gòu)建。
在這樣的環(huán)境下,虛擬假人10a可以通過其在該虛擬地板上的位置,它在正交于所述地板并通過虛擬假人10a的重力G中心的垂直軸 附近的方位,以及多個定義鏈接元件組的接頭角來定義。
在傳統(tǒng)方式中,例如虛擬假人10a的鏈接對象10能在虛擬環(huán)境13中一系列單元移動來移動,例如為了到達目標13c。
因此,為了產(chǎn)生一個能使鏈接對象10到達其目標13c的軌道,可以作用在使用預定義步長大小來移動其位置的鏈接對象10的整體位置,和/或使用的預定義步長大小來改變方位的鏈接對象10的整體方位,和/或多個為接頭移動Δa所使用的預定步長大小的鏈接對象的自由度。
這使得鏈接對象10被引向它的目標13c而無需考慮目標10c或其他任何在該環(huán)境中的對象13a,13b之任一個的尺寸。
為了使鏈接對象10避免與它的環(huán)境13的碰撞,必須定義一個碰撞標準。這樣的標準可以由本領域的技術(shù)人員用已知的方式通過計算在鏈接對象10和它的環(huán)境13之間的相互作用距離來限定,該計算還提供了物化所述相互作用距離的點。
應當考慮的是,其相互作用距離能對應于一個最小距離或一個在鏈接對象10和它的環(huán)境之間的穿透深度。
圖3A和3B圖示了在鏈接對象10的一個元件和屬于該環(huán)境的對象13d之間的相互作用距離。
圖3A的例子更具體顯示了在鏈接對象10和它的環(huán)境之間的最小距離標準,它還顯示了物化所述最小距離的點P1和P2。
此外,圖3B的例子更具體圖示了在鏈接對象10和它的環(huán)境之間的穿透深度,同時它還定義了用來定義所述穿透深度的點P1和P2。
因此,計算相互作用距離可以提取點P1和另一個點P2,點P1屬于鏈接對象10的元件11之一,以下稱為“第一”點,而另一個點P2屬于環(huán)境13,以下稱為“第二”點。
從該第一和第二點P1和P2,可以定義一個單獨的提取向量 在基于計算一個最小距離的模式中(圖3A),提取向量 等于第一點P1的坐標減去第二點P2的坐標。換句話說,第二點P2是提取向量 的起點而第一點P1是提取向量 的終點。
相反,在基于計算穿透深度的模式中(圖3B),提取向量 等于第二點P2的坐標減去第一點P1的坐標。換句話說,第一點P1是提取向量 的起點而第二點P2是提取向量 的終點。
最后,為了避免在鏈接對象10和環(huán)境13之間的碰撞,通過作用在該鏈接對象10的整體位置,和/或整體方位,和/或自由度上,通過定義為單個提取向量 的函數(shù)的移動,所述的鏈接對象10能從它的環(huán)境中移開。
圖4到圖6顯示了使用最小距離模式所執(zhí)行的鏈接對象的單獨移動,但自然該原理與使用穿透深度模式時相同。
因此,通過在與作用在鏈接對象的整體位置上的提取向量 的分量成比例的平移 中的移動,使鏈接對象10從環(huán)境13中移開,即M1→=λv→,]]>其中λ是正的系數(shù)。
更具體地,在虛擬假人10a的例子中整體位置定義在平面(x,y)中,它只是提取向量 在被考慮的所述平面上的投影。
因此,平移中的移動有助于通過使鏈接對象10執(zhí)行一個整體移動來避免碰撞。
應當考慮的是,從最小距離或穿透深度計算所得的該單個提取向量 可以通過在位置移動中的單元步長大小的值Δp來歸一化,即平移中的移動 由以下公式給出M1→=v→/Δp]]>圖5顯示了作用在鏈接對象的整體方位上的單獨移動。
該鏈接對象10通過確定執(zhí)行繞一個點的旋轉(zhuǎn)來從環(huán)境13中移開,例如重力G的中心,使得鏈接對象10沿所述向量 移動鏈接對象10上施加提取向量 的點。該旋轉(zhuǎn)通過在方位移動的步長尺寸Δo進行歸一化。
通過以下的步驟可以確定這個作用在鏈接對象10的整體方位上的旋轉(zhuǎn)中的移動。
一個在以下的描述中稱為“第一整體向量”的第一向量 被定義在鏈接對象10的重力G中心與提取向量 的起點之間。在該實例中,提取向量 的起點是第二點P2,但它在使用穿透深度模式時是第一點P1。
類似地,一個第二向量 被定義在鏈接對象10的重力G的中心與提取向量 的終點P1之間。
隨后,旋轉(zhuǎn)角 (以下稱為“整體旋轉(zhuǎn)角”)被計算,以使得第一整體向量 與第二整體向量 重合。整體旋轉(zhuǎn)角 能通過在第一和第二整體向量 和 之間的的向量乘積(以下稱為“整體向量乘積”)而計算出。這樣,整體旋轉(zhuǎn)角 就通過以下公式給出θg→=V1g→×V2g→V1g·V2g]]>該整體旋轉(zhuǎn)角 被分解成一個或多個單個整體旋轉(zhuǎn)角θgi,這些角在定義鏈接對象的整體方位的一個或多個軸附近。這些單個整體旋轉(zhuǎn)角θgi能通過在整體向量乘積和一個或多個整體方位軸之間的標積而計算。
最后,鏈接對象10轉(zhuǎn)動通過一個多個與所述單個整體旋轉(zhuǎn)角 成比例的角度α0該單個整體旋轉(zhuǎn)角θgi通過對應于在角度移動中的步長大小Δo的值來歸一化,即α=θgi/Δo。
更具體地,當鏈接對象的整體方位如圖2所示通過單個軸 來定義時,會產(chǎn)生一個定義在繞所述軸 的鏈接對象的旋轉(zhuǎn)移動的整體旋轉(zhuǎn)的一個單個歸一化的角度α,并通過以下公式給出α=sin-1z→·θg→Δo]]>圖6顯示了作用在鏈接對象的自由度上的接頭撓曲移動。
應當考慮的是,通過作用在屬于鏈接對象的元件11以前的、上述第一點P1所屬的一連串接頭的接頭12之每一個上的接頭撓曲移動,鏈接對象10從環(huán)境13中移開(參見圖2A和2B)。
作為例子,如果鏈接對象是一個虛擬假人10a,同時如果在虛擬假人10a和環(huán)境13之間的相互作用距離通過在前臂上的第一點P1來物化,那么一連串接頭就對應于肘、肩膀、和鎖骨。換句話說,接頭撓曲移動就被計算以作用在前臂以前的臂中所有12個接頭上。否則,如果第一點P1屬于上臂,那么一連串接頭就只包括單獨的肩膀接頭和鎖骨。如果第一點P1屬于手,那么手臂所有的12個接頭將被考慮,即,一連串接頭包括手腕,肘部,肩膀和鎖骨。
因此,對一個指定的鏈接對象10,一連串接頭依靠包括鏈接對象10中包括第一點P1的元件11。
更具體地,圖6的例子顯示了作用在一連串接頭12a,12b和12c的一個指定接頭12a的組成部分上的接頭旋轉(zhuǎn)的移動。
該作用在指定接頭12a上的接頭旋轉(zhuǎn)的移動可以通過以下步驟決定。
一個第一向量 在以下描述中稱為“第一局部向量”,被定義在所述指定接頭12a的鏈接中心與提取向量 的起點P2間。
類似地,一個第二向量 被定義在所述指定接頭12a的鏈接中心與提取向量 的終點P1間。
以下,一個旋轉(zhuǎn)角 在以下描述中被稱為“局部旋轉(zhuǎn)角”被計算,以便使得第一向量 與第二向量 重合。局部旋轉(zhuǎn)角 能通過在第一和第二局部向量 和 之間、以下稱為“局部向量乘積”的向量乘積來計算,計算使用以下公式θ→l=V1l→×V2l→V1l·V2l]]>該局部旋轉(zhuǎn)角 被分解成一個或多個繞定義自由度的一個或多個軸 的單個接頭旋角θli,其對應于鏈接對象10的指定接頭12a。在該實例中,指定的接頭12a具有兩個軸 和 單個接頭旋轉(zhuǎn)角度θli能通過在局部向量乘積和指定接頭12a的自由度的一個或多個軸 之間的一個或多個標積計算。
最后,在所述指定接頭上的鏈接元件被轉(zhuǎn)動通過與該接頭的單個角度θli成比例的一個或多個角αi。
單個角度θli通過對應于在接頭移動中的步長大小Δo的值來歸一化。
在所述指定接頭上的鏈接元件轉(zhuǎn)動通過一個或多個由以下公式所給出的角度αiαi=sin-1Ui→·θl→Δa]]>自然,以上步驟需要在所有接頭12a,12b和12c上執(zhí)行,這些接頭構(gòu)成要考慮的一連串接頭。
因此,使用從一個最小距離或一個穿透深度計算出的單個的提取向量 使得顯著地改善在鏈接對象10和環(huán)境13之間的避免碰撞過程成為可能。
本發(fā)明可以顯著地降低要被計算的最小距離或穿透深度的數(shù)量,其中的計算與現(xiàn)有技術(shù)中所需的斜度計算的數(shù)量相比需要大量的計算時間,這就使得不影響在鏈接對象和環(huán)境之間避免碰撞的精確性成為可能。
圖7A顯示的是對當避免對象和它的環(huán)境間碰撞時鏈接對象的移動模型化的主要步驟的流程圖。
步驟S0是該流程圖的初始化步驟,其中定義了各種參數(shù)。例如初始化一個用于對計算脈沖或模型的步驟計時的計數(shù)器。
類似地,在位置移動中的單位移動或步長Δp,在方位移動中的單位移動或步長Δo,和在接頭移動中的單位移動或步長Δa也能在步驟S0中定義。例如,可以取決于接頭12的特性來使用不同的步長大小。也可以選擇所有沿著鏈接對象10的軌道和所有接頭12的最佳恒定步長大小。
在步驟S1中,計算鏈接對象10的單個移動。
步驟S2是一個檢測,用以決定是否在鏈接對象10和環(huán)境13之間有碰撞。該碰撞的標準取決于相互作用距離的值。
換句話說,對于基于最小距離的模式而言,為了能夠使鏈接對象10移動而與其環(huán)境13不發(fā)生碰撞,可以假定如果最小距離小于或等于一個可以為零的極限最小距離,則已發(fā)生碰撞。
相反,對基于穿透深度的模式而言,可以考慮,如果所述穿透深度大于或等于一個極限穿透深度,則已發(fā)生碰撞。因此,取決于如何選擇該值用于所述極限,可以首先允許鏈接對象10移動而與環(huán)境13無碰撞,或其次允許鏈接對象10移動,且與環(huán)境13的碰撞量是有限且可控的。這種情況使得可以模型化當鏈接對象10與環(huán)境13的一個對象接觸時的適應性的度。
如果根據(jù)在上述步驟S2中使用的標準沒有碰撞,那么在步驟S3中,例如在返回所述的步驟S1以前,如在步驟S1中計算的鏈接對象10的位移顯示在計算機1的屏幕7上,以便計算下一個單位移動。
因此,在步驟S3中,提取第一和第二點、定義提取向量、和將鏈接對象10從環(huán)境13移開的步驟都不會被執(zhí)行。
相反,如果有碰撞,那么在步驟S1計算的單元位移就在步驟S4中被取消。
以下,在步驟S5中,定義為單個提取向量的函數(shù)、并作用在鏈接對象的整體位置、和/或整體方位、和/或自由度的移動被計算,以便在循環(huán)回到步驟S1以前將鏈接對象10從其環(huán)境13移開。
圖7B顯示了圖7A的變型,其中只對使用穿透深度的計算的模式有效。
該圖的流程圖與圖7A的相同,除了步驟S4不再存在。
因此,如果在步驟S2中有碰撞,那么本方法就立即跳到步驟S5,將鏈接對象10從環(huán)境其13移開而不取消最新的單位移動,因此允許在鏈接對象10和其環(huán)境13之間有少量的穿透。
可以通過“多代理”系統(tǒng),或任何其他已知的系統(tǒng),使虛擬鏈接對象10在虛擬環(huán)境13中移動。
圖8示出能用于模型化鏈接對象10的位移的多代理系統(tǒng)50的體系結(jié)構(gòu)。該多代理系統(tǒng)50由一組活動元件或代理20,21,22,23,30,31,32和32組成,它們作用于組成鏈接對象10的被動對象(元件11和接頭12),作為其環(huán)境的函數(shù)。
定義鏈接對象10以及它的環(huán)境的數(shù)據(jù)或變量構(gòu)成共享的數(shù)據(jù)15,各個代理通過共享的數(shù)據(jù)15相互作用。
該多代理系統(tǒng)的結(jié)構(gòu)可以金字塔方式組織在多級或多層中,使得基本級的代理有助于更高級上的代理的行為。
在本實例中,多代理系統(tǒng)50呈現(xiàn)一個第一級51和一個第二級52。該第一級51示出對鏈接對象10的作用或整體貢獻,并包括了第一整體代理20的貢獻和第二整體代理30的貢獻,其經(jīng)由共享的數(shù)據(jù)15作用于鏈接對象10。
第一整體代理20作用于鏈接對象10的整體位置和方位,第二整體代理30作用于鏈接對象10的接頭12的內(nèi)部自由度。
第二級52示出由各種類型的代理產(chǎn)生的貢獻,它們通過經(jīng)由共享數(shù)據(jù)15的相互作用,產(chǎn)生第一和第二整體代理20和30的貢獻。
因此,鏈接對象10的移動能通過作用于鏈接對象的整體位置、和/或整體方位、和/或多個自由度的吸引代理而實現(xiàn)。
此外,通過一個作用于鏈接對象的整體位置、和/或整體方位、和/或多個自由度的避免代理,可以移開鏈接對象而遠離它的環(huán)境。
因此,多代理系統(tǒng)50的第二級52可以包括一個作用于鏈接對象10的整體位置和/或方位的排斥避免代理21,一個作用于鏈接對象10的整體位置和/或方位的整體吸引代理22,一個作用于鏈接對象10的接頭12上的內(nèi)部自由度的動態(tài)避免代理31,和一個作用于鏈接對象10的接頭12上的內(nèi)部自由度的動態(tài)吸引代理32。
此外,通過作用于鏈接對象的整體位置、和/或整體方位、和/或多個自由度上的操作代理,可以實時地由操作者移動鏈接對象10。
因此,多代理系統(tǒng)50的第二級52還可以包括一個作用于鏈接對象10的整體位置、和/或整體方位的整體操作代理23,和一個作用于鏈接對象10的接頭12的內(nèi)部自由度的內(nèi)部操作代理33。
權(quán)利要求
1.一種在虛擬環(huán)境(13)中以一系列單位移動來移動一個虛擬鏈接對象(10)的方法,該鏈接對象(10)通過定義一組鏈接元件的位置的一個整體位置、一個整體方位、和多個接頭角被指定在所述環(huán)境(13)中,所述一組鏈接元件組成所述鏈接對象并具有多個自由度,該方法包括以下步驟計算鏈接對象(10)和它的環(huán)境(13)之間的相互作用距離;從所述相互作用距離中提取屬于鏈接對象(10)的元件(11)之一的第一點(P1)、和屬于環(huán)境(13)的第二點(P2);由所述第一和第二點(P1,P2)定義單個提取向量 和通過定義為單個提取向量 的函數(shù)的移動,將鏈接對象(10)移開并遠離其環(huán)境(13),該單獨的移動的實現(xiàn)是通過作用在鏈接對象的整體位置上的平移中的移動、和/或作用在鏈接對象的整體方位上的旋轉(zhuǎn)中的運動、和/或作用在所述第一點所屬的鏈接對象的元件以前屬于一連串接頭的每個接頭的接頭撓曲移動。
2.根據(jù)權(quán)利要求1的方法,其特征在于,它還進一步包括在所述一系列單位移動的每個單位移動之后確定是否在鏈接對象(10)與其環(huán)境(11)之間發(fā)生碰撞的步驟。
3.根據(jù)權(quán)利要求1或2的方法,其特征在于,該相互作用距離對應于一個穿透深度,使得提取向量 等于第二點(P2)的坐標減去第一點(P1)的坐標,該穿透深度能使鏈接對象(10)與環(huán)境(13)以有限并可控的碰撞量移動。
4.根據(jù)權(quán)利要求1或2的方法,其特征在于,該相互作用距離對應于一個最小距離,使得提取向量 等于第一點(P1)的坐標減去第二點(P2)的坐標,該最小距離能使鏈接對象(10)與其環(huán)境(13)無碰撞地移動。
5.根據(jù)權(quán)利要求1至4中任一項的方法,其特征在于,它還包括以下步驟如果在鏈接對象(10)與其環(huán)境(13)之間發(fā)生碰撞,則取消所述一系列單位移動中的最近的單位移動。
6.根據(jù)權(quán)利要求1至4中任一項的方法,其特征在于,只要在鏈接對象(10)與環(huán)境(13)之間不發(fā)生碰撞,就不執(zhí)行所述提取第一和第二點(P1,P2)、定義提取向量 和將鏈接對象(10)移開的步驟。
7.根據(jù)權(quán)利要求1至5中任一項的方法,其特征在于,該平移中的移動與作用在鏈接對象(10)的整體位置上的提取向量 的分量成比例。
8.根據(jù)權(quán)利要求1至5中任一項的方法,其特征在于,作用在鏈接對象(10)的整體方位上的旋轉(zhuǎn)中的移動包括以下步驟●在鏈接對象(10)的重力(G)的中心和提取向量 的起點之間定義一個第一整體向量 ●在鏈接對象(10)的重力(G)的中心和提取向量 的終點之間定義一個第二整體向量 ●計算使得第一整體向量與第二整體向量重合的整體旋轉(zhuǎn)角 ●通過分解繞定義鏈接對象(10)的整體方位的一個或多個軸所述整體旋轉(zhuǎn)角,計算一個或多個單個整體旋轉(zhuǎn)角;和●轉(zhuǎn)動該鏈接對象(10)通過與所述單個整體旋轉(zhuǎn)角成比例的一個或多個角。
9.根據(jù)權(quán)利要求1至5中任一項的方法,其特征在于,作用在屬于所述第一點所屬的鏈接對象的元件以前的一連串接頭的接頭的每個指定接頭(12a)上的接頭撓曲移動,包括以下步驟●定義在所述指定接頭(12a)的鏈接中心和提取向量 的起點之間的一個第一局部向量 ●定義在所述指定接頭的鏈接中心和提取向量 的終點之間的一個第二局部向量 ●計算使得第一局部向量與第二局部向量重合的一個局部旋轉(zhuǎn)角 ●通過分解限定對應于所述指定接頭的自由度的一個或多個軸上的局部旋轉(zhuǎn)角,計算一個或多個單個接頭旋轉(zhuǎn)角;和●轉(zhuǎn)動在所述指定接頭上的鏈接元件(11)通過與所述單個接頭角成比例的一個或多個角。
10.根據(jù)權(quán)利要求8或9的方法,其特征在于,計算整體旋轉(zhuǎn)角 是借助于在第一和第二整體向量間的整體向量乘積,計算局部旋轉(zhuǎn)角 是借助于在第一和第二局部向量之間的局部向量乘積。
11.根據(jù)權(quán)利要求8至10中任一項的方法,其特征在于,單個整體旋轉(zhuǎn)角通過一個或多個在整體向量乘積和整體方位軸之間的標積來計算,單個接頭角通過一個或多個在局部向量乘積和指定接頭的自由度軸之間的標積來計算。
12.根據(jù)權(quán)利要求8至10中任一項的方法,其特征在于,鏈接對象(10)通過作用在鏈接對象的整體位置、和/或整體方位、和/或多個自由度上的吸引代理(22,32)移動。
13.根據(jù)權(quán)利要求1至12中任一項的方法,其特征在于,鏈接對象通過作用在鏈接對象的整體位置、和/或整體方位、和/或多個自由度上的避免代理(21,31)被移開并遠離其環(huán)境。
14.根據(jù)權(quán)利要求1至13中任一項的方法,其特征在于,該方法進一步包括以下步驟借助于作用在鏈接對象(10)的位置、和/或方位、和/或多個自由度上的操作代理(23,33),實時地操作移動鏈接對象(10)。
15.根據(jù)權(quán)利要求1至14中任一項的方法,其特征在于,鏈接對象是一個在虛擬環(huán)境的底面上移動的虛擬假人(10a),該假人通過在虛擬底面上的位置、與所述底面垂直并且通過該假人的重力中心的豎軸的方位、以及定義鏈接元件組的多個接頭角來限定。
16.一種計算機程序,其特征在于它被設計成當被計算機(1)執(zhí)行時,用以實現(xiàn)根據(jù)權(quán)利要求1至15中任一項的方法。
全文摘要
一種在虛擬環(huán)境中以一系列單位移動來移動一個虛擬鏈接對象(10)的方法,該鏈接對象(10)通過定義一組鏈接元件(11)的位置的整體位置、整體方位、和多個接頭角被指定在所述環(huán)境中,所述一組鏈接元件組成所述鏈接對象并具有多個自由度,該方法包括以下步驟計算鏈接對象(10)和其環(huán)境(13d)之間的相互作用距離;從所述相互作用距離中提取屬于鏈接對象(10)的元件(11)之一的第一點(P1)、和屬于環(huán)境(13d)的第二點(P2);由所述第一和第二點(P1,P2)定義單個提取向量();和通過定義為單個提取向量()的函數(shù)的移動,將鏈接對象(10)移開并遠離其環(huán)境(13d),以及作用在鏈接對象的整體位置、和/或整體方位上、和/或自由度,以便避免鏈接對象(10)與環(huán)境(13d)之間的碰撞。
文檔編號G06T13/40GK1612168SQ200410089889
公開日2005年5月4日 申請日期2004年10月29日 優(yōu)先權(quán)日2003年10月29日
發(fā)明者布魯諾·馬耶, 愛德華·拉姆斯泰恩, 帕特里克·謝德馬伊 申請人:Snecma發(fā)動機公司