平移齐次坐标变换:
空间某点由矢量 描述。其中, 为轴 上的单位矢量。此点可用平移齐次变换表示为:
旋转齐次坐标变换:
表 , 表 ,非齐次去掉第四行第四列就行了。
绕x轴作转角为的旋转变换:
绕y轴作转角为的旋转变换:
绕z轴作转角为的旋转变换:
如果先让物体绕z轴旋转90°,接着绕y轴旋转90°,再沿x轴方向平移1个单位(右手坐标系,右手定则旋转),则:
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 中为角度)。
点绕坐标系旋转 与 坐标系自身旋转
坐标系不动,点绕坐标系旋转:
上式表示:坐标系C下的点 ,先绕C的X轴旋转90°,再绕C的Y轴旋转90°,最后绕C的Z轴旋转180°(右手坐标系,右手定则旋转),则新的坐标(坐标系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的方位。
若将看做坐标系C2下的坐标, 将看做坐标系C1下的点,则,即坐标系C1中的点可在坐标系C2中表示为 (反之亦然)。
具体应用:若世界坐标系W到相机坐标系C的旋转变换为,相机坐标系下有空间点,则该空间点在世界坐标系下可表示为
refer: 位姿变换与李群、李代数_李代数位置变换-CSDN博客 中的 一、1.