1、四元数乘法
>> mul_QUA([1 2 3 1],[1 1 2 1])
ans =
-8 4 4 3
2、四元数求共轭
>> con_QUA([1 2 1 3])
ans =
1 -2 -1 -3
3、四元数求逆
>> inv_QUA([1 2 1 3])
ans =
0.0667 -0.1333 -0.0667 -0.2000
4、zyx转序得到的转动四元数及坐标变换程序
l=[0 0 1]';%初始向量端点
pusai=80;cita=70;phai=40;%zyx转序转动角度,弧度制
%zyx转序得出的四元数
q1=[cos(pusai/2) 0 0 sin(pusai/2)];
q2=[cos(cita/2) 0 sin(cita/2) 0];
q3=[cos(phai/2) sin(phai/2) 0 0];
q=mul_QUA(mul_QUA(q1,q2),q3);%转轴用原始坐标反映时顺序相反
temp=mul_QUA(mul_QUA(inv_QUA(q),[0 0 0 1]'),q);%可以直接用这个计算坐标与欧拉角法一致
r=[temp(2) temp(3) temp(4)]';
求得旋转后坐标,与欧拉角法得到的转动一致
r =
-0.7739
0.4719
-0.4224
附:欧拉角转动程序,zyx转序
l=[0 0 1]';
pusai=80;cita=70;phai=40;
%求转换矩阵
Cz=[cos(pusai),sin(pusai),0;
-sin(pusai),cos(pusai),0;
0,0,1];
%求转换矩阵
Cy=[cos(cita),0,-sin(cita);
0,1,0;
sin(cita),0,cos(cita)];
%求转换矩阵
Cx=[1,0,0;
0,cos(phai),sin(phai);
0,-sin(phai),cos(phai)];
%以上求转换阵
rr=Cx*Cy*Cz*[0 0 1]';
求得旋转后坐标
rr =
-0.7739
0.4719
-0.4224
- 1
- 2
- 3
前往页