文章目录

  • 一、二维旋转矩阵
    • 1.向量绕原点旋转
    • 2.坐标轴绕原点旋转
  • 二、三维旋转矩阵
    • 1.坐标轴绕z轴旋转
    • 2.坐标轴绕y轴旋转
    • 3.坐标轴绕x轴旋转
    • 4.向量绕某一坐标轴旋转

一、二维旋转矩阵

1.向量绕原点旋转

在二维坐标系xoy中,存在一个向量a=[x,y],将其绕原点O逆时针旋转 θ \theta θ角度,定义逆时针旋转为正,得到新的向量a’=[x’,y’],如图所示。

设向量a的长度为r,则容易得到a的坐标为
[ x y ] = r [ cos ⁡ λ sin ⁡ λ ] \begin{bmatrix} x \\ y \\ \end{bmatrix} = r \begin{bmatrix} \cos\lambda \\ \sin\lambda \end{bmatrix} [xy​]=r[cosλsinλ​]
向量a’的长度同样为r,可以得到a’的坐标为
[ x ′ y ′ ] = r [ cos ⁡ ( λ + θ ) sin ⁡ ( λ + θ ) ] = r [ cos ⁡ λ cos ⁡ θ − sin ⁡ λ sin ⁡ θ sin ⁡ λ cos ⁡ θ + cos ⁡ λ sin ⁡ θ ] = [ x cos ⁡ θ − y sin ⁡ θ y cos ⁡ θ + x sin ⁡ θ ] = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] [ x y ] \begin{bmatrix} x' \\ y' \end{bmatrix} = r \begin{bmatrix} \cos(\lambda + \theta) \\ \sin(\lambda + \theta) \end{bmatrix} = r \begin{bmatrix} \cos\lambda\cos\theta-\sin\lambda\sin\theta \\ \sin\lambda\cos\theta+\cos\lambda\sin\theta \end{bmatrix} = \begin{bmatrix} x\cos\theta-y\sin\theta \\ y\cos\theta+x\sin\theta \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [x′y′​]=r[cos(λ+θ)sin(λ+θ)​]=r[cosλcosθ−sinλsinθsinλcosθ+cosλsinθ​]=[xcosθ−ysinθycosθ+xsinθ​]=[cosθsinθ​−sinθcosθ​][xy​]
所以可以得到旋转矩阵为
C n b = [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] C_{n}^{b} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} Cnb​=[cosθsinθ​−sinθcosθ​]

2.坐标轴绕原点旋转

和向量的旋转不同的是,坐标轴的旋转是将坐标轴xoy绕原点O进行旋转,向量保持不动。将坐标轴xoy绕原点O逆时针旋转 θ \theta θ角度,定义逆时针旋转为正,得到一个新的坐标系x’oy’,如图所示。

向量a在坐标系xoy中的坐标为
[ x y ] = r [ cos ⁡ λ sin ⁡ λ ] \begin{bmatrix} x \\ y \\ \end{bmatrix} = r \begin{bmatrix} \cos\lambda \\ \sin\lambda \end{bmatrix} [xy​]=r[cosλsinλ​]
根据几何关系可以得到向量a’的坐标为
{ x ′ = x cos ⁡ θ + y sin ⁡ θ y ′ = y cos ⁡ θ − x sin ⁡ θ \begin{cases} x' = x \cos\theta + y \sin\theta \\ y' = y \cos\theta - x \sin\theta \end{cases} {x′=xcosθ+ysinθy′=ycosθ−xsinθ​
整理成矩阵形式可以得到
[ x ′ y ′ ] = [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] [ x y ] \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta& \cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} [x′y′​]=[cosθ−sinθ​sinθcosθ​][xy​]
可以得到旋转矩阵为
C b n = [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] C_b^{n}= \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta& \cos\theta \end{bmatrix} Cbn​=[cosθ−sinθ​sinθcosθ​]
我们对比一下向量旋转矩阵 C n b C_n^{b} Cnb​和坐标轴旋转矩阵 C b n C_b^{n} Cbn​,可以看到 C n b = ( C b n ) T C_n^{b}=(C_b^{n})^{T} Cnb​=(Cbn​)T,向量旋转矩阵和坐标轴旋转矩阵刚好为转置的关系。因为将向量a逆时针旋转 θ \theta θ角度,相当于将坐标轴顺时针旋转 − θ -\theta −θ角度,将 − θ -\theta −θ带入 C b n C_b^{n} Cbn​中便可以得到 C n b C_n^b Cnb​。

二、三维旋转矩阵

1.坐标轴绕z轴旋转

定义坐标系Oxyz满足右手系,存在一个向量a的坐标为 [ x y z ] T \begin{bmatrix} x & y & z \end{bmatrix}^T [x​y​z​]T,将坐标轴Oxyz绕z轴逆时针旋转 θ \theta θ角度,定义右手拇指指向z轴正方向,四指弯曲指向方向为正方向,得到新的坐标系Ox’y’z’,向量a在新坐标系Ox’y’z’下的坐标为 [ x ′ y ′ z ′ ] T \begin{bmatrix} x' & y' & z' \end{bmatrix}^T [x′​y′​z′​]T,如图所示。

坐标轴绕z轴旋转,向量a在z轴上的坐标不变,x轴和y轴上的坐标和二维旋转中的坐标轴旋转相同,所以容易得到向量a在新坐标系Ox’y’z’下的坐标为
[ x ′ y ′ z ′ ] = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ x y z ] \begin{bmatrix} x' \\ y' \\ z' \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} ⎣⎡​x′y′z′​⎦⎤​=⎣⎡​cosθ−sinθ0​sinθcosθ0​001​⎦⎤​⎣⎡​xyz​⎦⎤​
所以绕z轴旋转的旋转矩阵为
C z = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] C_z = \begin{bmatrix} \cos\theta & \sin\theta & 0 \\ -\sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} Cz​=⎣⎡​cosθ−sinθ0​sinθcosθ0​001​⎦⎤​

2.坐标轴绕y轴旋转

和绕z轴旋转相似,定义右手拇指指向y轴正方向,四指弯曲指向方向为正方向。几何推导关系和绕z轴旋转相似,不再进行推导,直接给出旋转矩阵如下
C y = [ cos ⁡ θ 0 − sin ⁡ θ 0 1 0 sin ⁡ θ 0 cos ⁡ θ ] C_y = \begin{bmatrix} \cos\theta & 0 & -\sin\theta \\ 0 & 1 & 0 \\ \sin\theta & 0 & \cos\theta \\ \end{bmatrix} Cy​=⎣⎡​cosθ0sinθ​010​−sinθ0cosθ​⎦⎤​

3.坐标轴绕x轴旋转

定义右手拇指指向x轴正方向,四指弯曲指向方向为方向。旋转矩阵为
C x = [ 1 0 0 0 cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ ] C_x = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & \sin\theta \\ 0 & -\sin\theta & \cos\theta \\ \end{bmatrix} Cx​=⎣⎡​100​0cosθ−sinθ​0sinθcosθ​⎦⎤​

4.向量绕某一坐标轴旋转

向量的旋转和二维坐标系中的向量旋转相似,绕某一个坐标轴进行旋转时,相当于坐标轴进行反方向的旋转,所以只需要将旋转的角度取负值代入对应的坐标轴旋转矩阵即可。

注:欢迎转载,转载请注明出处,谢谢!!!

姿态变换(一)——旋转矩阵相关推荐

  1. 三维空间刚体变换:旋转矩阵

    点与坐标系 向量与坐标 空间中最基本的元素是点,点没有长度.体积.将两个点连接得到向量,向量表示由某点指向另一个点的有向线段. 对于一空间基底为 [ i j k ] \begin{bmatrix}i& ...

  2. 车辆姿态表达:旋转矩阵、欧拉角、四元数的转换以及eigen、matlab、pathon方法实现

    目录 1 概述 2 原理 2.1 旋转矩阵 2.1.1 绕x轴旋转 2.1.2 绕y轴旋转 2.1.3 绕z轴旋转 2.2 欧拉角 2.2.1 基本思想 2.2.2 欧拉角的缺点 2.3 四元数 2. ...

  3. 关于位姿变换的一点体会

    关于位姿变换的一点体会 1.题外话 2.刚体的位姿变换 2.1 位姿变换的定义 2.2 旋转矩阵的具体形式 2.2.1 二维情况 2.2.2 三维情况 3.旋转方向 4.平移方向 1.题外话 对于刚体 ...

  4. 【自动驾驶】26.【很清晰】旋转矩阵,欧拉角,四元数,旋转向量和齐次变换矩阵

    原文链接:https://blog.csdn.net/varyshare/article/details/91899049 前言 这几个名词都是用来描述一个物体的位置和姿态的.它们之间可以相互转化,而 ...

  5. 【计算机视觉】opencv姿态解算6 理论算法调研 PNP问题 5种算法

    关于PnP(pespective-n-point)的一些方法 最小PnP问题 P3P问题中假设没有噪声,使用几何约束,可以解得相机的位姿.不具有唯一解.  P4P问题中分为线性方法和基于P3P的方法. ...

  6. 1.1 机器人学之空间描述和变换

    文章目录 参考博文 描述位置 描述姿态 位姿描述 映射:不同坐标系变换 齐次变换矩阵 算子 平移算子 旋转算子 变换算子 小结 变换的计算 其他姿态描述方法 X-Y-Z固定角 Z-Y-X欧拉角 Z-Y ...

  7. 旋转矩阵转欧拉角(二自由度约束)

    旋转矩阵转欧拉角 1 关于欧拉角 2 转换公式推导 2.1 由欧拉角构造旋转矩阵 2.2 由旋转矩阵推算欧拉角 2.2.1 一般情况 2.2.2 约束滚转角 3 转换代码(C++) 3.1 欧拉角-- ...

  8. 基于四元素法的捷联惯导姿态更新算法

    摘要          本文主要介绍了机载捷联惯导系统常用的姿态更新算法--四元素法,并重点介绍了利用四元素法进行姿态更新的一般过程.        关键词:四元素法,连贯导,姿态 1 引言      ...

  9. 3维旋转矩阵推导与助记

    旋转矩阵的应用范围比较广,是姿态变换,坐标变换等的基础.本篇先介绍旋转矩阵的推导过程与助记方法. 旋转矩阵的旋转其实包含两种意思,一是在同一个坐标系下,向量的旋转:二是坐标系的旋转,使得同一向量在不同 ...

最新文章

  1. linux 内核 struct file 获取文件名 全路径
  2. SpringMVC的数据响应-页面跳转-返回ModelAndView3(应用)
  3. 分享我工作10年收藏的程序员技术网站
  4. Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决(转)...
  5. matlab anova 如何不画图,方差分析的数据处理和作图
  6. matlab知识集锦
  7. python model如何获取分类错误的数据_如何用python获取美股数据?
  8. 计算机专业学微机原理与接口技术,信息技术学院计算机科学与技术专业《微机原理与接口技术.doc...
  9. 提取WORD中的所有InlineShape图片并保存成文件
  10. 随机数抽奖程序 html,半小时撸一个抽奖程序
  11. 无源晶振(crystal)和有源晶振(oscillator)的区别
  12. Spring Cloud Gateway配置熔断CircuitBreaker
  13. 最简单的神经网络的例子,神经网络简单应用实例
  14. 「杀不掉的」僵尸(zombie)进程
  15. 站长号平台关于必须绑定手机才能发帖的相关说明
  16. android Preference以及监听事件学习
  17. Html-标题,表格,段落标记
  18. 小裙子怎样画?如何画出一条好看又自然的小短裙?
  19. 江苏事业单位招聘考计算机专业课,江苏省事业单位计算机专技岗备考指南
  20. 高端旗舰投影仪选购指南:当贝X3 Pro、当贝F5观影更沉浸!

热门文章

  1. 【Code Pratice】—— 第几天、K倍区间、煤球数量
  2. python调用函数指定次数_扣丁学堂Python在线视频之Python限制函数调用次数实例
  3. JS 中常用判断为空的方法
  4. 63、灭火器配置要求
  5. DUCATI XDIAVEL:杜卡迪最值得买的车:魔鬼诱惑 —— XDiavel S 评测
  6. VS2010快捷键及设置
  7. [ubuntu20]动态ip在路由器上mac地址绑定ip(虚拟机不能用Mac地址绑定IP)
  8. [Python] 如何证明两组样本有显著性差异(t-test假设检验)
  9. 饼图legend显示百分比
  10. 2022-2028全球连续氧化铝纤维行业调研及趋势分析报告