Как мы можем найти тета из матрицы вращения? - PullRequest
0 голосов
/ 14 мая 2019

Согласно документации OpenCV, solvePnp будет возвращать вектор вращения позы объекта из 3D-2D точечных соответствий. Чтобы получить матрицу вращения, мы можем использовать метод Родрига для преобразования вектора вращения в матрицу вращения. Согласно документации OpenCV, мы можем найти тета, используя следующее:

theta = norm(r)

Но я думал, norm(r) найдет величину вектора r? Если это так, как мы можем найти угол от величины вектора r? Поправь меня, если я ошибаюсь. Спасибо.

1 Ответ

0 голосов
/ 15 мая 2019

Учитывая вектор вращения r, его длина (в Python, numpy.linalg.norm(r)) - это угол поворота вокруг оси, направление которой равно направлению вектора. Смысл вращения подчиняется «правилу правой руки»: если ваша правая рука делает знак «большой палец вверх», когда большой палец указывает на вектор, другие пальцы переносят векторы как вращение (эквивалентно, это чувство вращения делает обычный ход винта, когда его острие указывает на вектор).

Одно и то же вращение может быть выражено в виде матрицы 3х3 или в виде тройки (эйлеровых) углов или вращения вокруг до 3 ортогональных осей. Обычно существует много разных троек углов Эйлера, которые представляют одно и то же вращение. Обратитесь к учебнику или Википедии за подробностями.

...