坐标系旋转与向量旋转(旋转矩阵)

二维坐标系旋转与向量(坐标)旋转

坐标系的旋转和向量的旋转在工程应用过程中经常会遇到,在这里对二维坐标系的旋转和向量旋转做一个简单的推导,方便大家的理解。

坐标系旋转

一个平面坐标系逆时针旋转一个角度后得到另一个坐标系,则同一个点在这两个坐标系之间的几何关系如下:
在这里插入图片描述
由上图可得:
在这里插入图片描述
转化为矩阵表示为:
在这里插入图片描述
则反过来的关系如下:
在这里插入图片描述
由上面两个矩阵式可以看出两个转换的旋转矩阵是互为逆矩阵

向量旋转(坐标旋转)

下面分析的是在同一个坐标系下,一个向量(模长设为 r)围绕着原点旋转一个角度前后之间的关系,坐标旋转也同样适用。如下图:
在这里插入图片描述
由上图可得:
在这里插入图片描述
转化为矩阵表示为:
在这里插入图片描述
则反过来的关系如下:
在这里插入图片描述
由上面两个矩阵式可以看出两个旋转的旋转矩阵同样是互为逆矩阵

坐标系旋转与向量(坐标)旋转的关系

通过上面的两个推导可以得出,在转过的角度大小和旋转方向相同的情况下,坐标系绕原点旋转的旋转矩阵与向量(坐标)绕原点旋转的旋转矩阵互为逆矩阵。

  • 16
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
机器⼈坐标转换 坐标系标识统⼀: 我们使⽤右⼿坐标系,ROS⾥⾯⽤的也是右⼿坐标系. 左:左⼿坐标系,右:右⼿坐标系. 记忆:⼤拇指是z轴,⾷指是x轴(右⼿指往内转动).我们说旋转多少度时,都以右⼿⼿指往内攥的⽅向为正⽅向. 颜⾊:⼀般都⽤rgb表⽰xyz轴: 坐标变换: 习惯上,我们表⽰⼀个物体的三维位置和朝向时,都会在其⾝上附⼀个随动的坐标系.所以描述⼀个物体在坐标系中的位置和朝向,总是可以等效 为描述物体⾃⾝坐标系和别的坐标系之间的关系. 旋转矩阵: 表⽰两个坐标系之间的旋转关系. 举例:表⽰导航⼩车⾃⾝的坐标系和地图坐标系之间的旋转关系.如上所述,我们描述机器⼈在地图中的姿态,⼀般不会讲机器⼈在地图坐标系中 的坐标,⽽是讲机器⼈⾃⾝的坐标系和地图坐标系之间的旋转平移关系.(虽然它和机器⼈的坐标在数值上是⼀样的) 物体B(假设它⾃⾝的坐标系也叫B)相对参考坐标系A发⽣了旋转,那么定义从B旋转到A旋转矩阵为: 解释:从坐标系B旋转坐标系A的旋转矩阵,它的每⼀列,都是B的坐标轴单位向量在A中的表⽰. 那么不难推测,旋转矩阵的每⼀⾏,都是A的坐标轴单位向量在B中的表⽰.即: 连续的旋转变换: ⽐如从C旋转成B,再从B旋转成A,那么从C到A的旋转矩阵就是按顺序从后往前直接连乘: 旋转矩阵的使⽤: 当然主要是⽤于计算同样⼀个点在不同的坐标系⾥的表⽰之间的转换.即: p在B中的坐标,点乘B到A的旋转矩阵,得到在A中的坐标.举例:雷达探测到的点的坐标是相对雷达⾃⾝的,我们想得到点相对机器⼈的坐标,那么 我们就需要雷达⾃⾝坐标系和机器⼈坐标系之间的旋转矩阵.⽤此矩阵去点乘相对雷达的坐标. 齐次坐标变换: ⾸先说齐次坐标,齐次坐标相⽐普通坐标,主要⽤于区分向量和点.向量是没有位置概念的,但点是有的.从普通坐标转换成齐次坐标时, 如果(x,y,z)是个点,则变为(x,y,z,1); 如果(x,y,z)是个向量,则变为(x,y,z,0). 具体看,写的很清晰. 前⾯我们说了旋转,⽽平移很简单,就是向量之间的加减.⽬前,我们平移加旋转⼀个物体,想得物理世界⼀个固定点在移动后的物体的坐标系⾥的 坐标,我们得先计算平移,再计算旋转.即: ⽽齐次坐标变换的作⽤就是将两者统⼀成⼀个矩阵,矩阵左上⾓是旋转矩阵,右侧为平移向量.(第⼆⾏p下⾯加了个1,这是从普通坐标变为了齐 次坐标,表⽰这是个点).即: 齐次坐标转换矩阵统⼀了平移和旋转,⽅便了坐标变换的逆运算、多坐标系的连续变换,运算规则和旋转矩阵类似: 参考:<>
要进行坐标系之间的转换,需要使用旋转矩阵和平移向量。根据给定的三个点在两个坐标系下的坐标,可以通过以下步骤求解转换参数。 1. 首先,选择其中一个点作为世界坐标系的原点,并将其在相机坐标系中的坐标作为平移向量T。这个平移向量描述了世界坐标系到相机坐标系的平移关系。 2. 接下来,使用另外两个不共线的点来构建旋转矩阵R。旋转矩阵描述了世界坐标系到相机坐标系旋转关系。具体步骤可以通过计算两个坐标系中的向量之间的旋转变换得到。 3. 如果没有现成的矩阵相乘函数,可以自己编写代码实现矩阵相乘的功能。初始时可以使用数组存放矩阵,但后续考虑到方便性和可扩展性,可以转换思路,使用vector动态存放数组,这样可以更方便地进行矩阵的计算,并适应后续用户增加顶点操作的需求。 通过以上步骤,可以得到坐标系之间的旋转矩阵R和平移向量T,从而实现坐标系之间的转换。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [三点解算两个坐标系之间的旋转矩阵和平移向量](https://download.csdn.net/download/yangzhe1215/12449123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [原理详解_三点解算两个坐标系之间的旋转矩阵和平移向量](https://download.csdn.net/download/zhangxz259/10815707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于OpenGL的计算机图形学实验四简单几何形体(三角形、多边形等)的平移、缩放、旋转等几何变换(完整可...](https://download.csdn.net/download/weixin_53249260/88236610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值