一种解析的反向运动学方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

的最短距离,为所求出的JP。一。。
求关节只一。的旋转四元数,如图5所示。先对向量 只.。只、只一。‘只‘作单位化处理,如下:
一=只一1只=(以一只.1)/I匕一巳。l
(4)
也=只一l。只’=(Pn’P。一l’)/lP。’一P。一1’I
(5)
则由向量,’。旋转到向量仃2的角度。和单位旋转轴e,分别求得
目前用得较多的还是传统的求解方法,它主要有两类方 法,即解析的方法M’71和迭代的方法¨以“。懈析的方法直接给 出公式来计算中间关节的位置和方向,效率非常高。目前该方 法的应用主要针对三种关节情形哺.7],本文将对其进行扩展, 提出一种在多关节的情形下使用该方法进行反向运动学求解。 迭代的方法主要有循环坐标下降(CCD)方法喁]、伪逆方 法一“u和基于非线性优化技术¨21的求解方法。CCD方法是 一种启发式的迭代搜索方法,它通过从关节链的末端开始向后
只j
只j
只j

P-
图 1粪荔摹票墨富
图2给定末端节点
图3分析求解
计算起始节点P0到Pn一,’的距离d,如果d<三d;,则所求
的只一。‘位置合法;否则,如图4所示,取起始点Po为球心,以
n.2
。乏或为半径,该球将切以只。为球心、dn一,为半径的球为一球
冠,则合法的点必在此球冠上。因此求出的P川。位置可为
置。由肘’的位置,与前面类似可计算出关节肘的旋转四元数
Q肼和关节s的旋转四元数Q。。
2实验结果
本文在CAL3D和OSG开源库基础上给出两个例子测试 本文的算法效果,其中CAL3D库负责读取人体骨架信息,OSG 负责渲染。第一个例子以实现手捉住杯子的反向运动学求解 为例,实现效果如图7所示。第二个例子实现了双手抱球的效 果,如图8所示。
c瑚(一)=nI·也昔日=arg cos(^·门2)
(6)
e=^×th/J q xnz
(7)
则Ⅳ’的旋转四元数可以表示为
Q=(吼,g,。吼。‰)
(8)
其中:吼=sin(O/2)e,,qr=sin(0/2)e,,吼=sirI(a/2)乞,‰=o唱(∥2)。
1.2三个关节情形的解析求解方法
当最后剩下三个节点时,如图6所示,求中间节点M’的位 置及对应旋转四元数。由已知Ⅳ,的位置,则原问题简化为对 起始节点为s、效应器位置为Ⅳ’的求中间节点肘’的位置及对 应旋转问题。文献[7]有关于此问题求解的详细介绍,本文只 给出其主要步骤。
以一l’=只‘+d。.1(P0一只。)/IPo—P.‘I
(3)
此时可能会出现整体关节链放大但局部关节链存在缩小
的效果。本文采用如下的折中方法来改善效果。具体做法为:
以P0为球心、l PoP。。Il Po只一:l/I t op川l为半径的球,同以
P。。为球心、破一。为半径的球相交于一圆,再计算点PI一。到该圆
上面的两个例子中,系统通过输入初始的关节链结构和末 端效应器的位置及旋转变量,通过本算法对中间关节进行反向 运动学求解,输出一段逼真的动画。实验证明,该方法能很实 时地满足大多数交互控制的需求。
经测试,对该情况采用CCD迭代方法实现的效果与之相 似,但该方法相比目前常用反向运动学求解方法,优势在于直 接给出公式来求解关节链中所有待求关节的位置和旋转变量。 与传统的迭代方法相比,本方法一次计算出结果,省却了繁琐 的迭代计算,具有更高的求解效率。其劣势在于它不是通过各 关节逐步逼近目标位置的,而是尝试直接给出结果,因而有些 情况会有些失真(如图7中的第二幅图,手腕关节偏转过大 等)。对此情况,本方法可以结合动力学模型和其他一些关节 约束条件进行分析求解,从而获得更逼真的效果,这是下一步 计划做的工作。
他图片作训练的方式。图6为分别采用左转25。、300和60。人 耳图片作为测试的识别结果。其中,横坐标为线性判别分析得 到的投影空间的维数,纵坐标为识别率。可以看出,随着特征 空间维数的增加,识别率也在提高。除了左转600图片识别率 较低,为53.2%外,其他的识别率均较稳定。与基于势能阱特 征的识别方法相比,PCA+LDA方法的识别率有明显提高。
图4特殊情况 图5求解关节旋转 图6求解中间节点
对此情形,由三角形性质,三条边边长都固定,固定其中两
点,则另一点必在一圆周上。取该圆平面同向量SⅣ的交点为
C,圆的半径为r,向量助,,轴沿圆心在圆上的投影,向量哟
£序阳S ̄,的叉乘。得出的值如下所示:
n=SN’/ISN’I
(9)来自百度文库
£,=[一y+(y·,,)n]/I—y+(Y·,,),}l
依次调整各个关节的角度,每次调整都使终端逼近目标位置。 求解的过程是在反复迭代过程中进行的,它对于最终的求解有 一定的限定,如果迭代次数没有超过预定次数,且终端和目标 位置的距离在能够控制的误差范围之内,则求解成功;反之则 认为无解。伪逆方法通过构造雅可比矩阵逐步迭代来获取最 终结果。非线性优化方法将关节角度作为白变量,把前末端位 置与约束位置之间的距离作为目标函数并使用修正的BFGS 算法优化求解。迭代方法的计算效率较低,可能需要很多次迭 代后才得到一个最终结果;在精确结果存在的情况下有时只能 得到近似的解甚至由于迭代次数过多而无法得到解。
doi:10.3969/j.issn.1001-3695.2009.06.111
Kind of analytical inverse kinematics method
Dianzi‰妙,Hangzhou WANG Yi—gang,WU Zi—zhao,CHEN Xiao·diao
(Institute ofGraphics&Image,Hangzhou
假设关节链及末端效应器如图3所示,待求的P。.。。必在 以只’为球心、d。为半径的球面上。在此以只一,到只,,’移动
最小为原则来确定只一。’。如图3所示,画只一。与P。’的连线,
单位化该连线向量,并求出只一。’:
t'l;(P。一l—P。。)/IP。一I—t’I
(1)
P。一l。=P。。+d。.1n
(2)
的位置和旋转变量。同传统的迭代方法相比,该方法省却了繁琐的迭代计算,具有更高的求解效率,可以应用于
角色动作、运动轨迹的设计、编辑及优化等交互性强和实时性要求高的应用中。
关键词:反向运动学;多关节点;角色动画
中图分类号:TP391
文献标志码:A
文章编号:1001-3695(2009)06.2368—02
第26卷第6期 2009年6月
计算机应用研究 Ap——pli—c—ation R——es—e—a.r..ch of Computers
V01.26 No.6 Jun.2009
一种解析的反向运动学方法术
王毅刚,吴子朝,陈小雕
(杭州电子科技大学图形图像研究所,杭州310018)
摘要:针对多关节的反向运动学(IK)提出一种解析的求解方法,直接给出公式来求解关节链中所有待求关节
3结束语
本文提出了一种解析的反向运动学方法,可适用于对虚拟
人关节的仿真控制。本文方法针对具有三个以上关节的关节
链给出解析的公式用于计算中间各个关节的新位置及对应的
旋转分量,具有很高的计算效率。实验结果也表明该方法能较
好地满足高实时性的交互场景的应用需求。下一步的研究工
作将考虑基于关节约束的解析方法在多关节链反向运动学求
主要研究方向为虚拟现实、计算机动画;陈小雕(1976.),男。博士,主要研究方向为计算机辅助几何设计、计算机图形学等.
万方数据
第6期
王毅刚,等:一种解析的反向运动学方法
·2369·
关节点只一。的新位置。如图2所示,由已知的初始关节位置容 易得出关节的长度。令dl为P。P…的长度,无论末端效应器位 于哪一点,其关节的长度应该保持不变,根据此关节移动的特 点来分析推导中间关节的位置和它们对应的旋转变量。
1解析的求解方法
如图l所示,给定初始关节链P0…P州P川只和末端效应 器P。’的位置及旋转分量,对应的多关节反向运动学的求解问 题可以描述为:求解出中间节点P。…只一:只一。对应的新位置 P:…t一,戌一:P:一,及对应的旋转变量。
本文首先给出了关于解的存在性的简单判断方法,即起始 节点到末端效应器的长度若大于关节链的长度,则无解。在可 能有解的情况下,本文采用逐步简化的思路,先给出解析的方 法来确定关节点P。.。的新位置,从而将n个关节的反向运动 学问题转换为n—1个关节的反向运动学问题;依次求解 P。.:、只.,、…、P3的位置及其旋转变量,直到剩下的关节个数 为3。当n=3时,对其应用解析的求解方法拍’“。 1.1关节点尸。.,新位置的确定
(10)
y=u×,t
(11)
则角度a、圆心C和半径r可直接计算:
c蚰(口)=(遥一斫一I sⅣ7 12)/(一2dI SN’1)
(12)
c;眦lc∞(o)
(13)
r=dl sin(o)
(14)
由此,关节的位置肘’可以算出为
M’=c+r[U cos(口)+y sin(伊)]
(15)
其中:角度o∈(o,21T),则可取0=0代人式中计算出M’的位
本节针对Ⅳ(N>3)个关节的情形给出解析的方法来确定
收稿日期:2008—07·23;修回日期:2008.09.16
基金项目:国家自然科学基金资助项目(60773179);国家“973”计划资助项目
(2(K14CB318000)
作者简介:王毅刚(1971一),男,河南嵩县人,教授,主要研究方向为虚拟现实(yigallg.wang@hdu.edu.cn);吴子朝(1982-),男,硕士研究生,
解中,应用或结合平衡及一些动力学的解析方法在反向运动学
中的应用,以及对应的优化问题。
(下转第2373页)
万方数据
第6期
董冀媛,等:基于力场收敛特征的多姿态人耳识别
·2373·
仅为75.3%。
表1 势能阱特征识别结果
偏转角度 250 300 600
识别率/% 75.3 72.2 48.1
实验2先提取二值化的力场收敛特征,使用Fisher判别 分析的方法来分类,其中用主元分析的方法来降维,解决判别 分析的小样本问题。仍然采用图像库中的一幅图片作测试,其
iterative methods,the new method needed no iterative computation and had better computation efficiency.It seemed more suit—
able for hish interactivity and real-time applications such硒motion editing.Examples show the efficiency of the new method.
Key words:inverse kinematics(IK);multi-joint;character animation
0引言
虚拟角色运动的生成和编辑是计算机动画研究的重点之 一…。在计算机中,虚拟角色通常由一组用刚体表示的骨骼 组成,骨骼与骨骼之间由关节连接。当给定各个关节的角度 时,可以很容易应用正向运动学方法得到虚拟角色的姿态。在 交互式操作、轨迹控制等许多应用中需要根据虚拟角色某一骨 骼(通常是肢体末端)的方位反求其他各个关节的旋转角度, 即反向运动学的求解问题。许多学者研究了通过建模的求解 方法,如基于人体运动学、基于动力学等旧1。建模的方法理论 上可以较好地模拟虚拟角色的运动,但在实际应用中也存在一 些问题,具体表现为:若模型过于简单,不能较好地反映真实的 运动;若模型过于复杂,则很难找到合适的求解方法。最近也 有人通过对大量的样本进行学习和聚类,然后对已有运动数据 进行插值的方法来求解反向运动学问题p。J。依靠统计学习 和插值的方法来模拟物体运动的客观规律也不是一件容易的 事情,它对样本有着非常高的要求。
310018,Ch/na)
c拙.Directly Abstract:This paper presented an analytical inverse kinematics method for the multi-joint
computed the new
positions as well as the corresponding rotation component of all joints by analytical formulae.ContraSting with the conventional
相关文档
最新文档