坐标系之间的旋转平移变换与对应变换矩阵的关系
在摄影测量和计算机视觉中,经常会遇到空间坐标系之间的坐标转换问题,而两个坐标系之间的变换关系一般可以通过一个旋转矩阵R和一个平移向量T(或C)描述。因此,理解清楚坐标系之间旋转平移的转换过程与对应变换矩阵之间的关系十分重要。这个变换过程虽然简单,但是其间涉及到的参数的表述存在多种形式,常常失之毫厘谬以千里,给我们的理解和使用带来诸多不便,例如,旋转角正方向的定义,不同坐标轴的旋转顺序对应的旋转矩阵的计算方法等等细节问题。本文将从基本的公式推导以及参数的准确描述出发,演算出我们常见的公式和结论。
一 仅存在旋转关系
为了便于表述和分析,我们从平面直角坐标系出发,坐标系O-XY和坐标系O'-X'Y'的关系如下图所示:
对于以上坐标关系,我们可以作如下描述:坐标系O-XY逆时针旋转theta(或顺时针旋转-theta)后与坐标系O'-X'Y'重合,或者坐标系O‘-X’Y‘顺时针旋转theta(或逆时针旋转-theta)后与坐标系O-XY重合。利用简单的之间三角形的余弦定理和正玄定理就可以得到以下公式(格式编辑不太熟,故以图像代替):
至此,我们可以将2D平面的旋转问题提升到3D空间的旋转问题,即分别绕三个轴作类似2D的旋转变换。需要额外注意的两个的问题是:1)当绕某根轴旋转时,其他两轴建立的2D坐标系应该保证旋转轴的正方向垂直纸面向外(与旋转角正方向定义相关);2)空间坐标系的旋转关系与各坐标轴的旋转顺序相关;假设两个空间坐标系O-XYZ与O'-X'Y'Z'之间只存在一个坐标轴的旋转,若坐标系O-XYZ绕自身的X轴逆时针转theta之后与坐标系O’-X'Y'Z'重合,空间中某点M在坐标系O-XYZ和O'-X'Y'Z'中的坐标描述存在以下关系:
同理,若坐标系O-XYZ绕自身的Y轴或Z轴逆时针转theta之后与坐标系O’-X'Y'Z'重合,则对应的坐标关系如下:
我们注意到,与X和Z轴不同,当绕Y轴逆时针旋转theta角时,对应的旋转矩阵中带负号元素变成了右上角的”sin“元素。原因在于根据上文提到的注意点1)建立的2D坐标系纵轴是X轴,横轴是Z轴,而坐标向量的坐标分量顺序是X,Y,Z,所以得到的X和Z的坐标关系需要调整一下顺序,即可得到上面显示的结果。
可以证明(具体证明过程可以查文献):对于存在任意旋转变换的两个空间坐标系O-XYZ和O'-X'Y'Z',可以通过依次绕三个坐标轴旋转一定角度实现两个坐标系对应坐标轴的重合。这里,我们假设坐标系O-XYZ依次绕自身X轴、Y轴、Z轴分别逆时针转theta1,theta2,theta3后可以与坐标系O'-X'Y'Z'重合,则空间中某点M在这两个坐标系中的描述关系如下:
类似地,三个坐标轴之间的其他旋转顺序组合可以进行类似的推导。
角度 无论正负,大小都能用。
https://blog.csdn.net/haiying2016/article/details/77685459
旋转变换(一)旋转矩阵
参考文献:
相关文章
- 史上最简单的 MySQL 教程(二)「关系型数据库」
- 并发性,时间和相对性(1)-确定前后关系
- 【MySQL】InnoDB存储引擎,MyISAM存储引擎,聚集索引,非聚集索引,主键索引,二级索引他们之间的关系梳理
- C/C++-编译:链接【静态链接(由链接器在链接时将库的内容加入到可执行程序中)】、【动态链接(链接器在链接时仅仅建立与所需库函数的之间的链接关系,在程序运行时才将所需资源调入可执行程序)】
- 图算法(十):关联路径算法(n-Paths)【适用场景:用于关系分析、路径设计、网络规划等场景】【用于寻找图中两节点之间在层关系内的n条路径】
- 对象之间的关系
- 公钥和私钥的在加解密作用和关系
- .NET世界各成员之间的关系
- 71.(后端)角色接口携带权限数据——flask两张表之间多对多关系的使用与层级关系的输出
- 司马懿人物关系
- 数字化转型落地,要把握好数字化和转型之间的关系
- 前端百题斩【016】——原型、构造函数和实例之间的奇妙关系
- Springcloud和Springboot之间的依赖关系如何看
- UML类图几种关系的总结
- FFMPEG中最关键的结构体之间的关系
- Linux/UNIX流程关系
- 创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)
- JSP与Servlet之间的关系事例说明
- Polyline对象 - (及其他对象的关系)
- 关于Git HEAD^与HEAD~的关系
- uboot环境变量与内核MTD分区关系
- 图解UML类与类之间的六中关系
- MFC-GetWindow获取与指定窗口有特定关系的窗口句柄
- Linux中的文件描述符与打开文件之间的关系
- Android6.0 NDK 和 .So 之间的关系