IK的雅可比矩阵的两个伪逆之间的差异?

时间:2018-10-26 01:31:37

标签: inverse-kinematics skeletal-animation

嗨,我正在尝试将IK应用于我的骨架系统,并且正在在线阅读一些文章,而这样做的方法之一是使用Jacobian矩阵的伪逆。 但是,我已经看到了2种形式的伪逆,并且我想知道这两种表示的区别是什么。

第一个形式是J + =((Jt * J).inverse())* Jt

第二种形式是J + = Jt *((J * Jt).inverse())

说实话,我什至不确定他们如何获得第二种形式,目前我只能得出第一种形式。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

通常,矩阵的逆具有将其与任一侧的原始矩阵相乘的特性,从而生成恒等矩阵。

A * A^-1 = A^-1 * A = I

但是,对于伪逆而言,这不再是正确的。对于伪逆,顺序很重要(独立于矩阵可能不是正方形的事实)。第一种形式用于左乘法,第二种形式用于右乘法:

J+ * J = I  <=  J+ = (J^T * J)^-1 * J^T
J * J+ = I  <=  J+ = J^T * (J * A^T)^-1

如果使用伪逆来求解线性系统,则在具有列向量(即J x = bJ+ J x = I x = x = J+ b)时使用第一种形式,在有行时使用第二种形式向量(即x J = b)。