Eigen中四元数和旋转矩阵的运算
四元数转为旋转矩阵使用前必须归一化,否则可能导致旋转矩阵不正交
// //test quaerniond
// Eigen::Quaterniond q_1(0.7,0.6,0.5,0.7);
// Eigen::Quaterniond q_2(0.8,0.9,0.5,0.7);
// Eigen::Quaterniond q_3,q_4;
// Eigen::Matrix3d R_1 = q_1.normalized().toRotationMatrix();
// Eigen::Matrix3d R_2 = q_2.normalized().toRotationMatrix();
// Eigen::Matrix3d R_3;
// R_3 = R_1 * R_2;
// q_3 = q_1 * q_2; //运行结果R_3 = q_3.nomalized().toRotationmatrix();
//
// std::cout<<"R_1:"<<R_1.transpose()<<std::endl;
// std::cout<<"R_2:"<<R_2.transpose()<<std::endl;
// std::cout<<"R_3:"<<R_3.transpose()<<std::endl;
// std::cout<<"q_3_to_R:"<<q_3.normalized().toRotationMatrix().transpose()<<std::endl;
// std::cout<<"q_4_to_R:"<<q_4.normalized().toRotationMatrix().transpose()<<std::endl;