Разница между двумя псевдообратными матрицами Якоби для IK?

Привет, я пытаюсь внедрить IK в свою скелетную систему и читал несколько статей в Интернете, и одним из способов сделать это было использование псевдообратной матрицы Якоби. Однако я видел 2 формы псевдообратного, и я хотел бы знать, каковы различия этих двух представлений.

Первая форма: J+ = ((Jt*J).inverse()) * Jt

Вторая форма: J+ = Jt * ((J*Jt).inverse())

Честно говоря, я даже не уверен, как они получили вторую форму, я могу вывести только первую форму на данный момент.

Любая помощь будет оценена по достоинству!


person Peter    schedule 26.10.2018    source источник


Ответы (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 как J+ J x = I x = x = J+ b), а вторая форма используется, когда у вас есть векторы-строки (т.е. x J = b).

person Nico Schertler    schedule 27.10.2018