反向动力学(Inverse kinematics) 学习笔记
2018-03-06 本文已影响106人
勺子波
1 背景
1.1 骨骼动画
将动画分为两个部分:用于绘制外观的蒙皮,以及用于控制动作的骨架(摘自维基百科)。这些骨架以树状结构组织,每片骨骼包含自身相对于父物体的位置、旋转、缩放信息。
1.2 前向动力学(FK)和反向动力学(IK)
前向动力学是给定运动骨骼点的位置、旋转、缩放信息,计算出骨骼点的位置。
反向动力学则与之相反,先给出骨骼点的位置,然后要求出运动骨骼以什么样的位移、旋转、缩放可以使得骨骼点到达指定的位置。
用加法来做比喻的话,前向动力学是已知算式1+1+3,求结果;反向动力学是已知结果5,求算式。可以看出,反向动力学计算得到的结果往往不是唯一的,因此比前向动力学要复杂许多。
2 反向运动系统的运算
由于对前向动力学算式求逆很困难,并且有可能得到空的结果空间,现在的做法往往是通过迭代优化来获得近似的最优解。核心思想是使用泰勒级数展开,这样比起原始算式,更容易求逆并求解。
2.1 Jacobian inverse technique
2.2 Heuristic Methods
2.2.1 CCD
2.2.2 FABRIK