旋转矩阵、旋转向量(轴角)、四元数、欧拉角之间相互转换的代码实现(利用Eigen实现)...
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 5 #include <Eigen/Core> 6 // Eigen 几何模块 7 #include <Eigen/Geometry> 8 9 10 int main ( int argc, char** argv ) 11 { 12 13 //旋转矩阵R 14 //3X3的旋转矩阵可以用Matrix3d,也Matrix3f 15 Eigen::Matrix3d R=Eigen::Matrix3d::Identity();//将其赋值为单位矩阵 16 // Eigen::Matrix3d R; 17 // R.setIdentity(); //也是将旋转矩阵赋值为单位矩阵,与上面效果一样 18 cout<<"R= \n"<<R<<endl; 19 20 //旋转向量v(轴角) 21 //旋转向量使用AngleAxisd(f),底层不直接是Matrix,但因为重载了运算符,运算可以当作矩阵 22 Eigen::AngleAxisd v(M_PI/4,Eigen::Vector3d(0,0,1));//沿z轴旋转了45度 23 cout << "rotation vector: Angle is: " << v.angle() * (180 / M_PI)<<endl//旋转角 24 << " Axis is: " << v.axis().transpose() << endl<<endl;//旋转轴 25 //将旋转向量转换为旋转矩阵 26 //方式一:用matrix() 27 // R=v.matrix(); 28 //方式二:用toRotationMatrix() 29 R=v.toRotationMatrix(); 30 cout<<"R=\n"<<R<<endl<<endl; 31 //将旋转向量转化为四元数q 32 Eigen::Quaterniond q = Eigen::Quaterniond(v); 33 cout<<"q=\n"<<q.coeffs()<<endl<<endl;//coeffs的顺序:(x,y,z,w) 34 cout<<"q=\n"<<q.x()<<endl<<q.y()<<endl<<q.z()<<endl<<q.w()<<endl<<endl;//四元数的另一种输出方式 35 36 37 //将旋转矩阵转化为四元数 38 q = Eigen::Quaterniond(R); 39 cout<<"q=\n"<<q.coeffs()<<endl<<endl; 40 //将旋转矩阵转化为欧拉角 41 Eigen::Vector3d euler_angles=R.eulerAngles(2,1,0); 42 cout<<"yaw(Z) pitch(Y) roll(X)=\n"<<euler_angles.transpose()<<endl<<endl; 43 44 45 //将四元数转化为旋转矩阵 46 R=Eigen::Matrix3d(q); 47 cout<<"R=\n"<<R<<endl<<endl; 48 49 //将四元数转化为旋转向量 50 v=Eigen::AngleAxisd(q); 51 cout<<v.matrix()<<endl<<endl; 52 return 0; 53 }
运行结果:R=
1 0 0
0 1 0
0 0 1
rotation vector: Angle is: 45
Axis is: 0 0 1
R=
0.707107 -0.707107 0
0.707107 0.707107 0
0 0 1
q=
0
0
0.382683
0.92388
q=
0
0
0.382683
0.92388
q=
0
0
0.382683
0.92388
yaw(Z) pitch(Y) roll(X)=
0.785398 -0 0
R=
0.707107 -0.707107 0
0.707107 0.707107 0
0 0 1
0.707107 -0.707107 0
0.707107 0.707107 0
0 0 1
转载于:https://www.cnblogs.com/cc111/p/9354924.html
旋转矩阵、旋转向量(轴角)、四元数、欧拉角之间相互转换的代码实现(利用Eigen实现)...相关推荐
- 【自动驾驶】30.c++实现基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换(附代码)
矩阵的使用可参考系列博客:点击此处 原文链接:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换. 也可以参考另一篇博客:eigen 中四元数.欧拉角.旋转矩阵.旋转向量. ...
- 一、旋转矩阵,旋转向量,单位四元数的相互转换总结
文章目录 前言 一.要点 1. 旋转矩阵 2. 旋转向量 3. 单位四元数 二.旋转向量--->旋转矩阵(罗德里格斯公式) 三.旋转矩阵--->旋转向量 四.单位四元数--->旋转矩 ...
- 三维旋转四元数系列(2.三维旋转之轴角与罗德里格斯公式推导)
序:上两节我们介绍了复数的基本概念与性质,以及复数与二维旋转的关系. 三维旋转四元数系列(0.复数基本介绍)https://blog.csdn.net/SKANK911/article/details ...
- 三维坐标变换(旋转矩阵旋转向量)
矩阵运算显然是计算机三维坐标变换最简单方便的计算方法,因此在 opencv.opengl.工业机器人等开发中,提到位姿旋转变换,多半用的是旋转矩阵.然而,用矩阵来表示一个旋转关系有两个缺点: 首先,通 ...
- python二郎成长笔记(三)(matlab标定工具箱详解,旋转矩阵旋转向量,matlab标定数据传入opencv)
这一章由来:二郎之前研究matlab的双目立体视觉,已经得到了需要的信息,可是,二郎想要对代码进行修改使其更适宜自己的应用目的. 修改:标定不用修改--matlab内置的已经很强大了,而且没有必要用p ...
- 刚体运动中的坐标变换-旋转矩阵、旋转向量、欧拉角及四元数
坐标变换及其方法 1.转化关系图 2 换算关系 3.1 旋转矩阵换算至其他 3.2 四元数换算至其他 3.3 旋转向量转换至旋转矩阵与四元数 3.3 欧拉角转换到旋转矩阵和四元数 3 坐标变换 4 坐 ...
- eigen 编译_头条 | 使用eigen实现四元数、欧拉角、旋转矩阵、旋转向量间的转换...
点击上方蓝字,关注本公众号,获得更多资源上一篇文章介绍了四元数.欧拉角.旋转矩阵.轴角如何相互转换,本篇文章介绍如何用eigen来实现. 旋转向量 1,初始化旋转向量:旋转角为alpha,旋转轴为(x ...
- 一文详解四元数、欧拉角、旋转矩阵、轴角如何相互转换
一文详解四元数.欧拉角.旋转矩阵.轴角如何相互转换 简介 欧拉角与旋转矩阵 欧拉角---->旋转矩阵 旋转矩阵---->欧拉角 四元数与旋转矩阵 四元数---->旋转矩阵 旋转矩阵- ...
- 视觉SLAM十四讲学习笔记-第三讲-旋转向量、欧拉角、四元数
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...
最新文章
- 机器学习中的数学 人工智能深度学习技术丛书
- scatter 基本用法 python matplotlib
- url采集工具_大数据关键技术浅谈之大数据采集
- 如何在内部 Stash 服务器上添加 hook
- java2048设计说明,Html5中的本地存储设计理念
- ubuntu下jmxtrans 安装
- LeetCode-两数之和(Java) 记录下刷题的第一天以及近期迷茫感受
- 如何定义用户模型(persona)
- 数据可视化平台-智慧安防可视化管理系统-解决楼宇监控管理难题
- 实现左侧菜单二级下拉菜单,
- 软件调试修炼之道之——山重水复疑无路
- Par.ici法语听写练习A1 -L13
- 关于vue2高德地图使用
- android gps 火星坐标,高德地图GCJ-02火星坐标系与GPS的WGS-84坐标系转换公式(安卓)...
- Java——entity(实体类)的写法规范
- 硬盘格式化数据恢复(图文教程)
- GitHub 忘记SSH密钥
- CPP头文件中不应包含using声明
- 模块上微系统(SOM)行业调研报告 - 市场现状分析与发展前景预测
- javascript学习笔记下篇--浏览器对象
热门文章
- linux7ip路由,Centos7源地址访问路由(双IP双网关配置)
- centos8对外开发指定接口
- el-table click事件多次触发_JavaScript从零开始——DOM事件编程(1)
- java开发面试中经常问到的问题(2019年5月)
- xmlhttp status各类Http请求状态(status)及其含义
- String.GetEnumerator 方法的C#例子
- 修改JEECG项目浏览器标题
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调 .
- java窗口小程序atm_简单的小程序实现ATM机操作
- android+JPEG+编码,Android_解析:android 如何从JPEG生成BufferedImage,如下所示:复制代码 代码如下 - phpStudy...