如何使用特征库从旋转矩阵确定轴角

How do to determine axis angle from rotation matrix using Eigen Libary

本文关键字:旋转 何使用 特征      更新时间:2023-10-16

特征库支持创建带有轴角参数的矩阵。你如何执行相反的操作并从矩阵确定轴角(我对欧拉集不感兴趣,只是一个轴角结果)。

Eigen 提供了一个将矩阵作为参数的AngleAxis构造函数。所以,它很简单:

#include <iostream>
#include <Eigen/Core>
#include <Eigen/Geometry>

int main()
{
    Eigen::Vector3d axis;
    axis.setRandom();
    std::cout << axis << "nn";
    axis.normalize();
    std::cout << axis << "nn";
    Eigen::Matrix3d mat;
    mat = Eigen::AngleAxisd(0.256, axis);
    Eigen::AngleAxisd newAngleAxis(mat);
    std::cout << newAngleAxis.angle() << "n" << newAngleAxis.axis() << "nn";
    return 0;
}

哪些输出:

-0.997497
0.127171
-0.613392

-0.846852
0.107965
-0.520755

0.256
-0.846852
0.107965
-0.520755

或类似的东西。