当角度接近 0 时,本征欧拉角度有时会偏离 180 度

Ale*_*lex 5 c++ geometry euler-angles eigen

我使用 EigeneulerAngles从旋转矩阵中获取滚动角、俯仰角和偏航角,如下所示:

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

其中rotation是 类型的一些有效旋转矩阵Eigen::Matrix3f

我观察到的是:如果所有三个角度都接近于零,即如果旋转矩阵接近恒等式,则某些或所有三个所得角度有时会偏离 Pi,即 180 度。

这也可能发生在某些其他旋转中,但到目前为止我只观察到它接近恒等式。

  1. 我可以以某种方式避免这种情况吗?
  2. 除了 (0, 0, 0) 之外,还有哪些角度可能是奇点?