旋轉(zhuǎn)矩陣直接使用 Matrix3d 或 Matrix3f
Eigen::Matrix3d rotation_matrix = Eigen::Matrix3d::Identity(); //初始化為一個單位陣。
旋轉(zhuǎn)向量使用 AngleAxis
Eigen::AngleAxisd rotation_vector ( M_PI/4, Eigen::Vector3d ( 0,0,1 ) ); //角+軸:沿 Z 軸旋轉(zhuǎn) 45 度
旋轉(zhuǎn)矩陣和旋轉(zhuǎn)向量的轉(zhuǎn)換:
rotation_vector.matrix() //旋轉(zhuǎn)向量------>旋轉(zhuǎn)矩陣
rotation_matrix = rotation_vector.toRotationMatrix(); //旋轉(zhuǎn)矩陣------>旋轉(zhuǎn)向量
歐拉角: 可以將旋轉(zhuǎn)矩陣直接轉(zhuǎn)換成歐拉角
Eigen::Vector3d euler_angles = rotation_matrix.eulerAngles ( 2,1,0 ); // ZYX順序,即yaw pitch roll順序
旋轉(zhuǎn)向量--------->四元數(shù)
Eigen::Quaterniond q = Eigen::Quaterniond ( rotation_vector );
旋轉(zhuǎn)矩陣--------->四元數(shù)
q = Eigen::Quaterniond ( rotation_matrix );