ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:67.50KB ,
资源ID:9438394      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9438394.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(欧拉角与四元数.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

欧拉角与四元数.doc

1、四元数与旋转 一.四元组基础 Q(x,y,z,w),其中x,y,z用来确定旋转轴,w为旋转的角度 Q=w+xi+yj+zk,i,j,k为三个虚轴的单位分量 I*j=k J*k=i; K*i=j; 叉乘: c=a × b= | i j k| |a1 b1 c1| |a2 b2 c2| =(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1) c也为一个向量,且c的长度为|a||b|sin(theta),垂直于a和b所在的平面,方向由右手法则来判定,用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇

2、指所指的方向就是向量c的方向 1. 四元组相乘: Q1=w1+x1i+y1j+z1k=(w1,v1) Q2=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 对于其中的轴部分,

3、假如v1//v2,则有v1 x v2=0(平行向量的叉乘结果为0) 2. 四元组的点乘,点乘积为数值: Q1.*Q2=w1*w2+=w1*w2+x1*x2+y1*y2+z1*z2; 3. 数乘 s为一实数,q为四元组,则有sq=qs 4. 共轭 p=(w,v),则p*=(w,-v) (pq)*=q*p* N(q)=w2+x2+y2+z2 q-1=q*/N(q)---------------à显然可得qq-1=(1,0) 二.使用四元数旋转向量 假如有一表示向量的四元组q=(w,v),对其应用旋转量p后的结果为:

4、 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)=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分别为绕

5、X轴、Y轴、Z轴的旋转弧度 float p = pitch * PIOVER180 / 2.0; float y = yaw * PIOVER180 / 2.0; float r = roll * PIOVER180 / 2.0; float sinp = sin(p); float siny = sin(y); float sinr = sin(r); float cosp = cos(p); float cosy = cos(y); float cosr = cos(r); this->

6、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 假

7、如v1转到v2的旋转轴为v,旋转角为theta,则q=[v*cos(theta/2) sin(theta/2)] Matlab代码: function q=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

8、); q(2)=axis(2)*sin(t); q(3)=axis(3)*sin(t); q(4)=cos(t); end 计算出了q之后,可以获得对应的旋转矩阵,旋转矩阵的计算 Matlab里面的矩阵是以列为主顺序的 function r=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,

9、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; r(3,3)=1-2*x*x-2*y*y; r=r'; end 同时,也可以根据四元数来计算欧拉角 function R=q2euler(q) w=q(4); x=q(1); y=q(2); z=q(3); t11=2*(w*x+y*z); t12=1-2*(x*x+y*y); R(1)=atan2(t11,t12); t2=2*(w*y-z*x); R(2)=asin(t2

10、); t31=2*(w*z+x*y); t32=1-2*(y*y+z*z); R(3)=atan2(t31,t32); end 计算出来的欧拉角rx,ry,rz,分别为绕X轴、Y轴和Z轴的旋转角,假如有: Rotq=q2rot(q) R=q2euler(q) [rotx roty rotz]=Rotation(R) 可以发现Rotq==rotz*roty*rotx 从这里可以看出,上面使用四元数这样计算出来的旋转矩阵的旋转顺序分别是X轴、Y轴和Z轴的 ra=pi/4; qz=[0 0 -sin(ra) cos(ra)] %绕z旋转-90度 q

11、y=[0 sin(ra) 0 cos(ra) ] %绕y旋转90度 qyz=qmult(qy,qz) r=q2euler(qyz) 上面的r得出的结果为 r = -1.5708 0.0000 -1.5708 也就是说其几何意义变成先绕X轴旋转-90度,再绕Z轴旋转-90度,而根据qy和qz的相乘我们实际进行的操作却是先绕Z轴旋转-90度,再绕Y轴旋转90度,但是结果却是这两种操作等价,这说明由四元数到欧拉角可以有多个解 两个四元数,假如它们的方向是相反的,用它们作用于向量得到的新向量的值仍然相等 q1=[0.024666 -0.023954 0.50472

12、7 0.862594]; arm=[-8.881719 6.037597 -2.36776]; q2=-q1; rot1=q2rot(q1); rot2=q2rot(q2); v1=rot1*arm' v2=rot2*arm' 上面计算出来的v1等于v2 四元数的余弦值为它们的内积 假如余弦值小于0,则需要将其中的一个取反,因为上面我们知道一个四元数和它的反方向的四元数对一个向量起相同的作用 四元数的相乘,代表旋转的累积 pq=p*q; rotp=q2rot(p); rotq=q2rot(q); rotpq=q2rot(pq); ro

13、tmul=rotp*rotq; 这里rotpq与rotmul相等 四. OGRE中Quaternion类的几个函数 1. 四元数到旋转向量 void Quaternion::ToRotationMatrix (Matrix3& kRot) const 1 - 2*qy2 - 2*qz2 2*qx*qy - 2*qz*qw 2*qx*qz + 2*qy*qw 2*qx*qy + 2*qz*qw 1 - 2*qx2 - 2*qz2 2*qy*qz - 2*qx*qw 2*qx*qz - 2*qy*qw 2*qy*qz + 2*qx*qw

14、 1 - 2*qx2 - 2*qy2 2. 旋转量到四元数 根据1中的表格,有: 4 *(1-qx2-qy2-qz2) = 1 + m00 + m11 + m22 又qw2=1-qx2-qy2-qz2,可得 4 *qw2= 1 + m00 + m11 + m22 这里解qw必须保证1 + m00 + m11 + m22>=0,如果不是的话,就构造其他的等式来计算,OGRE中分成两种情况,一种是m00 + m11 + m22>=0,就可以直接先解出qw,否则的采用另外的等式计算 3.Local axis Vector3 xAixs(void) const; 取得旋转矩阵的第一列,旋转矩阵和一个向量相乘的话,第一列的数据均和向量的x分量相乘 Vecotr3 yAxis(void) const; 取得旋转矩阵的第二列,旋转矩阵和一个向量相乘的话,第二列的数据均和向量的y分量相乘 Vecotr3 zAxis(void) const; 取得旋转矩阵的第三列,旋转矩阵和一个向量相乘的话,第三列的数据均和向量的z分量相乘

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服