matlab 罗德里格 公式,旋转矩阵,四元素,欧拉角

旋转变换

旋转变换最为直观的表示方法是“轴-角”:绕着某一个过原点轴,旋转某一角度。

轴可以用一个单位长度的点[w1,w2,w3][w1,w2,w3]表示:原点到该点的射线即为此轴。

使用右手座标系,拇指指向轴方向,四指方向即为旋转的方向。

一个旋转变换可以用用欧拉角、四元数或者旋转矩阵表示。以下讨论不同表示方法之间的关系,以及旋转变换的合成、取逆等操作。

旋转矩阵

旋转可以看做一种特殊的座标变换,而座标变换可以用用3×33×3矩阵RR来表示。对一个座标施加旋转的结果是x′=Rxx′=Rx。

旋转矩阵可以在不同座标系之间进行变换,但不能进行“反演”,即不能在左手系和右手系之间进行变换。

旋转矩阵是正交矩阵,即|R|=1|R|=1,旋转变换不改变向量的长度。

欧拉角的物理意义

任何一个旋转可以表示为依次绕着三个旋转轴旋三个角度的组合。这三个角度称为欧拉角。

三个轴可以指固定的世界座标系轴,也可以指被旋转的物体座标系的轴。三个旋转轴次序不同,会导致结果不同。

本文中提到的欧拉角指:绕着世界座标系的x,y,z轴,依次旋转的结果。其取值范围如下:

θx∈(−π,π),θy∈(−π2,π2),θz∈(−π,π)

θx∈(−π,π),θy∈(−π2,π2),θz∈(−π,π)

欧拉角→→旋转矩阵

单独绕一个轴旋转θθ角度的旋转矩阵为:

如果依次绕x轴、y轴、z轴旋转,该变换的旋转矩阵为:

R=Rz⋅Ry⋅Rx

R=Rz⋅Ry⋅Rx

记三个轴欧拉角的正弦和余弦函数为sx,cx,sy,cy,sz,czsx,cx,sy,cy,sz,cz。使用matlab的syms功能可以轻松推导旋转矩阵RR:

⎡⎣⎢cyczcysz−syczsxsy−cxszcxcz+sxsyszcysxsxsz+cxczsycxsysz−czsxcxcy⎤⎦⎥

[cyczczsxsy−cxszsxsz+cxczsycyszcxcz+sxsyszcxsysz−czsx−sycysxcxcy]

旋转矩阵→→欧拉角

设旋转矩阵i行j列元素为rijrij。根据旋转矩阵的表达式,利用三角函数可以推导出欧拉角取值:

θx=atan2(r32,r33)

θx=atan2(r32,r33)

θy=atan2(−r31,r232+r233−−−−−−−√)

θy=atan2(−r31,r322+r332)

θz&

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值