%% 给定角度 得到分别绕xyz轴转动的旋转矩阵
rotx();
roty();
rotz();
%% 转换
eul2r(); % 欧拉角转旋转矩阵
tr2eul(); % 旋转矩阵转欧拉角
rpy2r(); % 轴角转旋转矩阵
tr2rpy(); % 旋转矩阵转轴角
欧拉角:绕当前坐标系旋转,右乘
R = R z ( ϕ ) R y ( θ ) R z ( ψ ) \huge{R=R_z(\phi)R_y(\theta)R_z(\psi)} R=Rz(ϕ)Ry(θ)Rz(ψ)
% 例:
r1=eul2r(90,60,30);
r2=rotz(90)*roty(60)*rotz(30);
r1==r2
横滚-俯仰-航偏角:绕固定坐标系旋转,左乘
R = R x ( θ r ) R y ( θ p ) R z ( θ y ) \huge{R=R_x(\theta_r)R_y(\theta_p)R_z(\theta_y)} R=Rx(θr)Ry(θp)Rz(θy)
% 例:
r3=rpy2r(90,60,30);
r4=rotz(30)*roty(60)*rotx(90);
r3==r4
%% 给定角度 得到分别绕xyz轴转动的变换矩阵
trotx();
troty();
trotz();
%% 转换
eul2tr(); % 欧拉角转变换矩阵
tr2eul(); % 变换矩阵转欧拉角
rpy2tr(); % 轴角转变换矩阵
tr2rpy(); % 变换矩阵转轴角
%%%% 例:
T1=eul2r(90,60,30);
T2=trotz(90)*troty(60)*trotz(30);
T1==T2
T3=rpy2r(90,60,30);
T4=trotz(30)*troty(60)*trotx(90);
T3==T4
T = transl(1.5,1,0.5)*trotx(30)*trotz(60);
P = transl(T);
R=t2r(T)