【问题标题】:Difference between the two pseudo inverses of Jacobian matrices for IK?IK 的雅可比矩阵的两个伪逆矩阵之间的区别?
【发布时间】:2018-10-26 01:31:37
【问题描述】:
您好,我正在尝试在我的骨架系统中实现 IK,并且正在在线阅读一些文章,其中一种方法是使用雅可比矩阵的伪逆矩阵。
但是,我见过 2 种形式的伪逆,我想知道这两种表示的区别是什么。
第一种形式是 J+ = ((Jt*J).inverse()) * Jt
第二种形式是J+ = Jt * ((J*Jt).inverse())
说实话,我什至不确定他们是如何得到第二种形式的,我目前只能推导出第一种形式。
任何帮助将不胜感激!
【问题讨论】:
标签:
inverse-kinematics
skeletal-animation
【解决方案1】:
通常,矩阵的逆矩阵具有将其与任一侧的原始矩阵相乘产生单位矩阵的性质。
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 = b as J+ J x = I x = x = J+ b),当你有行向量时使用第二种形式(即@ 987654325@)。