Eigen eulerAngles иногда выключены на 180 градусов, когда углы близки к 0 - PullRequest
0 голосов
/ 07 апреля 2020

Я использую eulerAngles Эйгена, чтобы получить углы крена, тангажа и рыскания из матрицы вращения следующим образом:

const Eigen::Vector3f yaw_pitch_roll = rotation.eulerAngles(2, 1, 0);

, где rotation - какое-то действительное матрица вращения типа Eigen::Matrix3f.

То, что я наблюдаю: если все три угла близки к нулю, т.е. если матрица вращения близка к единице, некоторые или все три результирующих угла иногда отключаются Pi, то есть на 180 градусов.

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

  1. Можно ли этого избежать как-нибудь?
  2. Какие другие углы, кроме (0, 0, 0), могут быть особыми точками?
...