文章目录

  • 摘要
  • Rotation matrices
  • Generalized rotation matrices
  • Finding two possible angles for θ\thetaθ
  • Find the corresponding angles of ψ\psiψ
  • Finding the corresponding angles of ϕ\phiϕ
  • Two solutions if cos⁡θ≠0\cos \theta \ne 0cosθ​=0
  • What if cos⁡θ=0\cos \theta=0cosθ=0?
  • Pseudo-code
  • More than one solution
  • reference

摘要

本文档讨论了从旋转矩阵中找所有可能欧拉角的简单技术。在计算机图形学、视觉,机器人和动力学中,有时候欧拉角的确定是必须的一步。然而,它的解可能不是那么的显而易见。
paper: Computing Euler angles from a rotation matrix
author:Gregory G. Slabaugh

Rotation matrices

我们从绕三个主轴旋转的标准定义开始。
绕x轴旋转ψ\psiψ弧度可定义为
Rx(ψ)=[1000cos⁡ψ−sinψ0sin⁡ψcos⁡ψ]R_x(\psi) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \psi & -sin \psi \\ 0 & \sin \psi & \cos \psi \end{bmatrix} Rx​(ψ)=⎣⎡​100​0cosψsinψ​0−sinψcosψ​⎦⎤​
与此类似,绕y轴旋转θ\thetaθ弧度可定义为
Ry(θ)=[cos⁡θ0sinθ010−sin⁡θ0cos⁡θ]R_y(\theta) = \begin{bmatrix} \cos \theta & 0 & sin \theta \\ 0 & 1 & 0 \\ -\sin \theta & 0 & \cos \theta \end{bmatrix} Ry​(θ)=⎣⎡​cosθ0−sinθ​010​sinθ0cosθ​⎦⎤​
最后,绕z轴旋转ϕ\phiϕ弧度可定义为
Rz(ϕ)=[cos⁡ϕ−sin⁡ϕ0sin⁡ϕcos⁡ϕ0001]R_z(\phi) = \begin{bmatrix} \cos \phi & -\sin \phi & 0 \\ \sin \phi & \cos \phi & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz​(ϕ)=⎣⎡​cosϕsinϕ0​−sinϕcosϕ0​001​⎦⎤​
角ψ,θ,ϕ\psi, \theta, \phiψ,θ,ϕ是欧拉角。

Generalized rotation matrices

旋转矩阵一般可以写成
R=[R11R12R13R21R22R23R31R32R33]R = \begin{bmatrix} R_{11} & R_{12} & R_{13} \\ R_{21} & R_{22} & R_{23} \\ R_{31} & R_{32} & R_{33} \end{bmatrix} R=⎣⎡​R11​R21​R31​​R12​R22​R32​​R13​R23​R33​​⎦⎤​
可以将此矩阵考虑为三个旋转序列,每个旋转轴绕一个主轴旋转。由于矩阵乘法不满足交换律,因此绕轴旋转的顺序会影响结果。对于此分析,我们将首先绕x轴旋转,然后绕y轴旋转,最后绕z轴旋转。 这样的旋转序列可以表示为矩阵乘积,
R=Rz(ϕ)Ry(θ)Rx(ψ)=[cos⁡θcos⁡ϕsin⁡ψsin⁡θcos⁡ϕ−cos⁡ψsin⁡ϕcos⁡ψsin⁡θcos⁡ϕ+sin⁡ψsin⁡ϕcos⁡θsin⁡ϕsin⁡ψsin⁡θsin⁡ϕ+cos⁡ψcos⁡ϕcos⁡ψsin⁡θsin⁡ϕ−sin⁡ψcos⁡ϕ−sin⁡θsin⁡ψcos⁡θcos⁡ψcos⁡θ]\begin{alignedat}{2} R = R_z(\phi)R_y(\theta)R_x(\psi) \\ &=\begin{bmatrix} \cos \theta \cos \phi & \sin \psi \sin \theta \cos \phi-\cos \psi \sin \phi & \cos \psi \sin \theta \cos \phi+\sin \psi \sin \phi \\ \cos \theta \sin \phi & \sin \psi \sin \theta \sin \phi+\cos \psi \cos \phi & \cos \psi \sin \theta \sin \phi-\sin \psi \cos \phi \\ -\sin \theta & \sin \psi \cos \theta & \cos \psi \cos \theta \end{bmatrix} \end{alignedat} R=Rz​(ϕ)Ry​(θ)Rx​(ψ)​=⎣⎡​cosθcosϕcosθsinϕ−sinθ​sinψsinθcosϕ−cosψsinϕsinψsinθsinϕ+cosψcosϕsinψcosθ​cosψsinθcosϕ+sinψsinϕcosψsinθsinϕ−sinψcosϕcosψcosθ​⎦⎤​​
给定一个旋转矩阵RRR,我们可以通过将RRR每个元素与矩阵乘积Rz(ϕ)Ry(θ)Rx(ϕ)R_z(\phi)R_y(\theta)R_x(\phi)Rz​(ϕ)Ry​(θ)Rx​(ϕ)对应元素相等计算欧拉角ψ,θ,ϕ\psi, \theta, \phiψ,θ,ϕ。这将得到九个方程,可用于找到欧拉角。

Finding two possible angles for θ\thetaθ

由R31R_{31}R31​,我们得到
R31=−sin⁡θR_{31} = - \sin \theta R31​=−sinθ
对等式求反得到
θ=−asin(R31)(1)\theta = - \mathrm{asin}(R_{31}) \tag{1} θ=−asin(R31​)(1)
然而,对等式(1)解释的时候应该注意到sin⁡(π−θ)=sin⁡θ\sin (\pi - \theta)=\sin \thetasin(π−θ)=sinθ,因此有两个不同的θ\thetaθ都满足等式(1)(备注:除了θ=±π/2\theta= \pm \pi /2θ=±π/2(即R31=±1R_{31}=\pm1R31​=±1))。因此θ\thetaθ有两个有效的解。
θ1=−asin(R31)θ2=π−θ1=π+asin(R31)\begin{aligned} \theta_1 &= - \mathrm{asin}(R_{31}) \\ \theta_2 &= \pi - \theta_1 = \pi + \mathrm{asin}(R_{31}) \end{aligned} θ1​θ2​​=−asin(R31​)=π−θ1​=π+asin(R31​)​
接下来的报告中,我们将单独处理R31=±1R_{31}= \pm 1R31​=±1的情况。因此,通过利用R31R_{31}R31​元素的值,我们可以确定θ\thetaθ的两个不同的值。

Find the corresponding angles of ψ\psiψ

为了找到ψ\psiψ的值,我们观察到
R32R33=tan⁡(ψ)\frac{R_{32}}{R_{33}} = \tan(\psi) R33​R32​​=tan(ψ)
我们使用该等式解ψ\psiψ,有
ψ=atan2(R32,R33)(2)\psi = \mathrm{atan2}(R_{32}, R_{33}) \tag{2} ψ=atan2(R32​,R33​)(2)
其中atan2(y,x)\mathrm{atan2}(y, x)atan2(y,x)表示变量x,yx, yx,y的反正切,它类似于计算y / x的反正切,不同之处在于,两个自变量的符号都用于确定结果的象限,该象限在[-π,π]范围内。函数atan2\mathrm{atan2}atan2在很多程序语言中都有实现。
在解释等式(2)时我们注意到,当cos⁡θ>0\cos \theta \gt 0cosθ>0时, ψ=atan(R32,R33)\psi = \mathrm{atan(R_{32}, R_{33})}ψ=atan(R32​,R33​),然而,当cos⁡ψ<0\cos \psi \lt 0cosψ<0时, ψ=atan2(−R32,−R33)\psi = \mathrm{atan2}(-R_{32}, -R_{33})ψ=atan2(−R32​,−R33​),一个简单的解决方法是使用等式
ψ=atan2(R32cos⁡θ,R33cos⁡θ)(3)\psi = \mathrm{atan2}\left(\frac{R_{32}}{\cos \theta}, \frac{R_{33}}{\cos \theta} \right) \tag{3} ψ=atan2(cosθR32​​,cosθR33​​)(3)
计算ψ\psiψ。
等式3对于所有的情况都适用,除了当cos⁡θ=0\cos \theta = 0cosθ=0时,随后将处理这种特殊情况。对于每一个θ\thetaθ值,我们利用等式(3)计算一个对应的ψ\psiψ值,得到
ψ1=atan2(R32cos⁡θ1,R33cos⁡θ1)(4)\psi_1 = \mathrm{atan2} \left( \frac{R_{32}}{\cos \theta_1}, \frac{R_{33}}{\cos \theta_1} \right) \tag{4} ψ1​=atan2(cosθ1​R32​​,cosθ1​R33​​)(4)
ψ2=atan2(R32cos⁡θ2,R33cos⁡θ2)(5)\psi_2 = \mathrm{atan2} \left( \frac{R_{32}}{\cos \theta_2}, \frac{R_{33}}{\cos \theta_2} \right) \tag{5} ψ2​=atan2(cosθ2​R32​​,cosθ2​R33​​)(5)

Finding the corresponding angles of ϕ\phiϕ

类似的分析也适用于寻找ϕ\phiϕ,观察到
R21R11=tan⁡ϕ\frac{R_{21}}{R_{11}} = \tan \phi R11​R21​​=tanϕ
解ϕ\phiϕ使用等式
ϕ=atan2(R21cos⁡θ,R11cos⁡θ)(6)\phi = \mathrm{atan2}\left( \frac{R_{21}}{\cos \theta}, \frac{R_{11}}{\cos \theta}\right) \tag{6} ϕ=atan2(cosθR21​​,cosθR11​​)(6)
同样,等式6对于所有的情况都适用,除了当cos⁡θ=0\cos \theta = 0cosθ=0时,随后将处理这种特殊情况。对于每一个θ\thetaθ值,我们利用等式(6)计算一个对应的ϕ\phiϕ值,得到
ϕ1=atan2(R21cos⁡θ1,R11cos⁡θ1)(7)\phi_1 = \mathrm{atan2} \left( \frac{R_{21}}{\cos \theta_1}, \frac{R_{11}}{\cos \theta_1} \right) \tag{7} ϕ1​=atan2(cosθ1​R21​​,cosθ1​R11​​)(7)
ϕ2=atan2(R21cos⁡θ2,R11cos⁡θ2)(8)\phi_2 = \mathrm{atan2} \left( \frac{R_{21}}{\cos \theta_2}, \frac{R_{11}}{\cos \theta_2} \right) \tag{8} ϕ2​=atan2(cosθ2​R21​​,cosθ2​R11​​)(8)

Two solutions if cos⁡θ≠0\cos \theta \ne 0cosθ​=0

对于cos⁡θ≠0\cos \theta \ne 0cosθ​=0的情况,我们现在有两个三维(triplets)欧拉角来重现(reproduce)旋转矩阵,即
(ψ1,θ1,ϕ1)(ψ2,θ2,ϕ2)(\psi_1, \theta_1, \phi_1) \\ (\psi_2, \theta_2, \phi_2) (ψ1​,θ1​,ϕ1​)(ψ2​,θ2​,ϕ2​)
这两个解都是有效的。

What if cos⁡θ=0\cos \theta=0cosθ=0?

如果旋转矩阵的R33R_{33}R33​元素为1或-1(分别对应θ=−π/2\theta = - \pi/2θ=−π/2或θ=π/2\theta = \pi/2θ=π/2且cos⁡θ=0\cos \theta = 0cosθ=0),则上述技术无效。当我们试图使用上面的技术解ψ,ϕ\psi, \phiψ,ϕ时,将会出现问题,因为R11,R21,R32,R33R_{11}, R_{21}, R_{32}, R_{33}R11​,R21​,R32​,R33​都等于0,等式(3)和(6)变成
ψ=atan2(0,0)ϕ=atan2(0,0)\psi = \mathrm{atan2} \left(0, 0 \right) \\ \phi = \mathrm{atan2} \left(0, 0 \right) ψ=atan2(0,0)ϕ=atan2(0,0)
在这种情况下,R11,R21,R32,R33R_{11}, R_{21}, R_{32}, R_{33}R11​,R21​,R32​,R33​不限制ψ\psiψ和ϕ\phiϕ的值。 因此,我们必须使用旋转矩阵的不同元素来计算ψ\psiψ和ϕ\phiϕ的值。

  • θ=π/2\theta = \pi/2θ=π/2情况:当θ=π/2\theta = \pi/2θ=π/2时有
    R12=sin⁡ψsin⁡θcos⁡ϕ−cos⁡ψsin⁡ϕ=sin⁡ψcos⁡ϕ−cos⁡ψsin⁡ϕ=sin⁡(ψ−ϕ)R13=cos⁡ψsin⁡θcos⁡ϕ+sin⁡ψsin⁡ϕ=cos⁡ψcos⁡ϕ+sin⁡ψsin⁡ϕ=cos⁡(ψ−ϕ)R22=sin⁡ψsin⁡θsin⁡ϕ+cos⁡ψcos⁡ϕ=sin⁡ψsin⁡ϕ+cos⁡ψcos⁡ϕ=cos⁡(ψ−ϕ)=R13R23=cos⁡ψsin⁡θsin⁡ϕ−sin⁡ψcos⁡ϕ=cos⁡ψsin⁡ϕ−sin⁡ψcos⁡ϕ=−sin⁡(ψ−ϕ)=−R12R_{12} = \sin \psi \sin \theta \cos \phi-\cos \psi \sin \phi = \sin \psi \cos \phi-\cos \psi \sin \phi =\sin(\psi - \phi) \\ R_{13}=\cos \psi \sin \theta \cos \phi+\sin \psi \sin \phi = \cos \psi \cos \phi+\sin \psi \sin \phi=\cos (\psi - \phi) \\ R_{22} = \sin \psi \sin \theta \sin \phi+\cos \psi \cos \phi= \sin \psi \sin \phi+\cos \psi \cos \phi = \cos(\psi - \phi) = R_{13} \\ R_{23} = \cos \psi \sin \theta \sin \phi-\sin \psi \cos \phi = \cos \psi \sin \phi-\sin \psi \cos \phi = - \sin (\psi - \phi) = -R_{12} R12​=sinψsinθcosϕ−cosψsinϕ=sinψcosϕ−cosψsinϕ=sin(ψ−ϕ)R13​=cosψsinθcosϕ+sinψsinϕ=cosψcosϕ+sinψsinϕ=cos(ψ−ϕ)R22​=sinψsinθsinϕ+cosψcosϕ=sinψsinϕ+cosψcosϕ=cos(ψ−ϕ)=R13​R23​=cosψsinθsinϕ−sinψcosϕ=cosψsinϕ−sinψcosϕ=−sin(ψ−ϕ)=−R12​
    满足这些等式的任何ϕ,ψ\phi, \psiϕ,ψ都是有效的解,利用等式R12,R13R_{12}, R_{13}R12​,R13​,我们发现
    (ψ−ϕ)=atan2(R12,R13)ψ=ϕ+atan2(R12,R13)(\psi - \phi) = \mathrm{atan2}(R_{12}, R_{13}) \\ \psi = \phi + \mathrm{atan2}(R_{12}, R_{13}) (ψ−ϕ)=atan2(R12​,R13​)ψ=ϕ+atan2(R12​,R13​)
  • θ=−π/2\theta =- \pi/2θ=−π/2情况:类似的, 有
    R12=sin⁡ψsin⁡θcos⁡ϕ−cos⁡ψsin⁡ϕ=−sin⁡ψcos⁡ϕ−cos⁡ψsin⁡ϕ=−sin⁡(ψ+ϕ)R13=cos⁡ψsin⁡θcos⁡ϕ+sin⁡ψsin⁡ϕ=−cos⁡ψcos⁡ϕ+sin⁡ψsin⁡ϕ=−cos⁡(ψ+ϕ)R22=sin⁡ψsin⁡θsin⁡ϕ+cos⁡ψcos⁡ϕ=−sin⁡ψsin⁡ϕ+cos⁡ψcos⁡ϕ=cos⁡(ψ+ϕ)=−R13R23=cos⁡ψsin⁡θsin⁡ϕ−sin⁡ψcos⁡ϕ=−cos⁡ψsin⁡ϕ−sin⁡ψcos⁡ϕ=−−sin⁡(ψ+ϕ)=R12R_{12} = \sin \psi \sin \theta \cos \phi-\cos \psi \sin \phi = -\sin \psi \cos \phi-\cos \psi \sin \phi =-\sin(\psi + \phi) \\ R_{13}=\cos \psi \sin \theta \cos \phi+\sin \psi \sin \phi = -\cos \psi \cos \phi+\sin \psi \sin \phi=-\cos (\psi +\phi) \\ R_{22} = \sin \psi \sin \theta \sin \phi+\cos \psi \cos \phi= -\sin \psi \sin \phi+\cos \psi \cos \phi = \cos(\psi + \phi) = -R_{13} \\ R_{23} = \cos \psi \sin \theta \sin \phi-\sin \psi \cos \phi = - \cos \psi \sin \phi-\sin \psi \cos \phi = - -\sin (\psi + \phi) = R_{12} R12​=sinψsinθcosϕ−cosψsinϕ=−sinψcosϕ−cosψsinϕ=−sin(ψ+ϕ)R13​=cosψsinθcosϕ+sinψsinϕ=−cosψcosϕ+sinψsinϕ=−cos(ψ+ϕ)R22​=sinψsinθsinϕ+cosψcosϕ=−sinψsinϕ+cosψcosϕ=cos(ψ+ϕ)=−R13​R23​=cosψsinθsinϕ−sinψcosϕ=−cosψsinϕ−sinψcosϕ=−−sin(ψ+ϕ)=R12​
    同样,有
    (ψ+ϕ)=atan2(−R12,−R13)ψ=−ϕ+atan2(−R12,−R13)(\psi + \phi) = \mathrm{atan2}(-R_{12}, -R_{13}) \\ \psi = -\phi + \mathrm{atan2}(-R_{12}, -R_{13}) (ψ+ϕ)=atan2(−R12​,−R13​)ψ=−ϕ+atan2(−R12​,−R13​)

  • 无论哪种情况: 在θ=π/2\theta = \pi/2θ=π/2和θ=−π/2\theta = -\pi/2θ=−π/2的情况下,我们都发现ψ\psiψ和ϕ\phiϕ是关联的。 这种现象称为万向节锁(Gimbal lock)。尽管在这种情况下,有无数个问题的解,但在实践中,人们常常有兴趣寻找一个解。 对于此任务,如上所述方便地设置ϕ=0\phi=0ϕ=0并计算ψ\psiψ。

Pseudo-code

现在,我们通过图1中的伪代码实现来总结该方法。代码非常简单。

More than one solution

有趣的是,围绕三个主轴旋转的序列始终不止一种,他们都能得到物体相同的方向。 如本报告所示,在cos⁡θ≠0\cos \theta \ne 0cosθ​=0的非退化(non-degenerate)的情况下,有两个解。 对于cos⁡θ=0\cos \theta = 0cosθ=0的退化情况,存在无限数量的解。

例如,考虑一本书放在您面前的桌子上。 将x轴定义为右侧,将y轴定义为远离您,将z轴定义为向上。 绕y轴旋转π\piπ弧度将使书本旋转,使得后盖现在朝上。 实现相同方向的另一种方法是绕xxx轴旋转书本π\piπ弧度,然后绕z轴旋转π\piπ弧度。 因此,存在不止一种方式来实现期望的旋转。

reference

[1]. Gregory G. Slabaugh, Computing Euler angles from a rotation matrix

旋转(Rotation)矩阵转欧拉角(euler)相关推荐

  1. 欧拉角(Euler angles)

    前言:本人也就英语4级水平,由于本篇中存在大量学术词汇,翻译时必然会有不当之处,原文可以在下面的链接中找到,具体意义各位可以自行斟酌 标红的部分是已发现存疑的翻译,也请各位指正. 维基百科-欧拉角 欧 ...

  2. 3D数学基础——矩阵、欧拉角和四元数的相互转换与比较

    矩阵.欧拉角和四元数的相互转换与比较 相互转换 这里只展示最终的转换结果,推导过程请参考<3D数学基础:图形与游戏开发> 欧拉角转换到矩阵 欧拉角描述了一个旋转序列,分别计算出给每个旋转的 ...

  3. OpenGL相机自由移动旋转缩放,四元数,欧拉角,LookAt

    OpenGL相机自由移动旋转缩放,四元数,欧拉角,LookAt 定义相机 摄像机位置 右轴 上轴 Look At 自由移动相机 左右移动 移动速度 视角移动 欧拉角 通过欧拉角计算实际的方向向量 缩放 ...

  4. C语言实现方向余弦矩阵转欧拉角和姿态四元数

    方向余弦矩阵转欧拉角和姿态四元数 方向余弦矩阵 欧拉角 姿态四元数 源码 方向余弦矩阵 方向余弦矩阵(Direction Cosine Matrix,DCM)又被称为"坐标转换矩阵" ...

  5. PCL点云的旋转平移矩阵

    目录 (一)左乘右乘 1.左乘 2.右乘 (二)旋转平移矩阵公式 1.绕X轴逆时针旋转角度θ 2.绕Y轴逆时针旋转角度θ 3.绕Z轴逆时针旋转角度θ 4.平移 (三)旋转平移矩阵的逆 (四)PCL实现 ...

  6. 《PCL点云库学习VS2010(X64)》Part 34 旋转平移矩阵用法

    <PCL点云库学习&VS2010(X64)>Part 34 旋转平移矩阵用法 1.变换与投影矩阵讲解: https://en.wikipedia.org/wiki/Transfor ...

  7. 【Unity学习笔记】为什么欧拉角(Euler)会符合万向节(Gimbal)规则?

    声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨.可作参考,但不保证绝对正确.如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦. 0 引言 在我的上一篇笔记中,我主要关注点在" ...

  8. 无人机运动学控制中的坐标系,及惯性坐标系与机体坐标系之间的矩阵转换 欧拉角

    一.无人机控制中的坐标系 无人机运动学中,有三种需要了解的坐标系 1.1.地球中心坐标系(ECEF) 地球中心坐标系,即坐标系原点位于地心.X轴通过格林尼治线和赤道线的交点,正方向为原点指向交点方向. ...

  9. NYOJ 598 旋转圆柱矩阵

    旋转圆柱矩阵 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 将圆柱体的侧面展开能得到一个m*n的矩形.这是姑且看成一个01矩阵, 我们需要通过特定的移动得到另一个矩阵( ...

  10. 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)

    1.猫狗队列 [题目] 宠物. 狗和猫的类如下: public class Pet {private String type;public Pet(String type) {this.type = ...

最新文章

  1. Scratch等级考试(一级)模拟题
  2. 灵玖Nlpir Parser语义智能系统精准汉语分词
  3. Xcode 8 控制台输出大量不用的log的问题解决NSLog失效的解决
  4. 文章如何做伪原创 SEO大神教你几招做原创网站文章的心得
  5. 用python写一个简单的推荐系统 1
  6. 【攻防世界007】simple-check-100
  7. 2.6宽带接入技术ADSL
  8. Microsoft.NET框架程序设计--18 异常
  9. 商汤科技大涨逾15% 市值突破2000亿港元
  10. lua与python结合_从Python到Lua
  11. 人工智能领域有哪些曾被拒稿的优秀工作?
  12. 2023年厦门大学全日制会计专硕(MPAcc)考研上岸前辈备考经验
  13. HTML5期末大作业:大学生个人网站设计——我们的班级(7页) HTML+CSS+JavaScript 学生DW网页设计作业成品 html网页制作代码大全 html5网页设计作业代码
  14. ADS入门,使用ADS创建和仿真一个简单的线路
  15. h5py ImportError: DLL load failed while importing defs: 找不到指定的程序。
  16. JEECG集成ACTIVITI
  17. 普渡大学计算机硕士申请条件,普渡大学计算机科学硕士录取条件有哪些?需要这些申请材料...
  18. webgis、gis学习技巧总结
  19. ie窗口如何最大化设置
  20. Ubuntu 18.04.1 LTS 安装网易云音乐,告别图标无法点击

热门文章

  1. The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView
  2. 驯服烂代码_驯服业力,SauceLabs和Internet Explorer:揭秘之旅
  3. 阿里云大数据ACP认证学习笔记
  4. docker学习--数据卷
  5. Java学习笔记(9)-StringBuilder类二
  6. ubuntu开机密码破解
  7. GRUB legacy和GRUB 2介绍 与 命令【包含kernel 与 initrd的详解】使用
  8. 阿里乾坤qiankun
  9. 拿下沙巴克出色的指挥官不可少
  10. 业务流程管理模型优化设计