一 说在前头
最近在学习《机器人学导论》(‘Introduction to ROBOTICS’-JOHN CRAIG),文章内容为学习过程中的摘抄或者感悟,方便今后查阅。
二 算子
用于坐标系间点的映射的通用数学表达式称为算子,包括点的平移算子、矢量旋转算子和平移加旋转算子。
上一篇文章里所说的映射是描述坐标系间的变换,涉及两个坐标系;算子则是在一个坐标系内,点进行平移、旋转等的描述方式。
2.1 平移算子
上图中,AP1在坐标系{A}中通过矢量AQ进行了平移。平移后原点到平移对象的新的矢量AP2为:
也可以 写成:
其中,q是沿矢量
Q
^
\hat Q
Q^方向平移的数量,算子Dq可以看作是一个特殊的齐次变换:
2.2 旋转算子
旋转矩阵还可以用旋转算子来表示,由于只涉及一个坐标系,故无需写上旋转算子的上下标。
还有另一种定义,这种定义可以更明确的表达绕哪个轴进行旋转:
其中,RK(θ)旋转算子表示绕
K
^
\hat K
K^旋转θ角度。
则有:
2.3 变换算子
同矢量和旋转矩阵一样,坐标系还可以用变换算子来定义:
同样不用上下标。
2.4 小结
变换映射和变换算子实际上数学本质是相同的,但描述对象不一样,笔者认为可以这样理解:变换映射是对于两个坐标系而言的,而变换算子可以看作是坐标系内的变换。
综上,齐次矩阵有3种解释:
- 可以描述位姿
- 变换映射
- 变换算子
三 变换计算
3.1 复合变换
如上图所示,已知CP,求AP。
已知坐标系{C}相对于坐标系{B},坐标系{B}相对于坐标系{A},则有:
则有定义:
其中,ABT形式如下:
BCT同理,则有:
3.2 逆变换
已知ABT如何求出BAT呢?
一是通过矩阵直接求逆对4X4齐次变换矩阵进行求逆;
二是利用变换的性质求解。
已知量是ABR和APBORG,求BAR和BPAORG,
将APBORG转变成在{B}中的描述:
该式由
变换得来,APBORG是要被转换的对象,所以在上式中的左上标都是B,表示相对于{B}坐标系,下标都是A,表示要被转换的对象所在的坐标系,而等式右边第一项的APBORG就是要被转换的对象。
并且因为等式的左边等于0,所以可以得到:
这里的BAR是正交矩阵,所以BAR=ABRT。
综上可以得到:
3.3 变换方程
上图所示的坐标系{D}可以用两种不同的方式表达成变换相乘的形式:
则有:
如果所有变量除了BCT外均已知,那么有:
四 其他姿态描述
至此,只给出了3 x 3旋转矩阵来表示姿态。如上所述,旋转矩阵是一种特殊的各列相互正交的单位阵。进一步我们知道旋转矩阵的行列式恒为+1.旋转矩阵也可被称为标准正交矩阵,“标准”是指其行列式的值为+1 (非标准正交矩阵的行列式值为-1)。
很自然地要问,能否用少于九个数字来表示-一个姿态。线性代数的结论( 正交矩阵的凯莱公式)告诉我们,对于任何正交阵R,存在一个反对称矩阵S,满足:
式中I3是一个3x3单位阵。一个3维反对称阵(即S=-ST) 可由三个参数(sx, sy, sz)表示为
因此,任何3 x 3旋转阵可用三个参量确定。
显然,旋转矩阵的九个分量线性相关。实际上,对于一个旋转矩阵R很容易写出六个线性无关的分量。如上所述,假定R为三列:
这三个矢量是参考坐标系中某坐标系的单位轴。每个矢量都是单位矢量,且相互垂直,所以9个矩阵元素有6个约束:
自然要问是否能找到这样一种姿态表示法,用三个参量就能简便地进行表达。本节将给出几个姿态表示法。
4.1 X-Y-Z固定角
首先将坐标系{B}和一个已知参考坐标系{A}重合。先将{B}绕XA旋转γ角,再绕YA旋转β角,最后绕ZA旋转α角。
每个旋转都是绕着固定参考坐标系{A}的轴。我们规定这种姿态的表示法为X-Y-Z固定角。“固定”一词是指旋转是在固定(即不运动的)参考坐标系中确定的。有时把它们定义为回转角、俯仰角和偏转角。但是使用中应注意,因为这个定义经常与其他定义不同的问题相关。
式中cα是cosα的简写,sα是sinα的简写等等。最重要的是要搞清楚旋转顺序。将旋转看作算子依次进行旋转( 从右开始),先进行旋转XA,再作旋转YA,最后作旋转ZA。
4.2 Z-Y-X欧拉角
首先将坐标系{B}和一个已知参考坐标系{A}重合。先将{B}绕ZB旋转α角,再绕YB旋转β角,最后绕XB旋转γ角。按照旋转顺序故称该方法为Z-Y-X欧拉角。
上述的固定角和欧拉角表示法可以有多种组合,如X-Y-Z、X-Z-Y等等,所以总共会有24中组合方式。
4.3 等效角度-轴线表示法
符号RX(30.0)表示绕一个给定轴
X
^
\hat X
X^旋转30度的方位。这是一个等效轴角坐标表示法的例子。如果轴的方向是一般方向,任何姿态都可以通过旋转适当的轴和角度来得到。坐标系{B}的表示法如下:
.首先将坐标系{B}和一个已知参考坐标系{A}重合。将{B}绕矢量A K ^ \hat K K^按右手定则旋转θ角。 K ^ \hat K K^矢量有时候被称为有限旋转的等效轴。
确定A K ^ \hat K K^只要两个参数,因为它的长度恒为1,也就是说用三个轴的坐标来表示A K ^ \hat K K^矢量的时候,只需要有两个轴的坐标已知就可以了。角度确定了第三个参数,即旋转的角度。
- 如果旋转轴为主轴中的一个轴
这里的计算过程和结果要理解透彻,后续在运动学分析里会经常用到,重要的是要判断θ角的正负。 - 如果旋转轴为一般轴
其中cθ=cosθ,sθ=sinθ,vθ=1-cosθ,并且A
K
^
\hat K
K^=[kx,ky,kz]T 。
θ的符号由右手定则确定,即大拇指指向A K ^ \hat K K^正方向,然后大拇指朝向屏幕或纸的里面,观察其余两个轴是顺时针还是逆时针转动,如果其余两个轴是顺时针转动,那θ为正;否则为负。
4.4 其他表示方法
诸如四元数等其他表示方法