欧拉角与四元数

欧拉角与四元数

ID:47208309

大小:67.50 KB

页数:6页

时间:2019-08-25

欧拉角与四元数_第1页
欧拉角与四元数_第2页
欧拉角与四元数_第3页
欧拉角与四元数_第4页
欧拉角与四元数_第5页
资源描述:

《欧拉角与四元数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、四元数与旋转一.四元组基础Q(x,y,z,w),其中x,y,z用来确定旋转轴,w为旋转的角度Q=w+xi+yj+zk,i,j,k为三个虚轴的单位分量I*j=kJ*k=i;K*i=j;叉乘:c=a×b=

2、ijk

3、

4、a1b1c1

5、

6、a2b2c2

7、=(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1)c也为一个向量,且c的长度为

8、a

9、

10、b

11、sin(theta),垂直于a和b所在的平面,方向由右手法则来判定,用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向1.四元组相乘:Q1=w1+x1i+y1j+z1k=(w1,v1)Q

12、2=w2+x2i+y2j+z2k=(w2,v2)Q1*Q2=(w1*w2-,w1*v2+w2*v1+v1xv2)(w1+x1i+y1j+z1k)*(w2+x2i+y2j+z2k)=w1*w2-x1*x2-y1*y2-z1*z2+(W1*x2+x1*w2+y1*z2-z1-y2)i+(y1*w2+w1*y2+z1*x2-x1*z2)j+(w1*z2+z1*w2+x1*y2-y1*x2)k对于其中的轴部分,假如v1//v2,则有v1xv2=0(平行向量的叉乘结果为0)2.四元组的点乘,点乘积为数值:Q1.*Q2=w1*w2+=w1*w2+x1*x2+y1*y

13、2+z1*z2;3.数乘s为一实数,q为四元组,则有sq=qs4.共轭p=(w,v),则p*=(w,-v)(pq)*=q*p*N(q)=w2+x2+y2+z2q-1=q*/N(q)---------------à显然可得qq-1=(1,0)二.使用四元数旋转向量假如有一表示向量的四元组q=(w,v),对其应用旋转量p后的结果为:q’=pqp-1=(w,v’)从上可以看出,计算的结果q’的实部和q的实部是相等的,并且有N(v)=N(v’)如果N(q)=1,则可以令q=(cosa,usina),u也为一个单位向量,则q’是q绕u旋转2a个弧度的结果假如S(q)表示q的实部,则有2S(q

14、)=q+q*2S(pqp-1)=pqp-1+(pqp-1)*=pqp*+(pqp*)*=pqp*+pq*p*=p(q+q*)p*=2S(q)(这里由于p是单位四元数,所以有p-1等于p*)欧拉角到四元数的转换定义pitch,yaw,roll分别为绕X轴、Y轴、Z轴的旋转弧度floatp=pitch*PIOVER180/2.0;floaty=yaw*PIOVER180/2.0;floatr=roll*PIOVER180/2.0;floatsinp=sin(p);floatsiny=sin(y);floatsinr=sin(r);floatcosp=cos(p);floatcosy=c

15、os(y);floatcosr=cos(r);this->x=sinr*cosp*cosy-cosr*sinp*siny;this->y=cosr*sinp*cosy+sinr*cosp*siny;this->z=cosr*cosp*siny-sinr*sinp*cosy;this->w=cosr*cosp*cosy+sinr*sinp*siny;normalise();三.使用matlab进行相关计算计算两个向量v1和v2之间的旋转量四元数p,使得v1应用p后到达v2假如v1转到v2的旋转轴为v,旋转角为theta,则q=[v*cos(theta/2)sin(theta/2)]M

16、atlab代码:functionq=vector2q(v1,v2)%..normalize....len1=sqrt(v1*v1');len2=sqrt(v2*v2');v1=v1/len1;v2=v2/len2;angle=v1*v2';axis=cross(v1,v2);alen=sqrt(axis*axis');axis=axis/alen;t=acos(angle);t=t/2;q(1)=axis(1)*sin(t);q(2)=axis(2)*sin(t);q(3)=axis(3)*sin(t);q(4)=cos(t);end计算出了q之后,可以获得对应的旋转矩阵,旋转矩阵

17、的计算Matlab里面的矩阵是以列为主顺序的functionr=q2rot(q)w=q(4);x=q(1);y=q(2);z=q(3);r=zeros(3,3);r(1,1)=1-2*y*y-2*z*z;r(1,2)=2*x*y+2*w*z;r(1,3)=2*x*z-2*w*y;r(2,1)=2*x*y-2*w*z;r(2,2)=1-2*x*x-2*z*z;r(2,3)=2*z*y+2*w*x;r(3,1)=2*x*z+2*w*y;r(3,2)=2*y*z-2*w*x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。