999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種解析的反向運動學方法

2009-01-01 00:00:00王毅剛吳子朝陳小雕
計算機應用研究 2009年6期

摘 要:針對多關節的反向運動學(IK)提出一種解析的求解方法,直接給出公式來求解關節鏈中所有待求關節的位置和旋轉變量。同傳統的迭代方法相比,該方法省卻了繁瑣的迭代計算,具有更高的求解效率,可以應用于角色動作、運動軌跡的設計、編輯及優化等交互性強和實時性要求高的應用中。

關鍵詞:反向運動學;多關節點;角色動畫

中圖分類號:TP391文獻標志碼:A

文章編號:1001-3695(2009)06-2368-02

doi:10.3969/j.issn.1001-3695.2009.06.111

Kind of analytical inverse kinematics method

WANG Yi-gang, WU Zi-zhao, CHEN Xiao-diao

(Institute of Graphics Image, Hangzhou Dianzi University, Hangzhou 310018, China)

Abstract:

This paper presented an analytical inverse kinematics method for the multi-joint case. Directly computed the new positions as well as the corresponding rotation component of all joints by analytical formulae. Contrasting with the conventional iterative methods, the new method needed no iterative computation and had better computation efficiency. It seemed more suitable for high interactivity and real-time applications such as motion editing. Examples show the efficiency of the new method.

Key words:inverse kinematics (IK); multi-joint; character animation

0 引言

虛擬角色運動的生成和編輯是計算機動畫研究的重點之一[1]。在計算機中,虛擬角色通常由一組用剛體表示的骨骼組成,骨骼與骨骼之間由關節連接。當給定各個關節的角度時,可以很容易應用正向運動學方法得到虛擬角色的姿態。在交互式操作、軌跡控制等許多應用中需要根據虛擬角色某一骨骼(通常是肢體末端) 的方位反求其他各個關節的旋轉角度,即反向運動學的求解問題。許多學者研究了通過建模的求解方法,如基于人體運動學、基于動力學等[2]。建模的方法理論上可以較好地模擬虛擬角色的運動,但在實際應用中也存在一些問題,具體表現為:若模型過于簡單,不能較好地反映真實的運動;若模型過于復雜,則很難找到合適的求解方法。最近也有人通過對大量的樣本進行學習和聚類,然后對已有運動數據進行插值的方法來求解反向運動學問題[3~5]。依靠統計學習和插值的方法來模擬物體運動的客觀規律也不是一件容易的事情,它對樣本有著非常高的要求。

目前用得較多的還是傳統的求解方法,它主要有兩類方法,即解析的方法[6,7]和迭代的方法[8~11]。解析的方法直接給出公式來計算中間關節的位置和方向,效率非常高。目前該方法的應用主要針對三種關節情形[6,7],本文將對其進行擴展,提出一種在多關節的情形下使用該方法進行反向運動學求解。迭代的方法主要有循環坐標下降(CCD) 方法[8]、偽逆方法[9~11]和基于非線性優化技術[12]的求解方法。CCD方法是一種啟發式的迭代搜索方法,它通過從關節鏈的末端開始向后依次調整各個關節的角度,每次調整都使終端逼近目標位置。求解的過程是在反復迭代過程中進行的,它對于最終的求解有一定的限定,如果迭代次數沒有超過預定次數,且終端和目標位置的距離在能夠控制的誤差范圍之內,則求解成功;反之則認為無解。偽逆方法通過構造雅可比矩陣逐步迭代來獲取最終結果。非線性優化方法將關節角度作為自變量,把前末端位置與約束位置之間的距離作為目標函數并使用修正的BFGS算法優化求解。迭代方法的計算效率較低,可能需要很多次迭代后才得到一個最終結果;在精確結果存在的情況下有時只能得到近似的解甚至由于迭代次數過多而無法得到解。

1 解析的求解方法

如圖1所示,給定初始關節鏈P0…Pn-2Pn-1Pn和末端效應器Pn′的位置及旋轉分量, 對應的多關節反向運動學的求解問題可以描述為:求解出中間節點P1…Pn-2Pn-1對應的新位置P′1…P′n-3P′n-2P′n-1及對應的旋轉變量。

本文首先給出了關于解的存在性的簡單判斷方法,即起始節點到末端效應器的長度若大于關節鏈的長度,則無解。在可能有解的情況下,本文采用逐步簡化的思路,先給出解析的方法來確定關節點Pn-1的新位置,從而將n個關節的反向運動學問題轉換為n-1個關節的反向運動學問題;依次求解Pn-2、Pn-3、…、P3的位置及其旋轉變量,直到剩下的關節個數為3。當n=3時,對其應用解析的求解方法[6,7]

1.1 關節點Pn-1新位置的確定

本節針對N(N>3)個關節的情形給出解析的方法來確定關節點Pn-1的新位置。如圖2所示,由已知的初始關節位置容易得出關節的長度。令di為PiPi+1的長度,無論末端效應器位于哪一點,其關節的長度應該保持不變,根據此關節移動的特點來分析推導中間關節的位置和它們對應的旋轉變量。

假設關節鏈及末端效應器如圖3所示,待求的Pn-1′必在以Pn′為球心、dn-1為半徑的球面上。在此以Pn-1到Pn-1′移動最小為原則來確定Pn-1′。如圖3所示,畫Pn-1與Pn′的連線,單位化該連線向量,并求出Pn-1′:

n=(Pn-1-Pn′)/Pn-1-Pn′(1)

Pn-1′=Pn′+dn-1n(2)

計算起始節點P0到Pn-1′的距離d,如果d<∑n-1i=0di,則所求的Pn-1′位置合法;否則,如圖4所示,取起始點P0為球心,以∑n-2i=0di為半徑,該球將切以Pn′為球心、dn-1為半徑的球為一球冠,則合法的點必在此球冠上。因此求出的Pn-1′位置可為

Pn-1′=Pn′+dn-1(P0-Pn′)/P0-Pn′(3)

此時可能會出現整體關節鏈放大但局部關節鏈存在縮小的效果。本文采用如下的折中方法來改善效果。具體做法為:以P0為球心、P0Pn′P0Pn-2/P0Pn-1為半徑的球,同以Pn′為球心、dn-1為半徑的球相交于一圓,再計算點Pn-1到該圓的最短距離,為所求出的Pn-1′。

求關節Pn-1的旋轉四元數,如圖5所示。先對向量Pn-1Pn、Pn-1′Pn′作單位化處理,如下:

n1=Pn-1Pn=(Pn-Pn-1)/Pn-Pn-1(4)

n2=Pn-1′Pn′=(Pn′-Pn-1′)/Pn′-Pn-1′(5)

則由向量n1旋轉到向量n2的角度θ和單位旋轉軸e,分別求得

cos(θ)=n1#8226;n2θ=arg cos(n1#8226;n2)(6)

e=n1×n2/n1×n2(7)

則N′的旋轉四元數可以表示為

Q=(qx,qy,qz,qw)(8)

其中:qx=sin(θ/2)ex,qy=sin(θ/2)ey,qz=sin(θ/2)ez,qw=cos(θ/2)。

1.2 三個關節情形的解析求解方法

當最后剩下三個節點時,如圖6所示,求中間節點M′的位置及對應旋轉四元數。由已知N′的位置,則原問題簡化為對起始節點為S、效應器位置為N′的求中間節點M′的位置及對應旋轉問題。文獻[7]有關于此問題求解的詳細介紹,本文只給出其主要步驟。

對此情形,由三角形性質,三條邊邊長都固定,固定其中兩點,則另一點必在一圓周上。取該圓平面同向量SN′的交點為C,圓的半徑為r,向量U為y軸沿圓心在圓上的投影,向量V為U和SN′的叉乘。得出的值如下所示:

n=SN′/|SN′|(9)

U=[-y+(y#8226;n)n]/-y+(y#8226;n)n(10)

V=U×n(11)

則角度a、圓心c和半徑r可直接計算:

cos(a)=(d22-d21-SN′2)/(-2d1SN′)(12)

c=nd1cos(a)(13)

r=d1sin(a)(14)

由此,關節的位置M′可以算出為

M′=c+r[U cos(θ)+V sin(θ)](15)

其中:角度θ∈(0,2π),則可取θ=0代入式中計算出M′的位置。由M′的位置,與前面類似可計算出關節M的旋轉四元數QM和關節S的旋轉四元數QS。

2 實驗結果

本文在CAL3D和OSG開源庫基礎上給出兩個例子測試本文的算法效果,其中CAL3D庫負責讀取人體骨架信息,OSG負責渲染。第一個例子以實現手捉住杯子的反向運動學求解為例,實現效果如圖7所示。第二個例子實現了雙手抱球的效果,如圖8所示。

上面的兩個例子中,系統通過輸入初始的關節鏈結構和末端效應器的位置及旋轉變量,通過本算法對中間關節進行反向運動學求解,輸出一段逼真的動畫。實驗證明,該方法能很實時地滿足大多數交互控制的需求。

經測試,對該情況采用CCD迭代方法實現的效果與之相似,但該方法相比目前常用反向運動學求解方法,優勢在于直接給出公式來求解關節鏈中所有待求關節的位置和旋轉變量。與傳統的迭代方法相比,本方法一次計算出結果,省卻了繁瑣的迭代計算,具有更高的求解效率。其劣勢在于它不是通過各關節逐步逼近目標位置的,而是嘗試直接給出結果,因而有些情況會有些失真(如圖7中的第二幅圖,手腕關節偏轉過大等)。對此情況,本方法可以結合動力學模型和其他一些關節約束條件進行分析求解,從而獲得更逼真的效果,這是下一步計劃做的工作。

3 結束語

本文提出了一種解析的反向運動學方法,可適用于對虛擬人關節的仿真控制。本文方法針對具有三個以上關節的關節鏈給出解析的公式用于計算中間各個關節的新位置及對應的旋轉分量,具有很高的計算效率。實驗結果也表明該方法能較好地滿足高實時性的交互場景的應用需求。下一步的研究工作將考慮基于關節約束的解析方法在多關節鏈反向運動學求解中,應用或結合平衡及一些動力學的解析方法在反向運動學中的應用,以及對應的優化問題。

參考文獻:

[1]李淳,王兆其,夏時洪,等.基于局部支撐姿態的逆運動學求解[J].計算機學報, 2007, 30(11):1982-1988.

[2]徐孟, 孫守遷, 潘云鶴. 虛擬人運動控制技術的研究[J]. 系統仿真學報, 2003,15(3):338-342.

[3]ROSE C, SLOAN P, COHEN M. Artist-directed inverse-kinematics using radial basis function interpolation[J]. Computer Graphics Forum, 2001, 20(3):239-250.

[4]KOVAR L, GLEICHER M. Automated extraction and parameterization of motions in large datasets[J]. ACM Trans on Graphics, 2004,23(3):559-568.

[5]GROCHOW K, MARTIN L, HERTZMANN A, et al. Style-based inverse kinematics[J] . ACM Trans on Graphics, 2004, 4(3):522-531.

[6]KALLMANN M. Analytical inverse kinematics with body posture control[J].Computer Animation and Virtual Worlds,2008,19(2):79-91.

[7]TOLANI D,GOSWAMI A, BADLER N I . Real-time inverse kinematics techniques for anthropomorphic limbs[J].Graphical Models, 2000, 62(5): 353-388.

[8]WELMAN C. Inverse kinematics and geometric constraints for articulated figure manipulation[D]. Vancouver: Simon Fraser University, 1993.

[9]WHITNEY D E. Resolved motion rate control of manipulators and human prostheses[J].IEEE Trans on Man-Machine Systems,1969,10(2):47-53.

[10]WOLOVICH W A, ELLIOT H. A computational technique for inverse kinematics[C]//Proc of the 23rd IEEE Conference on Decision and Control. 1984:1359-1363.

[11]WAMPLER II C W. Manipulator inverse kinematic solutions based on vector formulations and damped least squares methods[J]. IEEE Trans on Systems,Man and Cybernetics,1986,16(1):93-101.

[12]ZHAO J,BADLER N. Inverse kinematics positioning using nonlinear programming for highly articulated figures[J]. ACM Trans on Graphics, 1994,13(4):313-336.

主站蜘蛛池模板: 99视频全部免费| 久久精品娱乐亚洲领先| 蜜桃视频一区二区| AV在线麻免费观看网站| 国产一区在线观看无码| 久久精品国产一区二区小说| 日韩第九页| 韩国v欧美v亚洲v日本v| 国产av无码日韩av无码网站| 午夜视频免费试看| 亚洲黄网视频| 国产一区二区影院| 欧美成人精品一级在线观看| 亚洲性视频网站| 国产无码高清视频不卡| 91青青视频| 波多野结衣一区二区三区88| 亚洲国产理论片在线播放| 精品一区二区三区视频免费观看| 国产精品一线天| 精品伊人久久大香线蕉网站| 国产精品 欧美激情 在线播放| 精品国产香蕉伊思人在线| 99久久精品美女高潮喷水| 久久久久久午夜精品| 亚洲福利网址| 色婷婷在线影院| 免费A级毛片无码免费视频| 九九精品在线观看| 99福利视频导航| 久久国产精品嫖妓| 亚洲熟女中文字幕男人总站 | 国产午夜精品鲁丝片| 91原创视频在线| 久久综合丝袜日本网| 99尹人香蕉国产免费天天拍| 成人免费网站久久久| 国产精品精品视频| 青青国产在线| 无码精油按摩潮喷在线播放| 久久亚洲综合伊人| 狠狠做深爱婷婷久久一区| 成人精品免费视频| 中文字幕免费播放| 看你懂的巨臀中文字幕一区二区| 中文字幕第1页在线播| 成人精品区| 天天做天天爱天天爽综合区| 凹凸国产分类在线观看| 国产成人av一区二区三区| av午夜福利一片免费看| 毛片免费高清免费| 久久精品国产电影| 欧类av怡春院| 欧美三級片黃色三級片黃色1| 国产视频入口| 国产人人乐人人爱| 97se亚洲| 69免费在线视频| 国产亚洲高清在线精品99| 99视频只有精品| 亚洲国产中文欧美在线人成大黄瓜 | 特级毛片免费视频| 爆乳熟妇一区二区三区| 国产乱子伦视频在线播放| 亚洲乱伦视频| 日韩不卡高清视频| 日韩欧美综合在线制服| 亚洲中文无码h在线观看 | 噜噜噜久久| 国产成人a毛片在线| www.亚洲色图.com| 亚洲午夜福利精品无码| 久久成人国产精品免费软件| 国产精品yjizz视频网一二区| 久久精品人人做人人爽97| 欧美精品在线看| 99在线视频免费| 亚洲精品午夜无码电影网| 九九九国产| 国产九九精品视频| 国产激情无码一区二区APP|