專利名稱:樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法,所述樹狀結(jié)構(gòu)鏈接系統(tǒng)是通過模擬人、動物、機(jī)器人等而制成的并且包括多個在接頭處連接的鏈節(jié)。
背景技術(shù):
一種常規(guī)的產(chǎn)生表現(xiàn)人、動物等動作(出現(xiàn)在CG動畫、電影作品、游戲等中)的數(shù)據(jù)以及表現(xiàn)具有多個接頭的機(jī)器人(諸如人形機(jī)器人)的動作的數(shù)據(jù)的技術(shù)被披露在下列文獻(xiàn)中(1)Choi,K.J and Ko,H.S.“Online Motion Retargetting,”the Journal of Visualization andComputer Animation,vol.11,pp.223-235,2000;(2)Gleicher,M.And Litwinowicz,P.“Constraint-based Motion Adaptation,”the Journal of Visualization and Computer Animation,vol.9,pp.65-94,1998;(3)Lee,J.And Shin,S.Y.“A HierarchicalApproach to Interactive Motion Editing for Human-like Figures,”Proceedings of SIGGRAPH′99,pp.39-48,1999等。所有這些文獻(xiàn)都是關(guān)于這樣的技術(shù),即,通過優(yōu)化計算來計算滿足約束條件的動作(諸如一條腿不在地面上滑動等)以便將先前獲得的動作捕捉數(shù)據(jù)提供給各種鏈節(jié)長度等互不相同的人形樹狀結(jié)構(gòu)鏈接系統(tǒng)或者制作一個新的動作并將該動作的特征存儲起來。
在上述文獻(xiàn)(1)中所披露的技術(shù)中,計算動作以便在使端部鏈節(jié)的位置固定的同時使每一個接頭角度分別盡可能地接近一個給定的目標(biāo)值。在上述文獻(xiàn)(2)中所披露的技術(shù)中,通過大范圍優(yōu)化來計算符合約束條件的動作以使約束條件在整個動作中趨于平滑。在上述文獻(xiàn)(3)中所披露的技術(shù)中,利用分級樣條函數(shù)表示約束條件,從而在滿足約束條件的同時能夠改變身體中的一部分的姿態(tài)。例如對于參考文獻(xiàn)(2)的技術(shù),能夠?qū)φ麄€動作進(jìn)行優(yōu)化計算。
對于參考文獻(xiàn)(1)、(2)和(3)的技術(shù),需要諸如動作捕捉數(shù)據(jù)的參考動作。盡管動作捕捉的費(fèi)用與前者相比減少了并且捕捉數(shù)據(jù)的數(shù)據(jù)庫逐漸能夠在市場上得到,但是存在著這樣的缺點(diǎn),即,無論什么時候需要沒有包括在數(shù)據(jù)庫中的動作,都必須捕捉新的動作,由相同數(shù)據(jù)庫制作的動作是相似的,并且對所希望得到的動作進(jìn)行調(diào)整需要很多時間和很大努力。
對于參考文獻(xiàn)(2)和(3)的技術(shù),存在著這樣一個缺點(diǎn),即,由于采用大范圍優(yōu)化計算,因此它不能用于順序地輸入到實時或者交互式動作的產(chǎn)生中。
對于參考文獻(xiàn)(1)的技術(shù),存在著這樣一個缺點(diǎn),即,如果約束條件被加入到除了端部鏈節(jié)以外的鏈節(jié),那么計算結(jié)果可能會出現(xiàn)偏差。另外,還存在著這樣一個缺點(diǎn),即,如果將固定多個鏈節(jié),那么不能獲得這種計算結(jié)果。
市售的CG軟件包括一個用于限定鏈接結(jié)構(gòu)目標(biāo)的端部鏈節(jié)位置以制作動畫的界面,它存在著這樣一個缺點(diǎn),即,難以形成自然的姿態(tài),這是由于它僅能夠計算相當(dāng)于該樹狀結(jié)構(gòu)鏈接系統(tǒng)的一個分枝的部分鏈節(jié)序列(諸如臂、腿等)的接頭角度,并且不能改變整個樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)。
它僅能夠?qū)⑾薅ㄦ湽?jié)序列的端部鏈節(jié)為固定鏈節(jié)。這對于數(shù)值計算是行不通的,這是因為當(dāng)在多個固定鏈節(jié)之間僅有少量的接頭時在每一個約束條件之間會出現(xiàn)矛盾。
常規(guī)技術(shù)中沒有考慮球形接頭的活動范圍。
發(fā)明概述本發(fā)明的一個目的在于,提供一種樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法,該方法能夠克服上述常規(guī)技術(shù)中的缺陷,即使在沒有諸如動作捕捉數(shù)據(jù)的現(xiàn)有的動作數(shù)據(jù)的情況下也能夠通過確定一個或者多個鏈節(jié)的運(yùn)動軌跡的方便運(yùn)算及時地利用多個接頭和多個自由度(例如20個或者更多)使人形的整體產(chǎn)生類似人的動作,或者當(dāng)存在如動作捕捉數(shù)據(jù)的動作數(shù)據(jù)時通過運(yùn)算能夠?qū)@些數(shù)據(jù)進(jìn)行調(diào)整并且重新利用這些數(shù)據(jù)。
一種如本發(fā)明權(quán)利要求1所述的方法,其特征在于,通過為任何數(shù)量的任何鏈節(jié)設(shè)定任何數(shù)量的約束條件或者通過在產(chǎn)生中任意地添加或者刪除約束條件來產(chǎn)生滿足這些約束條件的樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作。
一種如本發(fā)明權(quán)利要求2所述的方法,其特征在于,所述約束條件包括鏈節(jié)的位置和姿態(tài)以及使這些得到改變的速度和角速度。
一種如本發(fā)明權(quán)利要求3所述的方法,其特征在于,所述約束條件包括接頭不超出相應(yīng)的特定動作范圍。
一種如本發(fā)明權(quán)利要求4所述的方法,其特征在于,所述接頭包括具有三個自由度的球形接頭,并且利用一種直觀地表示動作范圍的方法使所述球形接頭不超出它們的動作范圍。
一種如本發(fā)明權(quán)利要求5所述的方法,其特征在于,所述約束條件包括使具有所有自由度或者一部分自由度的接頭的接頭值和接頭速度盡可能地接近給定的接頭目標(biāo)值和給定的接頭目標(biāo)速度。
一種如本發(fā)明權(quán)利要求6所述的方法,其特征在于,根據(jù)與每一個約束條件的理想狀態(tài)之間的誤差考慮一個恢復(fù)力來實現(xiàn)所述約束條件。
一種如本發(fā)明權(quán)利要求7所述的方法,其特征在于,分別為所述約束條件設(shè)定優(yōu)先次序。
一種如本發(fā)明權(quán)利要求8所述的方法,其特征在于,利用一種逆向運(yùn)動學(xué)計算來產(chǎn)生樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài),根據(jù)約束條件的優(yōu)先次序?qū)δ嫦蜻\(yùn)動學(xué)計算的計算結(jié)果的精確度作出要求或者降低要求,并且利用一種奇異點(diǎn)低靈敏性動作分解方法來解決計算結(jié)果的奇異點(diǎn)問題。
一種如本發(fā)明權(quán)利要求9所述的方法,其特征在于,如果所述樹狀結(jié)構(gòu)鏈接系統(tǒng)具有現(xiàn)有的動作數(shù)據(jù),那么通過在動作過程中的運(yùn)算在動作鏈節(jié)中添加約束條件或者刪除約束條件。
根據(jù)本發(fā)明,即使沒有諸如動作捕捉數(shù)據(jù)的動作數(shù)據(jù),僅通過計算也能夠產(chǎn)生動作,現(xiàn)有的動作數(shù)據(jù)也可被處理,這是由于沒有執(zhí)行覆蓋整個動作的優(yōu)化,在實時接收輸入的同時能夠產(chǎn)生動作,并且例如通過限定鏈節(jié)的運(yùn)動軌跡,能夠容易地使諸如一個目標(biāo)物的動作從某一個位置移動到另一個位置。
根據(jù)權(quán)利要求2所述的方法,通過設(shè)定固定的鏈節(jié),能夠容易地產(chǎn)生在環(huán)境中受到接觸等約束的動作。
根據(jù)權(quán)利要求3或4所述的方法,通過設(shè)定接頭活動范圍,能夠防止產(chǎn)生還沒有被制作成人、動物、機(jī)器人等的姿態(tài)。另外,可調(diào)節(jié)身體的硬度和柔軟度。
根據(jù)權(quán)利要求5所述的方法,能夠容易地產(chǎn)生對某一現(xiàn)有動作作出少許改動的動作或者周期性動作。
根據(jù)權(quán)利要求6所述的方法,僅通過本地信息即可實現(xiàn)各種約束,并且能夠產(chǎn)生實時交互式的動作。
根據(jù)權(quán)利要求7或8所述的方法,可在任何位置設(shè)定任何數(shù)量的約束條件,并且即使這些約束條件是矛盾的,也可根據(jù)預(yù)先設(shè)定的優(yōu)先次序計算適合的動作。
根據(jù)權(quán)利要求9所述的方法,如果已經(jīng)存在動作數(shù)據(jù),那么可通過相同的運(yùn)算根據(jù)所述動作數(shù)據(jù)制作新的動作。
本發(fā)明能夠應(yīng)用于CG動畫、電影作品、游戲的產(chǎn)生以及人形機(jī)器人的操作等領(lǐng)域。在這些應(yīng)用領(lǐng)域中,本發(fā)明除了能夠用作獨(dú)立的軟件以外,還能夠用作包括任何圖形界面的軟件的計算引擎(calculation engine),以及還可插入到現(xiàn)有的CG軟件中。
在行走動作等的周期性動作中,使每一個周期中的姿態(tài)相同是重要的。這也能夠通過引入接頭目標(biāo)值來實現(xiàn)。通過設(shè)定接頭目標(biāo)值,如果約束條件給定的鏈節(jié)動作的運(yùn)動軌跡是周期性的,那么整體的動作也是周期性的。
考慮到上述效果,現(xiàn)在任何人都能夠通過運(yùn)算容易產(chǎn)生模擬人、動物、機(jī)器人等樹狀結(jié)構(gòu)鏈接系統(tǒng)的整體自然動作,而這些整體自然動作通常只能由專業(yè)的動畫處理人員付出大量的時間和工作才能夠獲得或者利用昂貴的設(shè)備捕捉真實的人或者動物的動作。另外,由于能夠?qū)崟r地產(chǎn)生動作,因此對于需要高交互性的領(lǐng)域(例如游戲),可以將本發(fā)明方法用作能夠產(chǎn)生根據(jù)實際情況而作出各種動作的計算引擎。
在機(jī)器人領(lǐng)域中,本發(fā)明可用作一種能夠操作具有多個接頭的機(jī)器人(諸如人形機(jī)器人)的直觀界面。由于這樣一種機(jī)器人具有多個必須操作的變量,因此目前用于執(zhí)行交互式操作的界面例如僅限于實現(xiàn)引導(dǎo)機(jī)器人行走方向。根據(jù)本發(fā)明,現(xiàn)在可在多種情況下引導(dǎo)機(jī)器人的各種動作。
另外,利用上述本發(fā)明所涉及的樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法還能夠形成兩個或者多個主要構(gòu)架。因此,本發(fā)明還涉及一種通過在主要構(gòu)架(諸如主要構(gòu)架動畫)之間的插值運(yùn)算產(chǎn)生樹狀結(jié)構(gòu)鏈接系統(tǒng)的一系列動作的方法。
附圖的簡要說明
圖1示出了利用本發(fā)明所涉及的產(chǎn)生動作數(shù)據(jù)的方法所形成的動作數(shù)據(jù)用于人形的一個實施例;圖2示出了實現(xiàn)本發(fā)明所涉及的產(chǎn)生動作數(shù)據(jù)的方法的一個程序的流程圖;圖3示出了本發(fā)明所涉及的產(chǎn)生動作數(shù)據(jù)的方法如何被用于人形;圖4示出了一個球形接頭的接頭活動范圍;圖5以圖表的形式示出了球形接頭的鏈接參數(shù);以及圖6示出了空間投影(ay,az,α)的球形接頭的接頭活動范圍。
優(yōu)選實施例的描述圖1示出了利用本發(fā)明所涉及的樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法所提供的一個模型的實施例。該人形樹狀結(jié)構(gòu)鏈接系統(tǒng)模型,例如是出現(xiàn)在計算機(jī)圖形中的人或者是用于操作具有多個接頭的機(jī)器人(諸如人形機(jī)器人)的直觀界面的模型。在該模型中,多個鏈節(jié)被連接在具有三個自由度的多個球形接頭和多個具有一個自由度的旋轉(zhuǎn)接頭處。
執(zhí)行本發(fā)明所涉及的動作數(shù)據(jù)產(chǎn)生方法的系統(tǒng)可用作一個計算引擎或者插入到可在計算機(jī)上執(zhí)行的獨(dú)立軟件或者其它軟件中。圖2中示出了本發(fā)明所涉及的動作數(shù)據(jù)產(chǎn)生方法的一個流程圖。盡管用于每一個輸入和輸出以及從外部操作的界面的一個示例(作為參考)也包括在該圖中,但是本發(fā)明的范圍是由粗線包圍的部分。
執(zhí)行本發(fā)明所涉及的動作數(shù)據(jù)產(chǎn)生方法的系統(tǒng)順序地包括一個通解(general-solution)/零間隔計算部分(zero-space calculationpart)3、接頭目標(biāo)速度計算部分4、優(yōu)化計算部分5和積分部分6。
通過點(diǎn)擊作為一個外部界面的鼠標(biāo)等(14、15),選擇顯示在一個顯示器(未示出)上的樹狀結(jié)構(gòu)鏈接系統(tǒng)中的改變其運(yùn)動軌跡的鏈節(jié)和固定所有間隔的鏈節(jié),接著輸入一個特定運(yùn)動軌跡鏈節(jié)選擇數(shù)據(jù)11和固定鏈節(jié)選擇數(shù)據(jù)12。在隨后的數(shù)據(jù)實時產(chǎn)生過程中這些鏈節(jié)也是能夠改變的。特定運(yùn)動軌跡鏈節(jié)選擇數(shù)據(jù)11被輸入到通解/零間隔計算部分3中。然后,通過移動作為外部界面的鼠標(biāo)、操縱桿(1)等使被選為改變其運(yùn)動軌跡的鏈節(jié)的運(yùn)動軌跡數(shù)據(jù)(2)被輸入到通解/零間隔計算部分3中。通解/零間隔計算部分3計算被限定其運(yùn)動軌跡的鏈節(jié)在其運(yùn)動軌跡上移動時的接頭速度的通解以及在不影響鏈節(jié)的運(yùn)動軌跡的情況下改變接頭速度的間隔(零間隔),接頭速度的通解的計算結(jié)果被提供給接頭目標(biāo)速度計算部分4,并且將零間隔的計算結(jié)果提供給優(yōu)化計算部分5。
也將固定鏈節(jié)選擇數(shù)據(jù)12輸入到接頭目標(biāo)速度計算部分4中。另外,例如利用現(xiàn)有動作數(shù)據(jù)等(13)中的鏈節(jié)位置(13)從現(xiàn)有動作數(shù)據(jù)中輸入要固定的鏈節(jié)的位置數(shù)據(jù)(定位數(shù)據(jù)8)。另外,輸入作為每一個接頭的目標(biāo)值的接頭目標(biāo)數(shù)據(jù)9?,F(xiàn)有動作數(shù)據(jù)中的接頭值(13)可用作該數(shù)據(jù)。另外,輸入每一個接頭的活動范圍。接收到上述數(shù)據(jù)的接頭目標(biāo)速度計算部分4分別計算目前位置和目前固定鏈節(jié)的接頭角度與理想狀態(tài)之間的誤差,計算反饋這些誤差的接頭目標(biāo)速度并且將結(jié)果輸入到優(yōu)化計算部分5中。
接收到接頭目標(biāo)速度的計算結(jié)果的優(yōu)化計算部分5計算在通解/零間隔計算部分3中計算的零間隔中在接頭目標(biāo)速度計算部分4中可能接近計算的接頭目標(biāo)速度的一個最佳接頭速度,并將結(jié)果提供給積分部分6。
積分部分6對所獲得的接頭速度進(jìn)行積分以獲得接頭值(jointvalue)數(shù)據(jù)。包含接頭值的時序數(shù)據(jù)和鏈節(jié)位置的時序數(shù)據(jù)的動作數(shù)據(jù)作為輸出數(shù)據(jù)被輸出以存儲在外部文件16中或者以圖形的形式顯示在屏幕17上。
實際動作產(chǎn)生的過程如下選擇所有固定間隔的鏈節(jié)(a,b,c);選擇實時限定其運(yùn)動軌跡的鏈節(jié)(p);如果需要的話,適當(dāng)?shù)卦O(shè)置接頭活動范圍;以及在動作已經(jīng)是已知的情況下,在對其復(fù)制的同時,利用適合的界面輸入用于限定鏈節(jié)p的運(yùn)動軌跡以限定其運(yùn)動軌跡。另外,此時,將在原始動作中的每一時刻的位置提供給固定間隔的鏈節(jié)a,b和c作為被固定的位置并且將在原始動作中的每一時刻的接頭值設(shè)為接頭目標(biāo)值。
此時產(chǎn)生的動作滿足在間隔中的特定位置處固定任何數(shù)量的鏈節(jié)的兩個或者多個約束中的全部或者其中一部分(它包含特定的位置隨著時間改變的情況),接頭角度盡可能地接近目標(biāo)值(它包含目標(biāo)值隨著時間改變的情況),并且接頭不會偏離活動范圍等。但是,約束條件不是必須限于這三種,如果它們是能夠以相同的形式表示的約束條件,那么它們可不受限制地合并。
下面將描述本發(fā)明的更具體的實施例。根據(jù)利用本發(fā)明的動作產(chǎn)生軟件,如果使用者適當(dāng)?shù)剡x擇限定其運(yùn)動軌跡的鏈節(jié)和固定其位置的鏈節(jié),并且分別設(shè)定所述運(yùn)動軌跡和位置,那么可隨時計算出考慮到接頭目標(biāo)值、接頭活動范圍等的最佳動作。圖3示出了在這樣的動作產(chǎn)生軟件中的界面的一個實例。這樣一種界面被稱為釘住(pin)/拖動界面。該界面的基本功能使在將由a,b,c和p表示的鏈節(jié)中的一些固定在間隔中的同時,能夠使其它的鏈節(jié)隨著使用者的引導(dǎo)而移動(拖動)。
通過釘住/拖動產(chǎn)生的動作的目的是產(chǎn)生下列的動作(1)被拖動的鏈節(jié)在限定的運(yùn)動軌跡上移動;(2)被固定的鏈節(jié)被固定在限定的位置處;(3)每一個接頭不偏離活動范圍;以及(4)每一個接頭值盡可能地接近給定的目標(biāo)值。
這符合強(qiáng)加了多個約束條件的逆向運(yùn)動學(xué)計算,并且顯然對于以解析的方式對其解答是不真實的。另外,嚴(yán)格的解答可能是不存在的,這是因為在每一個約束條件之間的矛盾性。例如,如果將鏈節(jié)拖出由固定位置限定的活動范圍,那么同時滿足條件(1)和(2)的解答是不存在的。
在本發(fā)明所涉及的方法的一個實施例中,首先,將雅可比行列式的數(shù)值解方法應(yīng)用到逆向運(yùn)動學(xué)問題中。另外,為了解決約束條件之間的矛盾,將四個約束條件分為兩個優(yōu)先次序的步驟。將上述四個約束條件中關(guān)于拖動鏈節(jié)的約束條件(1)設(shè)為較高的優(yōu)先次序,并且在不影響約束條件(1)的零間隔中尋找盡可能滿足其它三個約束條件的解答。因此,如果約束條件(1)與其它約束條件是矛盾的,那么將約束條件(1)設(shè)為較高的優(yōu)先次序,不考慮其它的約束條件。
為了應(yīng)付在約束條件(2)-(4)之間存在矛盾的情況,即當(dāng)在約束條件(1)的零間隔中尋找最佳解答時出現(xiàn)秩遞減的矩陣的情況,使用奇異點(diǎn)低靈敏性動作分解矩陣(SR-Inverse)(請參考Nakamura andHanafusa,“singular point low sensitivity motion decompositionof a joint form robot arm”Society of Instrument and ControlEngineers papers,453-459頁,1984),該奇異點(diǎn)低靈敏性動作分解矩陣通過使一個誤差接近一個奇異點(diǎn)而不會獲得一個非常大的解。因此,可設(shè)定任何數(shù)量的固定鏈節(jié)、任何的活動范圍以及任何的目標(biāo)值,并且由于如果這些約束條件之間存在矛盾,那么誤差會根據(jù)預(yù)定的權(quán)重來分布,因此不會輸出一個不自然的動作。另外,結(jié)合對利用SR-Inverse所形成的誤差進(jìn)行反饋的控制器以便在消除矛盾的情況下,它能夠返回到滿足約束條件的姿態(tài)。
關(guān)于樹狀結(jié)構(gòu)鏈接系統(tǒng)的接頭值的鏈節(jié)i的位置的雅可比被定為下列形式Ji≡∂ri∂θ---(1)]]>其中ri是鏈節(jié)i的位置,θ為調(diào)整樹狀結(jié)構(gòu)鏈接系統(tǒng)的接頭值的一個矢量,以及Ji是鏈節(jié)i關(guān)于θ的位置的雅可比。對于有效地計算雅可比行列式的方法請參見例如,D.E.Orin and W.W.Schrader,“E fficient Computation of the Jacobin for Robot Manipulators”International Journal of Robotics Research,vol.3,No.4,PP.66-75,1987。以下列形式利用雅可比行列式表示鏈節(jié)i和接頭速度之間的關(guān)系r.i=Jiθ.---(2).]]>作為用于計算諸如人、動物、機(jī)器人等的樹狀結(jié)構(gòu)鏈接系統(tǒng)的每一個鏈節(jié)的標(biāo)準(zhǔn)的鏈節(jié)被稱為路由鏈節(jié)(route link)。如果該路由鏈節(jié)沒有被固定到慣性坐標(biāo)系,那么其位移速度和角速度也被包含在 中。如果Ji是一個正方形規(guī)則矩陣,那么接頭速度可通過下列等式從鏈節(jié)i的速度中獲得θ.=Ji-1r.i---(3).]]>但是,由于諸如人、動物、機(jī)器人等的樹狀結(jié)構(gòu)鏈接系統(tǒng)通常具有30個或者更多的自由度,因此Ji不是正方形的并且具有冗余。在這種情況下,利用一個偽逆矩陣Ji#以下列形式表示等式(2)的通解θ.=Ji#r.i+(E-Ji#Ji)y---(4)]]>其中E是單位矩陣,而y是一個任意矢量。等式(4)的右手邊的第二個項利用冗余表示零間隔,并且利用其能夠在不改變鏈節(jié)i的速度的情況下尋找滿足其它約束條件的解。
下面將對本發(fā)明所涉及的方法的一個實施例中的用于產(chǎn)生動作的計算進(jìn)行描述。首先,計算在被拖動的鏈節(jié)可移動到限定位置處時的接頭速度的通解。計算被拖動的鏈節(jié)遵循被限定的運(yùn)動軌跡的位置rpref和速度 的 的通解。如果rp是被拖動的鏈節(jié)的當(dāng)前位置,利用下列等式計算考慮到反饋的目標(biāo)速度r.pref=r.pref+Kp(rpref-rp)---(5)]]>其中Kp是正定增益矩陣,利用關(guān)于被拖動的鏈節(jié)位置的接頭值的雅可比行列式Jp以下列形式表示 和 之間的關(guān)系r.p=Jpθ.---(6).]]>利用下列等式計算實現(xiàn)目標(biāo)速度rpd的接頭速度 的通解θ.=Jp#r.pd+(E-Jp#Jp)y---(7).]]>這里執(zhí)行反饋控制以補(bǔ)償積分誤差。另外,如果利用加權(quán)的偽逆矩陣代替正常的偽逆矩陣,那么可調(diào)節(jié)“硬度”,即,可調(diào)節(jié)每一個接頭的移動的難易程度。
現(xiàn)將描述關(guān)于其它約束條件的計算。等式(7)被重新寫成θ.=θ.0+Wy---(8)]]>其中W三E-Jp#Jp以及θ.0≡Jp#rpd..]]>假設(shè)具有Nf被固定的鏈節(jié),并且這些位置是用rFi(i=1,…,NF)表示。另外,假設(shè)具有ND被設(shè)定接頭目標(biāo)值的鏈節(jié),并且這些接頭目標(biāo)值用θD表示。假設(shè),NL接頭超出活動范圍,并且這些接頭值用θL表示。NL可在任何時間的動作過程中改變。利用這些以下列形式限定一個矢量PauxPaux≡(rF1T…rFNFTθDTθLT)T(9) 和接頭速度 之間的下列關(guān)系與等式(2)類似p.aux=Jauxθ.---(10).]]>下面描述Jaux的計算。任意矢量y的計算如下。首先,利用下面描述的一種方法計算Paux的目標(biāo)速度Pauxd。被等式(8)代入到等式(10)中獲得一個結(jié)果p.aux=p.aux0+JauxWy---(11)]]>其中Paux0.≡Jauxθ.0.]]>利用S≡JauxWy以及ΔPaux.≡Pauxd.-Paux0.]]>以將等式(11)改變?yōu)橄铝泻唵涡问降牡仁絊y=Δp.aux---(12)]]>由于S不必使?jié)M秩,利用SR-Inverse以解該等式。如果S的SR-Inverse被表示為S*,那么y被計算為y=S*Δp.aux---(13)]]>通過將等式(13)代入到等式(8)中可獲得接頭速度 ,并且通過對其進(jìn)行積分能夠得到每一個構(gòu)架的接頭角度數(shù)據(jù)。
對上述Jaux的計算進(jìn)行描述。如果對于固定的鏈節(jié),關(guān)于rFi的接頭值的雅可比行列式用JFi(i=1,…,NF)表示,那么它將保持下列關(guān)系r.Fi=JFiθ.---(14).]]>對于接頭目標(biāo)值是已知的接頭,其速度 和 之間的關(guān)系用下列形式表示θ.D=JDθ.---(15)]]>其中JD是一個矩陣,如果θD的第i個接頭與θ的第j個接頭相對應(yīng),那么第(i,j)個元素如果不是0就是1。類似地,θL的速度和 之間的關(guān)系用下列形式表示θ.L=JLθ.---(16)]]>其中JL是一個矩陣,如果θL的第i個接頭與θ的第j個接頭相對應(yīng),那么第(i,j)個元素如果不是0就是1。上述矩陣相加,Jaux成為了Jaux=JFi...JFNFJDJL---(17)]]>下面對與JFi、Jp和JL的球形接頭對應(yīng)的部分進(jìn)行描述。
現(xiàn)對上述Pauxd的計算進(jìn)行描述。利用下列等式計算固定的鏈節(jié)的目標(biāo)速度 r.Fid=KFi(rFiref-rFi)---(18)]]>其中rFiref是固定鏈節(jié)的位置并且KFi是正定增益矩陣。設(shè)定接頭目標(biāo)值的目標(biāo)速度 的計算如下θ.Dd=KD(θDref-θD)---(19)]]>其中θDref是設(shè)定接頭目標(biāo)值的一個矢量并且KD是一個正定增益矩陣。超出活動范圍的接頭的目標(biāo)速度計算如下 其中θLimax和θLimin分別是接頭角度的最大值和最小值,而KIi是一個正定增益函數(shù)。等式(19)和(20)僅可用于一個自由度的接頭。現(xiàn)將對球形接頭的處理進(jìn)行描述。
首先,描述球形接頭的接頭目標(biāo)值。接頭值Ri和接頭速度ωi分別是由一個3×3的旋轉(zhuǎn)矩陣和其角速度限定的。當(dāng)為球形接頭設(shè)定接頭目標(biāo)值RDI∈R3×3時,以下列方式獲得目標(biāo)速度。首先,計算一個誤差矢量eiei=12ΔRi(1,2)-ΔRi(2,3)ΔRi(1,3)-ΔRi(3,1)ΔRi(2,1)-ΔRi(3,2)---(21)]]>ΔRi≡RDiRiT(22)其中ΔRi(m,n)是ΔRi的第(m,n)個元素。隨后,計算目標(biāo)角速度ωDidωDid=-KDiei(23)其中KD1是一個正定增益矩陣。對于球形接頭,利用等式(21)-(23)代替等式(19)。對應(yīng)于球形接頭的成為JFi、JD和JL的一部分的雅可比行列式包括三列,每一列分別對應(yīng)于繞x,y和z的轉(zhuǎn)動。并且可象對中在相應(yīng)方向上的旋轉(zhuǎn)接頭那樣分別對每一列進(jìn)行計算。
接著,描述球形接頭的接頭活動范圍。由于球形接頭具有三個自由度,活動范圍被表示為在三維空間中的范圍。盡管具有各種表示這種姿態(tài)的方法,但是重要的是,選擇一種適于提高計算速度的方法。例如,如果通常利用歐拉角表示這種姿態(tài),由于是非線性的,因此活動范圍成為了一種非常復(fù)雜的形式,并且從而使計算速度降低。這里,將描述如何表示球形接頭的活動范圍以使其容易直觀地理解。如圖4中所示,總共利用三個參數(shù)表示球形接頭的活動范圍,其中兩個參數(shù)表示鏈節(jié)的方向,而另外一個表示鏈節(jié)的扭轉(zhuǎn)角。當(dāng)Ri是一個單位矩陣時,利用一個單位矢量di0表示鏈節(jié)的方向。通過使di0圍繞包含在一個垂直于di0的平面中的矢量ai來獲得鏈節(jié)的實際方向di,如圖5中所示。ai的長度為sin(γi/2),其中旋轉(zhuǎn)角為γi。扭轉(zhuǎn)角α被定義為所需的旋轉(zhuǎn)角以使Ri與從單位矩陣的狀態(tài)下使Ri圍繞ai轉(zhuǎn)動所得到的框架一致??紤]到上述環(huán)境,由球形接頭所得到的所有姿態(tài)可包括在一個以di0為中心的圓柱形中,其中半徑為1并且高度為2π。在該實施例中,假設(shè)對于所有的球形接頭,di0=(100)T,因此ai包含在yz平面中。即,它被表示為ai=(0ayaz)T。因此,活動范圍變成了一個圓柱形,如圖6中所示,該圓柱形具有一個在(ay,az,α)空間中的平行于α軸線的軸線。ay,az,和α的計算如下。由于di0=(100)T,因此di為di=Ridi0=(Ri(1,1)Ri(2,1)Ri(3,1))T(24)因此,所獲得的ay和az如下ay=Ri(3,1)2(1+Ri(1,1))---(25)]]>以及az=Ri(2,1)2(1+Ri(1,1))---(26)]]>由于在圍繞ai轉(zhuǎn)動后的坐標(biāo)系對應(yīng)于Ri的x軸,分別根據(jù)y軸和z軸上的角度獲得扭轉(zhuǎn)角α。盡管等式(25)和(26)在γi=±π時成為了一個奇異點(diǎn),這是由于它通常在活動范圍外,因此它在實施時不會成為一個問題。
如果能夠獲得對應(yīng)于一個特定姿態(tài)的三個參數(shù),那么接著確定它是否在活動范圍內(nèi)。如圖6中所示,通過將活動范圍表示為一個柱形多面體可進(jìn)行有效的計算。在該實施例中,利用一組三角表示在ay-az平面中的活動范圍,并且利用三角的每一個尖的上限值和下限值表示扭轉(zhuǎn)角α的活動范圍。對于這樣一種形式,以下列方式判斷其是否在活動范圍內(nèi)。首先,如果尋找包含(ay,az,0)的三角并且沒有發(fā)現(xiàn)該三角,那么判斷其在活動范圍之外。如果發(fā)現(xiàn)了這樣一個三角,那么判斷(ay,az,α)是否在上限和下限之間。如果確定其在活動范圍之外,那么計算在活動范圍內(nèi)使其返回的接頭目標(biāo)速度。為此,預(yù)先為每一個球形接頭設(shè)定標(biāo)準(zhǔn)姿態(tài)Rsi,并且計算朝向Rsi時目標(biāo)角速度ωLi。分別利用Rsi代替到等式(22)中的Rdi并且利用ωLi代替等式(23)中的ωDi。
在上述實施例中,假設(shè)固定鏈節(jié)的位置和接頭目標(biāo)值是不隨時間改變的。但是,容易擴(kuò)展到隨時間變化的情況,下面對其進(jìn)行描述。因此,利用其它裝置獲得的動作,諸如動作捕捉,可實時地被編輯以產(chǎn)生一個新的動作。需要擴(kuò)展到下面兩個方面。
(a)在參考動作中的固定鏈節(jié)的位置rFiref和速度 是利用正向運(yùn)動學(xué)計算獲得的,并且利用下列等式代替等式(18)。r.Fid=r.Firef+KFi(rFiref+rFi)---(27)]]>(b)在參考動作中的接頭值和接頭速度用作接頭目標(biāo)值和接頭目標(biāo)速度 ,并且利用下列等式代替等式(19)。θ.Dd=θ.Dref+KD(θDref-θD)---(28)]]>
權(quán)利要求
1.一種樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法,所述樹狀結(jié)構(gòu)鏈接系統(tǒng)是通過模擬人、動物、機(jī)器人等而制成的并且包括多個在接頭處連接的鏈節(jié),其特征在于,通過為任何數(shù)量的任何鏈節(jié)設(shè)定任何數(shù)量的約束條件或者通過在產(chǎn)生中任意地添加或者刪除約束條件來產(chǎn)生滿足這些約束條件的樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作。
2.如權(quán)利要求1所述的方法,其特征在于,所述約束條件包括鏈節(jié)的位置和姿態(tài)以及使這些得到改變的速度和角速度。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述約束條件包括接頭不超出相應(yīng)的特定動作范圍。
4.如權(quán)利要求3所述的方法,其特征在于,所述接頭包括具有三個自由度的球形接頭,并且利用一種直觀地表示動作范圍的方法使所述球形接頭不超出它們的動作范圍。
5.如權(quán)利要求1、2、3或4所述的方法,其特征在于,所述約束條件包括使具有所有自由度或者一部分自由度的接頭的接頭值和接頭速度盡可能地接近給定的接頭目標(biāo)值和給定的接頭目標(biāo)速度。
6.如權(quán)利要求1、2、3、4或5所述的方法,其特征在于,根據(jù)與每一個約束條件的理想狀態(tài)之間的誤差考慮一個恢復(fù)力來實現(xiàn)所述約束條件。
7.如權(quán)利要求1、2、3、4、5或6所述的方法,其特征在于,分別為所述約束條件設(shè)定優(yōu)先次序。
8.如權(quán)利要求7所述的方法,其特征在于,利用一種逆向運(yùn)動學(xué)計算來產(chǎn)生樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài),根據(jù)約束條件的優(yōu)先次序?qū)δ嫦蜻\(yùn)動學(xué)計算的計算結(jié)果的精確度作出要求或者降低要求,并且利用一種奇異點(diǎn)低靈敏性動作分解方法來解決計算結(jié)果的奇異點(diǎn)問題。
9.如權(quán)利要求1至8中任何一項所述的方法,其特征在于,如果所述樹狀結(jié)構(gòu)鏈接系統(tǒng)具有現(xiàn)有的動作數(shù)據(jù),那么通過在動作過程中的運(yùn)算在動作鏈節(jié)中添加約束條件或者刪除約束條件。
10.一種通過在主要構(gòu)架之間的插值運(yùn)算產(chǎn)生樹狀結(jié)構(gòu)鏈接系統(tǒng)的一系列動作的方法,其特征在于,所述主要構(gòu)架是利用如權(quán)利要求1至9中任何一項所述的方法產(chǎn)生的。
全文摘要
本發(fā)明涉及一種樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作的產(chǎn)生方法,所述樹狀結(jié)構(gòu)鏈接系統(tǒng)是通過模擬人、動物、機(jī)器人等而制成的并且包括多個在接頭處連接的鏈節(jié),其特征在于,通過為任何數(shù)量的任何鏈節(jié)設(shè)定任何數(shù)量的約束條件或者通過在產(chǎn)生中任意地添加或者刪除約束條件來產(chǎn)生滿足這些約束條件的樹狀結(jié)構(gòu)鏈接系統(tǒng)的姿態(tài)和動作。
文檔編號G06T13/40GK1420453SQ0212850
公開日2003年5月28日 申請日期2002年8月9日 優(yōu)先權(quán)日2001年8月9日
發(fā)明者中村仁彥, 山根克 申請人:東京大學(xué)