您好!欢迎光临工博士商城

库卡机器人一级服务商

产品:149    

咨询热线:

您当前的位置:首页 » 新闻中心 » 库卡机器人编程之欧拉角与四元数转换
产品分类
  • 暂无分类
新闻中心
库卡机器人编程之欧拉角与四元数转换
发布时间:2021-11-30        浏览次数:174        返回列表
 important;">1.库卡机器人在空间点位表示方法通常为X、Yimportant;">Zimportant;">Aimportant;">Bimportant;">C,其中important;">A、B、C表示该点的旋转姿态(A/B/C分别对应Z/Y/X轴的旋转),也成为欧拉角。        

QQ图片20201218085520

important;">定义important;">分别为绕Z、Y、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。

QQ图片20201218085514

2.四元数:

四元数(quaternion)可以看作中学时学的复数的扩充,它有important;">三个虚部:Q=w+xi+yj+zk,
其中w,x,y,z又叫四元数的元素。

QQ图片20201218085425

3.库卡欧拉角转四元数:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
DEFFCT QUATERNION EulerZYXToQuaternion(ABC:IN )DECL EulerZYX ABCDECL QUATERNION QDECL REAL SINA,COSADECL REAL SINB,COSBDECL REAL SINC,COSCDECL INT SumIF VARSTATE("ABC")<>#INITIALIZED THEN   MsgQuit("Input Euler Angles not initialized!")   LOOP     HALT   ENDLOOPENDIFSINC=SIN(ABC.Rx*0.5)COSC=COS(ABC.Rx*0.5)SINB=SIN(ABC.Ry*0.5)COSB=COS(ABC.Ry*0.5)SINA=SIN(ABC.Rz*0.5)COSA=COS(ABC.Rz*0.5)Q.W=COSC*COSB*COSA+SINC*SINB*SINAQ.X=SINC*COSB*COSA-COSC*SINB*SINAQ.Y=COSC*SINB*COSA+SINC*COSB*SINAQ.Z=COSC*COSB*SINA-SINC*SINB*COSASum=Q.W*Q.W+Q.X*Q.X+Q.Y*Q.Y+Q.Z*Q.ZIF Sum<>1 THEN   MsgQuit("Sum of Quaternion elements power NOT 1!")   LOOP     HALT   ENDLOOPELSE  RETURN (Q)ENDIFENDFCT
4.四元数转化库卡欧拉角:
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
DEFFCT EulerZYX QuaternionToEulerZYX(Q:IN )DECL EulerZYX RetDECL QUATERNION QDECL INT SumDECL REAL Tempz1,Tempz2DECL REAL TempyDECL REAL Tempx1,Tempx2IF VARSTATE("Q")<>#INITIALIZED THEN  MsgQuit("Input Quaternion not initialized!")  LOOP    HALT  ENDLOOPENDIFSum=Q.W*Q.W+Q.X*Q.X+Q.Y*Q.Y+Q.Z*Q.ZIF Sum<>1 THEN   MsgQuit("Sum of Quaternion elements power NOT 1!")   LOOP     HALT   ENDLOOPENDIFTempx1=2*(Q.Y*Q.Z+Q.W*Q.X)Tempx2=Q.W*Q.W-Q.X*Q.X-Q.Y*Q.Y+Q.Z*Q.ZTempy=2*(Q.W*Q.Y-Q.X*Q.Z)Tempz1=2*(Q.X*Q.Y+Q.W*Q.Z)TempZ2=Q.W*Q.W+Q.X*Q.X-Q.Y*Q.Y-Q.Z*Q.ZRet.Rx=ATAN2(Tempx1,Tempx2)Ret.Rz=ATAN2(Tempz1,tempz2)Ret.Ry=90-ACOS(Tempy)RETURN (RET)ENDFCT
5.测试:
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
DEF FunctionTest( )DECL QUATERNION Q1,Q2DECL EulerZYX ZYX1,ZYX2ZYX1={Rz 3,Ry 2,Rx 1}Q2={W 0.5,X 0.5,Y 0.5,Z 0.5}Q1=EulerZYXToQuaternion(ZYX1)HALTZYX2=QuaternionToEulerZYX(Q2)HALTEND

QQ图片20201218085528QQ图片20201218085541

                                                 了解KUKA机器人 gbskukadl.gongboshi.com


分享到: 


 

联系热线:   联系人:顾天佑 联系地址:上海市嘉定区南翔镇众仁路399号B栋20层2007-2012

技术和报价服务:星期一至星期六8:00-22:00 库卡机器人一级服务商