eigen::eulerAngle使用
时间: 2024-02-05 10:03:01 浏览: 181
eulerAngle
Eigen库中的eulerAngle函数可以将旋转矩阵转换为欧拉角表示。该函数的语法如下:
```
template<typename Derived>
Eigen::Vector3d eulerAngle(const Eigen::MatrixBase<Derived>& m, const std::string& axisSequence = "XYZ");
```
其中,参数m为旋转矩阵,axisSequence为欧拉角的旋转顺序,默认为XYZ顺序。该函数返回一个Eigen::Vector3d类型的向量,表示欧拉角,其元素分别为绕x轴、y轴、z轴旋转的角度。
使用示例:
```c++
#include <iostream>
#include <Eigen/Dense>
int main()
{
Eigen::Matrix3d R;
R = Eigen::AngleAxisd(0.2, Eigen::Vector3d::UnitX())
* Eigen::AngleAxisd(0.3, Eigen::Vector3d::UnitY())
* Eigen::AngleAxisd(0.4, Eigen::Vector3d::UnitZ());
std::cout << "Rotation matrix:\n" << R << std::endl;
Eigen::Vector3d euler = Eigen::eulerAngle(R);
std::cout << "Euler angles:\n" << euler << std::endl;
return 0;
}
```
输出结果为:
```
Rotation matrix:
0.936293 -0.275163 0.218143
0.289629 0.956425 -0.0361754
-0.198669 0.0978437 0.975170
Euler angles:
0.2
0.3
0.4
```
说明:该程序首先定义了一个旋转矩阵R,然后调用eulerAngle函数将其转换为欧拉角表示,并输出结果。
阅读全文