间图形旋转变换矩阵推导及matlab验证,坐标系之间的旋转平移变换与对应变换矩阵的关系...

本文主要是介绍间图形旋转变换矩阵推导及matlab验证,坐标系之间的旋转平移变换与对应变换矩阵的关系...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

坐标系之间的旋转平移变换与对应变换矩阵的关系

2016年06月21日 10:06:38 Peng___Peng

阅读数:46648更多

在摄影测量和计算机视觉中,经常会遇到空间坐标系之间的坐标转换问题,而两个坐标系之间的变换关系一般可以通过一个旋转矩阵R和一个平移向量T(或C)描述。因此,理解清楚坐标系之间旋转平移的转换过程与对应变换矩阵之间的关系十分重要。这个变换过程虽然简单,但是其间涉及到的参数的表述存在多种形式,常常失之毫厘谬以千里,给我们的理解和使用带来诸多不便,例如,旋转角正方向的定义,不同坐标轴的旋转顺序对应的旋转矩阵的计算方法等等细节问题。本文将从基本的公式推导以及参数的准确描述出发,演算出我们常见的公式和结论。

一 仅存在旋转关系

为了便于表述和分析,我们从平面直角坐标系出发,坐标系O-XY和坐标系O'-X'Y'的关系如下图所示:

a4c26d1e5885305701be709a3d33442f.png

对于以上坐标关系,我们可以作如下描述:坐标系O-XY逆时针旋转theta(或顺时针旋转-theta)后与坐标系O'-X'Y'重合,或者坐标系O‘-X’Y‘顺时针旋转theta(或逆时针旋转-theta)后与坐标系O-XY重合。利用简单的之间三角形的余弦定理和正玄定理就可以得到以下公式(格式编辑不太熟,故以图像代替):

a4c26d1e5885305701be709a3d33442f.png

至此,我们可以将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'中的坐标描述存在以下关系:

a4c26d1e5885305701be709a3d33442f.png

同理,若坐标系O-XYZ绕自身的Y轴或Z轴逆时针转theta之后与坐标系O’-X'Y'Z'重合,则对应的坐标关系如下:

a4c26d1e5885305701be709a3d33442f.png

我们注意到,与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在这两个坐标系中的描述关系如下:

a4c26d1e5885305701be709a3d33442f.png

类似地,三个坐标轴之间的其他旋转顺序组合可以进行类似的推导。

角度 无论正负,大小都能用。

这篇关于间图形旋转变换矩阵推导及matlab验证,坐标系之间的旋转平移变换与对应变换矩阵的关系...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399474

相关文章

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Python重命名文件并移动到对应文件夹

《Python重命名文件并移动到对应文件夹》在日常的文件管理和处理过程中,我们可能会遇到需要将文件整理到不同文件夹中的需求,下面我们就来看看如何使用Python实现重命名文件并移动到对应文件夹吧... 目录检查并删除空文件夹1. 基本需求2. 实现代码解析3. 代码解释4. 代码执行结果5. 总结方法补充在