张斯禹的技术专栏 C++ and Python Coder

quaternion四元数在机器人转向中的应用

2019-02-28


四元数

概述

  • 四元数是复数的一个延伸,相对于复数的二维空间,代表着一个四维空间.
  • 解决了传统方法如欧拉角的万向锁问题

    基本公式

  • $H=R+xi+yj+zk$
  • $i^2=j^2=k^2=-1$
  • 满足分配率
  • 不满足交换率
    $ij=-ji=k$
    $ki=-ik=j$
    $jk=-kj=i$
  • 求共轭
    $q=W+X_0i+Y_0j+Z_0k$
    则: $q^{-1}=W-X_0i-Y_0j-Z_0k$

    描述三维钢体旋转

    1. $p=0+X_1i+Y_1j+Z_1k$
      $(X_1,Y_1,Z_1)为钢体三维矢量$
  1. $(X_0,Y_0,Z_0)为转轴向量$
    $\alpha 为旋转角度$
    则: $q=cos(\alpha /2)+sin(\alpha/2)(X_0i+Y_0j+Z_0k)$
  2. $f(p) = qpq^{-1}为旋转后钢体方向向量$

    旋转符合右手定理

    • 大拇指为转轴向量
    • 四指握隆方向为旋转正向

附 Roll横滚 Pitch俯仰 Yaw偏航角

Roll: Pitch: Yaw:


Similar Posts

上一篇 vscode学习随笔

Comments