IK 的雅可比矩阵的两个伪逆之间的区别?

Difference between the two pseudo inverses of Jacobian matrices for IK?

您好,我正在尝试将 IK 实现到我的骨架系统,并在网上阅读了一些文章,其中一种方法是使用雅可比矩阵的伪逆。 但是,我看到了伪逆的两种形式,我想知道这两种表示的区别是什么。

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

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

说实话,我也不知道他们是怎么得到第二个形式的,目前只能推导出第一个形式。

如有任何帮助,我们将不胜感激!

通常,矩阵的逆矩阵具有 属性,将它与原始矩阵的两边相乘得到单位矩阵。

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 作为 J+ J x = I x = x = J+ b),当您使用第二种形式时有行向量(即 x J = b)。