本文为入门笔记,详细请看大佬文章,写的非常具体。
关于矩阵的左乘右乘详情请看知乎大佬-Lpip Sam,和知乎大佬-小兔纸的大魔王很详细。

欧式变换也称为等距变换(Isometry Transform),可以看作是维持任意两点距离不变的仿射变换。
(Rotatetranslation0T1)\left( \begin{matrix} Rotate &translation \\ 0^T & 1 \\ \end{matrix} \right)(Rotate0T​translation1​)

0.初始化

共两种方法,第一种使用较为频繁。

 //设置旋转向量VEigen::AngleAxisd V(3.1415926 / 4, Eigen::Vector3d(1, 0, 1).normalized());//设置平移向量Eigen::Vector3d translation(1, 3, 4);//将T初始化为单位阵,再做其他操作。//虽然称为3D,实质上为4*4矩阵。Eigen::Isometry3d T= Isometry3d::Identity();

1.两种求欧式变换矩阵

 //设置欧式变换矩阵——方式1//此种方式和下一种方式输出相同。//a.translate(b)等价于aXb,描述的是在世界坐标系下的平移(虽然b在设置时为只含有3个元素列向量,猜想内部可能会有操作时其为下面这种形式)。//形式为 0 0   0   1//      0  0   0   3//      0  0   0   4//      0  0   0   0//此操作相当于将translation中的数值放入欧式变换矩阵translation位置(注意!!!此种效果的前提T为单位矩阵)//结果为 1  0   0   1//      0  1   0   3//      0  0   1   4//      0  0   0   1T.translate(translation);//a.rotate(b)等价于aXb,描述的是在世界坐标系下的旋转。T.rotate(V);//结果为 0.853553   -0.5   0.146447        1//           0.5   0.707       -0.5        3//      0.146447     0.5   0.853553        4//            0        0          0        1//matrix()返回变换对应的矩阵,T输出时用此函数。std::cout << T.matrix() << std::endl;/*----------------------------------------------------------------------------------------------------------------------------------------------*///设置欧式变换矩阵——方式2//凡是前面带pre的函数,相当于右乘。//a.rotate(b)等价于aXb,描述的是在世界坐标系下的旋转。//结果为 0.853553   -0.5   0.146447        0//           0.5   0.707       -0.5        0//      0.146447     0.5   0.853553        0//            0        0          0        1T.rotate(V);//我们的目的是为了形成文章开头欧式变换的矩阵,//变换顺序必须是先平移,再旋转,也就是单位矩阵E X 平移矩阵T X 旋转矩阵R。//按照R右乘T也就是T X R,实际和方式1相同T左乘R(T X R)这样理解就可以,//但是根据查看源码,只有在mode==Projective时为右乘,否则为T+translation,//然而translation为含有3个元素的列向量,这也印证了之前的猜想,有内部机制使translation转换成下面的形式//形式为 0    0   0   1//      0  0   0   3//      0  0   0   4//      0  0   0   0T.pretranslate(translation);//结果为 0.853553  -0.5   0.146447        1//           0.5   0.707       -0.5        3//      0.146447     0.5   0.853553        4//            0        0          0        1//matrix()返回变换对应的矩阵,T输出时用此函数。std::cout << T.matrix() << std::endl;

Eigen::Isometry3d入门相关推荐

  1. 视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记

    视觉SLAM十四讲 ch3 Ubuntu18.04 KDevelop的使用及Eigen实践 入门笔记 一.创建KDevelop项目 二.编写程序 一.创建KDevelop项目 你的电脑上如果还没有安装 ...

  2. C++矩阵库 Eigen 快速入门

    Eigen 矩阵定义 #include <Eigen/Dense>Matrix<double, 3, 3> A; // Fixed rows and cols. Same as ...

  3. 【Eigen】学习Eigen的一些总结——快速入门指南(一)

    Eigen 快速入门指南 Eigen Quick reference guide 模块和头文件 Eigen库分为一个核心模块和几个附加模块.每个模块都有一个相应的头文件,为了使用模块必须包含该头文件. ...

  4. SLAM——之Eigen函数库

    0. Eigen/四元数/欧拉角/旋转矩阵 相关系列文章 SLAM--之Eigen入门(矩阵运算及几何模块) SLAM--之Eigen函数库,一个相对复杂的EIgen使用实例 SLAM--Eigen函 ...

  5. Eigen库学习教程(全)

    说明:本教程主要是对eigen官网文档做了一个简要的翻译,参考了eigen官网以及一些博主的技术贴,在此表示感谢. Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相 ...

  6. 最详细的Eigen笔记

    在博文<三维空间中刚体运动>中介绍了三维空间刚体运动和坐标转换的概念,包括坐标变换的各中表示:旋转矩阵.四元数.旋转角.旋转向量.变换矩阵等,初步尝试了使用Eigen进行坐标变换.本文在此 ...

  7. 视觉SLAM十四讲学习笔记-第三讲-相似、仿射、射影变换和eigen程序、可视化演示

    专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习 ...

  8. 【SLAM笔记】如何使用Eigen进行矩阵运算

    SLAM笔记专栏:https://blog.csdn.net/weixin_44543463/category_10925276.html 本文目录 一.Eigen库的介绍与安装 1.1 Eigen是 ...

  9. eigen坐标变换_Eigen实现坐标转换

    (<视觉SLAM十四讲>第三讲习题7)设有小萝卜一号和二号在世界坐标系中.一号位姿q1 = [0.35, 0.2, 0.3, 0.1],t1=[0.3, 0.1, 0.1].二号位姿q2= ...

最新文章

  1. Golang 解决no buildable Go source file in问题
  2. python 将元组解析为多个参数
  3. oracle11 处理器数,11G AWR中%Total CPU与%Busy CPU指标的疑问
  4. 小白设计模式:组合模式
  5. JAVA 实现生命游戏
  6. 电教室软件 linux,在深度操作系统上安装多媒体电子教室Veyon
  7. kafka彻底删除topic清理数据
  8. Java反射 二三事
  9. 婆媳关系处理不好本质上是没有大局观
  10. 最全最丰富的随机图片调用接口——三千之图
  11. 计算机软件水平考试什么题型,计算机软考考什么内容
  12. 全志T3开发板——嵌入式入门学习测试教程(6)
  13. js关闭谷歌浏览器的当前页面
  14. 远程桌面连接:提示出现身份验证错误,要求的函数不受支持。这可能是由于CredSSP加密数据库修正错误。
  15. python ftp登陆(匿名)
  16. dup, dup2, 重定向恢复
  17. 【C#通过共享内存MemoryMappedFile解码和播放WavPack等PCM音频】
  18. 服务器皮肤显示mod怎么用,Dota2自制皮肤怎么用 Dota2替换mod使用教程
  19. Java开发6年了,手把手教会你,大厂直通车!
  20. Shell 判断文件是否存在的方法

热门文章

  1. 华夏学院到新洲的大巴车发车时刻表及乘车地点
  2. KMS 批量激活许可架构部署说明书
  3. 解决Ubuntu执行sudo命令后提示无法解析主机
  4. 绝对详解PHP 的imageTtfText()函数
  5. golang-阅读雨痕大神的Go语言学习笔记的心得
  6. 元旦假期!10分钟用Python批量定制化发送元旦祝福邮件!
  7. 不足百元的乐高式积木,玩转数理机械原理
  8. Unity Lighting设置
  9. 使用OLE对象访问Oracle数据库
  10. 问题随记 —— 在 edge 上看视频会绿屏