转自:矩阵变换坐标系 深入理解 - 知乎

网址链接:从坐标系图中理解“空间变换”

小谈矩阵和坐标变换

矩阵坐标系变化理解

让我们从一个实际的例子入手:下图是一个用两维的笛卡尔坐标系表示的二维空间。

其中,黑色坐标系 x-y代表一个二维空间蓝色坐标系 i-j代表另外一个二维空间。已知蓝色坐标系轴在黑色坐标系下对应的值是i=(1,1), j=(-1,1),又知橙色向量 p 处在 i-j 空间中,其坐标值为(2,1)。现在的问题是,这个 被转换到黑色坐标系 x-y 空间下它的坐标值是什么?

解决这个问题一个最关键也最直接的想法是“向量分解与再合成”。

可以被分解到 i 和 j 两个方向,得到 p= 2i+j;同时 i 又可以分解到 x 和 y 两个方向,得到 i = x + y,另外 j 也可以分解得到 j = -x + y。于是,我们全部展开,就得到 p(i-j) = 2i + j = 2(x + y) + (-x + y) = x + 3y = p(x-y) 。

因此点 在 x-y 空间下的坐标值为(1,3)。

这种方法可以用来讨论更一般的情况。假设p点在 i-j 坐标系下为(k1,k2),在 x-y 坐标系下为(q1,q2)。同样地有基向量 i 对应在 x-y 空间中为(m1,m2);j 对应在 x-y 空间中为(n1,n2)。

于是我们有以下推导,

i = m1x + m2yj = n1x + n2y

于是,

p(i-j) = k1i + k2j

= k1(m1x + m2y) + k2(n1x + n2y)

= (k1m1 + k2n1)x + (k1m2 + k2n2)y

于是,

p(i-j) = (k1m1 + k2n1, k1m2 + k2n2)

= (q1, q2)

p(x-y)

得到,

q1 = k1m1 + k2n1

q2 = k1m2 + k2n2

变换成矩阵形式:

其中(k1,k2)是 i-j 空间下的坐标值,而(q1,q2)是 x-y 空间下的坐标值。中间的矩阵就是用来做转换的矩阵。从中我们可以发现,如果竖着来观察,向量(m1,m2)就是基向量 i 在 x-y 空间下的坐标值,而向量(n1,n2)则是基向量 j 在 x-y 空间下的坐标值。这个矩阵,实际上就是由空间 i-j 下的基向量在空间 x-y 下的坐标值构成的。

1 矩阵的行序和列序(也称行优先或列优先)仅仅是指矩阵的存储方式,即我们如果用一个4*4数组m存储矩阵,如果m[0][0]-m[0][3]连续存储了矩阵的第一行,那么就是行优先,反之就是列优先。无论是行优先还是列优先,它们代表的数学意义是相同的。
2 如果矩阵是行序,那么它的第一列(m[0][0],m[1][0],m[2][0])就代表X变换,第二列就是Y变换,第三列就是Z变换。
我们来看看为什么:
刚才提到矩阵把线性空间中的一个点给变换到另一个点,不妨称变换前的点为P1(x1,y1,z1),变换后的点为P2(x2,y2,z2):
那么根据线代中的矩阵乘法,P1 * M = P2展开就成了:
m00,m01,m02
(x1,y1,z1) * m10,m11,m12 = x1*m00+y1*m10+z1*m20+ x1*m01*
m20,m21, m22 y1*m11+z1*m21,x1*m02+y1*m12+z1*m22

所以:
x2 = x1*m[0][0] + y1*m[1][0] + z1*m[2][0];
y2 = x1*m[0][1] + y1*m[1][1] + z1*m[2][1];
z2 = x1*m[0][2] + y1*m[1][2] + z1*m[2][2];
看出什么了吗?
如果把一个行序矩阵(接下来讨论的都是行序矩阵,就省略行序二字了)的每一列分别用X,Y,Z三个矢量来表示,那么M就表示为:XYZ三根轴。
现在,矩阵M看起来是不是很像一个坐标系?而P1到P2的变换就是P1分别与X,Y,Z的点积!
也就是矩阵M是把P1从老坐标系变换到新坐标系,而矩阵的三列(三根轴)就分别代表了新坐标系的三根轴在老坐标系中的坐标!
而点积的几何意义其实就是求取投影!所以坐标变换的几何本质(刚才已经讨论过其代数本质),就是把一个点分别投影到三根轴上去而已!
再仔细想一想,P1在XYZ三根轴上的投影,不正是它在新坐标系下的坐标吗?这样一来,坐标变换是不是就太容易理解了呢?

综上理解得出:

【转】矩阵变换坐标系 深入理解相关推荐

  1. ROS中map、odom、base_link坐标系的理解和这三个坐标系在AMCL中的关系

    学了ROS快一年了,依旧对map坐标系.odom坐标系.base_link坐标系之间的关系不是很清晰,这段时间下定决心要捋清楚他们之间的关系. map坐标系:地图坐标系,是一个固定的坐标系: base ...

  2. ROS中map,odom坐标系的理解以及acml和robot_pose_ekf的对比和小车漂移方法解决

    之前一直不知道odom,map到底是什么关系,看了这个博客:https://blog.csdn.net/u012686154/article/details/88174195 才了解了一些.这边记录我 ...

  3. odom坐标系的理解

    ROS中基本坐标系的理解:map,odom,base_link,base_laster 1.map 地图坐标系,顾名思义,一般设该坐标系为固定坐标系,一般与机器人所在的世界坐标是重合的. 2.base ...

  4. 拼接模型坐标系的理解(五)

    该系列文章主要是以整理资料为主,在博主学习的过程中,经常收集一些有用没用的资料,这里挑出来的都是我初学者自认为含金量比较高的,如果你有看到该系列文章,不妨跟着走一遍.博主目前还处于模棱两可的阶段,后续 ...

  5. 对于SLAM定位中各类坐标系的理解(坐标系,里程计坐标系,基座坐标系与雷达坐标系)

    最近系统性学习了一遍LIO-SAM,开始的时候一直搞不懂里程计坐标系,经过不断学习才有了一点自己的拙见. 引言:首先我们搞清楚SLAM算法主要是解决建图与定位问题,其更侧重定位,即让机器人知道自己在全 ...

  6. 关于J2000.0坐标系与WGS84坐标系的理解

    目录 一.基础知识 1.1 岁差 1.2 章动 1.3 极移 1.4 基础知识小结 二.坐标系 2.1 J2000.0坐标系 2.2 WGS84坐标系 一.基础知识 在理解坐标系之前需要对地球岁差(进 ...

  7. 核磁共振数据中DCM图像的坐标系——从世界坐标系到图像坐标系的理解与转换,从矩阵坐标转换至MNI坐标

    从矩阵坐标转换至MNI坐标 假设矩阵坐标:X=3,Y = 5, Z = 6; 方法一:mx = 90-3*(X-1); my = 3*(Y-1)-126; mz = 3*(Z-1) - 72; 方法二 ...

  8. orb_slam2坐标系的理解

    原因:orb_slam2学习过程中,会遇到许多关于相机pose和图片的转化问题,想要理解他们的原理,需要缕清各种坐标系之间的关系. 介绍:slam中涉及到四个常用坐标系,包括 像素坐标系(u,v).图 ...

  9. ROS中odom、map坐标系的理解

    学ROS大半年了,之前一直没搞明白odom和map,今天重新查资料看博客加自己思考才真正理解了.深深怀疑自己的理解能力... 此处参考了https://blog.csdn.net/flyinsilen ...

最新文章

  1. Fragment的setUserVisibleHint方法实现懒加载
  2. flask 注册路由和蓝图
  3. 关于null和undefined
  4. iphonex黑屏开不了机_iphonex黑屏就算强制开机也开不了,是什么原因?_杭州维修...
  5. PopupMenu控件的使用
  6. 在 Microsoft word中插入代码
  7. BZOJ 1833 数位DP
  8. Ubuntu免密码输入关机脚本
  9. 【Opencv】 于仕琪 人脸68个特征点分布情况
  10. 计算机内图片怎么自定义排序,win7电脑中如何设置图片排序方式?
  11. 执行SOA——SOA实践指南
  12. springnbsp;contextnbsp;初始化两次导致dub…
  13. 计算机兆的符号是什么意思,一兆等于多少kb流量?B,MB,KB,GB分别是什么意思?
  14. 大数据组件笔记 -- ZooKeeper
  15. 如何量化你的用户价值?——RFM模型分析实战
  16. QNX Neutrino RTOS简介
  17. C/C++——游戏界面设置(graphics)
  18. MFC项目有关打印功能(支持分页打印)
  19. prism 加载模块的四种方法
  20. Block原理(一)

热门文章

  1. 手机内存卡转化linux,Android 往手机内存卡上存储用户名与密码的操作
  2. 【旧文章搬运】无Device的驱动如何通信
  3. 《BI项目笔记》多维数据集中度量值设计时的聚合函数
  4. 【啃不完的算法导论】- 动态规划 - 最长公共子序列(概念篇)
  5. ASP.NET教程11
  6. [Silverlight]16进制颜色转ARGB及Color转Int32
  7. [剑指offer]面试题第[65]题[JAVA][不用加减乘除做加法][位运算]
  8. 51nod 1101 换零钱 简单dp
  9. 前端扁平化数据转树形数据_把平级数据变成树形数据
  10. 弹弹堂sf发布网_私服冒险岛,新开私服冒险岛,心动sf冒险岛发布网,最新开的私服冒险岛应该如何快速的获取魅力呢?...