【机器人学】-位姿描述和旋转变换(2)
机器人学基础-旋转变换
空间旋转矩阵中有九个元素,但是这九个元素满足六个约束方程,只有三个独立变量
ABX = [ AXB AYB AYB ] = [R11R12R13R21R22R23R31R32R33]\begin{bmatrix}R11 & R12 & R13 \\ R21 & R22&R23\\R31&R32&R33\\ \end{bmatrix}⎣⎡R11R21R31R12R22R32R13R23R33⎦⎤;
其中每个元素满足:
AXB ⋅\cdot⋅ AXB = AYB ⋅\cdot⋅ AYB = AZB ⋅\cdot⋅ AZB = 1;
AXB ⋅\cdot⋅ AYB = AYB ⋅\cdot⋅ AZB = AZB ⋅\cdot⋅ AXB = 0;
一、绕固定轴x-y-z旋转(RPY角)
1-1运动过程
RPY角对应的旋转矩阵,这种描述方法与操作轴末端执行器坐标系的规定方法类似,如下图;

坐标系的运动方式:{B}的开始方位与坐标系{A}重合,首先使得{B}绕XA旋转γ\gammaγ 角,在绕YA 转β\betaβ 角,最后绕 ZA转α\alphaα 角。(白->黄->红->蓝)
1-2旋转矩阵计算
根据坐标系的变换关系,坐标系{B}相对于{A}的旋转矩阵为:注意这里需要右乘,相对于基坐标系而言
ABRxyz(γ\gammaγ ,β\betaβ, α\alphaα ) = R(ZA,α\alphaα) ⋅\cdot⋅ R(YA,β\betaβ) ⋅\cdot⋅ R(XA,γ\gammaγ)
= [cα−sα0sαcα0001]\begin{bmatrix} c \alpha & -s\alpha& 0 \\ s\alpha & c\alpha&0\\0&0&1\\ \end{bmatrix}⎣⎡cαsα0−sαcα0001⎦⎤[cβ0sβ010−sβ0cβ]\begin{bmatrix} c \beta& 0& s\beta \\0& 1&0\\-s\beta&0&c\beta\\ \end{bmatrix}⎣⎡cβ0−sβ010sβ0cβ⎦⎤[1000cγ−sγ0sγcγ]\begin{bmatrix} 1 & 0& 0 \\ 0 & c\gamma&-s\gamma\\0&s\gamma&c\gamma\\ \end{bmatrix}⎣⎡1000cγsγ0−sγcγ⎦⎤
=[cα⋅cβcα⋅sβ⋅sγ−sα⋅cγcα⋅sβ⋅cγ+sα⋅sγsα⋅cβsα⋅sβ⋅sγ+cα⋅cγsα⋅sβ⋅cγ−cα⋅sγ−sβcβ⋅sγcβ⋅cγ]\begin{bmatrix} c\alpha\cdot c\beta & c\alpha\cdot s\beta \cdot s \gamma - s\alpha\cdot c\gamma&c\alpha\cdot s\beta \cdot c \gamma+s\alpha\cdot s\gamma \\s\alpha\cdot c\beta & s\alpha\cdot s\beta \cdot s \gamma + c\alpha\cdot c\gamma&s\alpha\cdot s\beta \cdot c \gamma-c\alpha\cdot s\gamma \\-s\beta & c\beta \cdot s \gamma &c\beta \cdot c \gamma \\ \end{bmatrix}⎣⎡cα⋅cβsα⋅cβ−sβcα⋅sβ⋅sγ−sα⋅cγsα⋅sβ⋅sγ+cα⋅cγcβ⋅sγcα⋅sβ⋅cγ+sα⋅sγsα⋅sβ⋅cγ−cα⋅sγcβ⋅cγ⎦⎤
1-3RPY角计算
已知旋转矩阵ABR,令该矩阵和矩阵ABRxyz对应元素相等可得
[R11R12R13R21R22R23R31R32R33]\begin{bmatrix}R11 & R12 & R13 \\ R21 & R22&R23\\R31&R32&R33\\ \end{bmatrix}⎣⎡R11R21R31R12R22R32R13R23R33⎦⎤ = [cα⋅cβcα⋅sβ⋅sγ−sα⋅cγcα⋅sβ⋅cγ+sα⋅sγsα⋅cβsα⋅sβ⋅sγ+cα⋅cγsα⋅sβ⋅cγ−cα⋅sγ−sβcβ⋅sγcβ⋅cγ]\begin{bmatrix} c\alpha\cdot c\beta & c\alpha\cdot s\beta \cdot s \gamma - s\alpha\cdot c\gamma&c\alpha\cdot s\beta \cdot c \gamma+s\alpha\cdot s\gamma \\s\alpha\cdot c\beta & s\alpha\cdot s\beta \cdot s \gamma + c\alpha\cdot c\gamma&s\alpha\cdot s\beta \cdot c \gamma-c\alpha\cdot s\gamma \\-s\beta & c\beta \cdot s \gamma &c\beta \cdot c \gamma \\ \end{bmatrix}⎣⎡cα⋅cβsα⋅cβ−sβcα⋅sβ⋅sγ−sα⋅cγsα⋅sβ⋅sγ+cα⋅cγcβ⋅sγcα⋅sβ⋅cγ+sα⋅sγsα⋅sβ⋅cγ−cα⋅sγcβ⋅cγ⎦⎤
通过比较可得cosβ\betaβ = ±R112+R212\pm\sqrt {R11^2+R21^2}±R112+R212 ,通常我们规定β∈[−90,+90]\beta\in[-90,+90]β∈[−90,+90],所以我们可以得到cosβ\betaβ = +R112+R212+\sqrt {R11^2+R21^2}+R112+R212。
如果cosβ≠0\beta\neq0β=0,则可以得到:
β=Atan2(−R31,R112+R212)\qquad\qquad\qquad\qquad\qquad\beta = A\tan2(-R31,\sqrt{R11^2+R21^2})β=Atan2(−R31,R112+R212)
α=Atan2(R21,R11)\qquad\qquad\qquad\qquad\qquad\alpha = A\tan2(R21,R11)α=Atan2(R21,R11)
γ=Atan2(R32,R33)\qquad\qquad\qquad\qquad\qquad\gamma = A\tan2(R32,R33)γ=Atan2(R32,R33)
其中Atan2(y,x)A\tan2(y,x)Atan2(y,x)成为四象限反正切函数
如果cosβ=±90\beta = \pm90β=±90,则只能得到α和γ\alpha和\gammaα和γ的和或差,通常选择α=0\alpha = 0α=0。
如果cosβ=+90\beta = +90β=+90,则可以得到:
β=90\qquad\qquad\qquad\qquad\qquad\beta = 90β=90
α=0\qquad\qquad\qquad\qquad\qquad\alpha = 0α=0
γ=Atan2(R12,R22)\qquad\qquad\qquad\qquad\qquad\gamma = A\tan2(R12,R22)γ=Atan2(R12,R22)
如果cosβ=−90\beta = -90β=−90,则可以得到:
β=−90\qquad\qquad\qquad\qquad\qquad\beta = -90β=−90
α=0\qquad\qquad\qquad\qquad\qquad\alpha = 0α=0
γ=−Atan2(R12,R22)\qquad\qquad\qquad\qquad\qquad\gamma = -A\tan2(R12,R22)γ=−Atan2(R12,R22)
二、绕相对于运动坐标系(ZYX欧拉角)
三、绕相对于运动坐标系(ZYZ欧拉角)


四、旋转变换通式

4-1坐标变换(正解)

{A’}是与K轴正交的坐标系,{B’}相对于{A’}相当于是绕z轴旋转




4-2 等效转轴和等效转角(逆解)



更多推荐
所有评论(0)