齐次坐标变换 坐标变换 坐标系变换 旋转矩阵 坐标旋转 坐标系旋转 欧拉角 Matlab 平移 旋转

2 篇文章 0 订阅
2 篇文章 1 订阅

平移齐次坐标变换: 

空间某点由矢量 a\boldsymbol{i}+b\boldsymbol{j}+c\boldsymbol{k} 描述。其中,\boldsymbol{i,j,k} 为轴 x,y,z 上的单位矢量。此点可用平移齐次变换表示为: 

Trans(a,b,c)=\begin{bmatrix} 1 & 0 & 0 & a \\ 0 & 1 & 0 & b\\ 0 & 0 & 1 & c \\ 0 & 0 & 0 & 1 \end{bmatrix}

旋转齐次坐标变换: 

s  sinc 表 cos ,非齐次去掉第四行第四列就行了。

绕x轴作转角为\theta的旋转变换:

Rot(x,\theta )=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & c\theta & -s\theta & 0 \\ 0 & s\theta & c\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

绕y轴作转角为\theta的旋转变换: 

Rot(y,\theta )=\begin{bmatrix} c\theta & 0 & s\theta & 0 \\ 0 & 1 &0 & 0 \\ -s\theta & 0 & c\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

绕z轴作转角为\theta的旋转变换: 

Rot(z,\theta )=\begin{bmatrix} c\theta & -s\theta & 0 & 0 \\ s\theta & c\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

如果先让物体绕z轴旋转90°,接着绕y轴旋转90°,再沿x轴方向平移1个单位(右手坐标系,右手定则旋转),则: 

T=Trans(1,0,0)Rot(y,90)Rot(z,90)

eul2rotm()      (MatlabR2016a)

eul=[angle1 angle2 angle3]

eul2rotm(eul,'ZYX') 是先绕X轴旋转angle3再绕Y轴旋转angle2再绕Z轴旋转angle1。( eul2rotm中为弧度)

如:

eul = [pi pi/2 pi/2];
rotm1 = eul2rotm(eul,'ZYX'); 
rotm1*[0 1 0]'

表示  [0;1;0],先绕X轴旋转90°,再绕Y轴旋转90°,最后绕Z轴旋转180°(右手坐标系,右手定则旋转),结果为 [-1;0;0]。

也可以:

eul2 = rad2deg([pi pi/2 pi/2]);
rotm2 = rotz(eul2(1)) * roty(eul2(2)) * rotx(eul2(3));
rotm2*[0 1 0]'

结果也为 [-1;0;0](rotx,y,z 中为角度)。

点绕坐标系旋转 与 坐标系自身旋转

坐标系不动,点绕坐标系旋转:

 [-1,0,0]'= Rotz(180)*Roty(90)*Rotx(90)*[0,1,0]' 

上式表示:坐标系C下的点 P_{c}=[0,1,0]'先绕C的X轴旋转90°,再绕C的Y轴旋转90°,最后绕C的Z轴旋转180°(右手坐标系,右手定则旋转),则新的坐标(坐标系C下)P_{c}^{'} =[-1,0,0]'

即:R_{xyz} = Rotz(180)*Roty(90)*Rotx(90),P_{c}^{'} = R_{xyz}*P_{c}

同一个点,坐标系自身的旋转:

设一开始坐标系C1和坐标系C2重合,且坐标系C2经过先绕C1的X轴旋转90°再绕C1的Y轴旋转90°最后绕C1的Z轴旋转180°的变换后为新的坐标系C2(等同于坐标系C2经过先绕C2的Z轴旋转180°到C2',再绕C2'的Y轴旋转90°到C2'',最后绕C2''的X轴旋转90°)。

则这个过程可视作坐标系C1 到 (新)坐标系C2的旋转变换整个过程坐标系C1未动):

_{c2}^{c1}\textrm{R}=Rotz(180)*Roty(90)*Rotx(90),此时 _{c2}^{c1}\textrm{R} 也描述 (新)坐标系C2相对于坐标系C1的方位。

若将[0,1,0]'看做坐标系C2下的坐标P_{c2}, 将[-1,0,0]'看做坐标系C1下的点P_{c1},则P_{c1}= _{c2}^{c1}\textrm{R} *P_{c2},即坐标系C1中的点P_{c1}可在坐标系C2中表示为P_{c2} (反之亦然)。       

具体应用:若世界坐标系W到相机坐标系C的旋转变换为_{C}^{W}\textrm{R},相机坐标系下有空间点P_{C},则该空间点在世界坐标系下可表示为P_{W}= _{C}^{W}\textrm{R} *P_{C}

refer: 位姿变换与李群、李代数_李代数位置变换-CSDN博客 中的 一、1.

          坐标变换(2)—不同坐标系下的变换 - 知乎

          机器人学——姿态描述方法(欧拉角,固定角,D-H法,绕定轴旋转)_欧拉角 定轴-CSDN博客

          相机矩阵(Camera Matrix)-CSDN博客

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值