Какое соглашение об обозначениях использует матрица вращения OpenCV

Я пытаюсь использовать OpenCV, чтобы найти ориентацию/позу калибровочной доски на фотографии, поэтому я использую функциюsolvePnPRansac. Я хочу извлечь ориентацию системы осей доски относительно мировой системы (т.е. угол между осью X доски и осью X мира). Для этого я думал просто получить углы Эйлера из матрицы вращения, заданной функциямиsolvePnPRansac/Rodrigues.

Теперь мой вопрос: какое соглашение об обозначениях использует матрица вращения OpenCV? Обозначение «x y z» или обозначение «x» (т. е. вращение вокруг оси z, x, затем снова оси z). Я не могу найти эту спецификацию в документации, и мне нужно эта информация, чтобы знать, какие уравнения использовать для разложения матрицы на правильные углы Эйлера


person Yassie    schedule 03.02.2015    source источник
comment
возможный дубликат Rodrigues в Eulerangles и наоборот   -  person GPPK    schedule 03.02.2015
comment
Я видел этот вопрос/ответ раньше, но он не отвечает на мой вопрос. См. mathworld.wolfram.com/EulerAngles.html, чтобы узнать, что я имею в виду под другим углом Эйлера. обозначения (более конкретно вокруг строк 3, 30 и 41)   -  person Yassie    schedule 03.02.2015
comment
Углы Эйлера сильно отличаются от представления оси-угла, используемого в формуле вращения Родригеса. Первый состоит из трех поворотов вокруг заранее определенных осей, и эти оси должны быть указаны (xyz, zxz, ...). Последнее представляет собой компактное обозначение, описывающее одно вращение вокруг одной оси и не зависящее от каких-либо конкретных осей вращения.   -  person Hannes Ovrén    schedule 03.02.2015
comment
И вам, вероятно, следует избегать использования углов Эйлера, если у вас нет особых причин для их использования, поскольку они не уникальны и имеют проблемы с блокировкой подвеса.   -  person Hannes Ovrén    schedule 03.02.2015
comment
@HannesOvrén Вот что я хочу знать. У меня есть матрица вращения, но чтобы получить углы Эйлера, мне нужно знать порядок вращения оси (xyz, zxz и т. д., как вы упомянули), который я нигде не могу найти. Мне просто нужно знать углы осей x, y и z относительно мировой системы осей XYZ. Возможно, вы знаете лучший способ представить это?   -  person Yassie    schedule 03.02.2015
comment
Как я уже сказал: результат не является углом Эйлера. Если вам действительно нужны углы Эйлера, вам придется преобразовать вектор вращения в матрицу вращения с помощью функции Rodrigues, а затем преобразовать матрицу вращения в углы Эйлера, используя любой вы порядок вращения.   -  person Hannes Ovrén    schedule 03.02.2015
comment
Ах, хорошо, чтобы было ясно, матрица вращения остается неизменной независимо от порядка вращения? Моя теория динамики немного заржавела   -  person Yassie    schedule 03.02.2015
comment
да. Матрица вращения — это уникальное представление для вращений.   -  person Hannes Ovrén    schedule 03.02.2015