资源简介
代码!!!!重要!!!!
学习中关于机器人领域中四元数、欧拉角、旋转矩阵、旋转向量的相互转换关系总结,整理加深记忆。
每一个都有相互转换关系,并注释
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
#define PI 3.1415926535897932346f
int main(int argcchar **argv){
//3D旋转矩阵 定义为单位阵
Eigen::Matrix3d rotation_matrix = Eigen::Matrix3d::Identity();
//定义旋转向量 沿着z轴旋转45度
Eigen::AngleAxisd rotation_vector(PI/4Eigen::Vector3d(001));
// 隐含了 一个变换 angleaxisd
/*
* 旋转向量 --> 旋转矩阵
* 旋转向量 --> 旋转矩阵 ---> 欧拉角
* 旋转向量 --> 四元数
*/
cout<<“旋转矩阵:“< cout< //旋转向量--->旋转矩阵
rotation_matrix = rotation_vector.toRotationMatrix();
cout<<“旋转矩阵:“< cout< //旋转向量--->旋转矩阵
Eigen::Quaterniond q = Eigen::Quaterniond (rotation_vector); //....................rotation_vector to Quaterniond
cout<<“四元数:“< cout< //旋转向量--->四元数
/*
* 旋转矩阵 --> 旋转向量
* 旋转矩阵 ---> 欧拉角
* 旋转矩阵 ---> 四元数
*/
rotation_vector=rotation_matrix; // ..................................rotation_matrix to rotation_vector
//旋转矩阵--->旋转向量
Eigen::Vector3d euler_angles = rotation_matrix.eulerAngles(210); //.......rotation_matrix to euler_angles .........attention: ypr
cout<<“欧拉角:“< cout< //旋转矩阵--->欧拉角
q = Eigen::Quaterniond(rotation_matrix); // .......................................rotation_matrix to Quaterniond
cout<<“四元数:“< cout< //旋转矩阵--->四元数
/*
* 四元数--->旋转矩阵
* 四元数--->旋转矩阵 --->欧拉角
* 四元数--
评论
共有 条评论