本文主要参考清华大学出版社的《机器人仿真与编程技术》一书
现在想把A通过旋转变换到B,角表示法有24中,分为两大类:
第一个就是每次都绕A的坐标系参考轴旋转,称为固定角坐标系,这时候旋转采用左乘,比如依次绕xyz旋转,旋转矩阵:
R=rotz(pi/3)*roty(pi/3)*rotx(pi/3)
后旋转的在先旋转变换的左侧,或者可以写成
R=rpy2r(pi/3,pi/3,pi/3,'zyx')
当想得到旋转的角度时
TB=tr2rpy(R,'zyx')
得到弧度制表示方法
TB =
1.0472 1.0472 1.0472
第二个就是每次都绕B的坐标系参考轴旋转,称为欧拉角坐标系法,这时候旋转采用右乘,比如依次绕xyz旋转,旋转矩阵:
R=rotx(pi/3)*roty(pi/3)*rotz(pi/3)
后旋转的在先旋转变换的右侧,或者可以写成(这个函数默认时z-y-z构型)
R=eul2r(pi/3,pi/3,pi/3)
同理tr2eul得到z-y-z的旋转角度
还有一种表示方法就是向量表示法:使用向量去表示一个坐标系,平时设计少,不做详细说明
机器人工具箱提供了oa2r()计算两个非平行的向量所定义的一个坐标系。
使用angvec2r定义了绕向量旋转特定角度的变换矩阵