我们采用这样的一个体系,即存在着一个世界坐标系,我们所定义的位姿都是参照世界坐标系或者由世界坐标系定义的笛卡尔坐标系。
二.描述:位置、姿态与位姿
-
位置描述:
一旦建立了坐标系,我们就能用一个3×1的位置矢量对坐标系中的任意点进行定位。因为经常在世界坐标系中还要定义许多坐标系,因此必须在位置矢量上附加一信息,表明是在哪一个坐标系中定义的。如图中的点AP用一个矢量表示为:AP = [ px py pz ]T,其中 px 、py 和pz分别为该矢量在X轴、Y轴和Z轴方向上的投影的长度。
-
姿态描述:
我们发现单靠位置矢量还不足以准确描述机械手的位置,还要有关于其姿态的描述才能完全确定其位置。为了描述物体的姿态,我们在物体上固定一个坐标系,并给出该坐标系相对于参考坐标系的表达。因此,点的位置可以用矢量表示,物体的姿态可以用固定在物体上的坐标系来描述。
如图中的坐标系{B}以某种方式固定在机械手上,则{B}相对于参考坐标系{A}的表达可描述该机械手的姿态。
用XB、YB和ZB表示坐标系{B}主轴方向的单位矢量,它们在参考坐标系{A}上的表达为:AXB、AYB和AZB,则将这三个单位矢量按顺序组成一个3×3的旋转矩阵,并表示为:
所以,标量rij可以用每个矢量在其参考坐标系中单位方向上投影的分量表示。也可以看出该矩阵的行是{A}的主轴方向的单位矢量在{B}中的表达,即
-
位姿描述:
在机器人学中,位置和姿态经常成对出现,于是我们将此组合称作位姿,4个矢量成一组,表示了位置和姿态信息。并用它们来描述坐标系,即一个坐标系可以等价地用一个位置矢量和一个旋转矩阵来描述。
可以描述B坐标系在A坐标系的位姿信息如下:
三. 坐标系变换:
1. 平移坐标系:
如图,两个坐标系{A}与{B}的姿态相同,{B}不同于{A}的只是平移,即相当于 {A}沿着矢量APBORG移动到点PBORG处,形成了{B}。当点P相对{B}的表示已知时,可用矢量相加的方法求点P相对{A}的表示:AP = BP + APBORG。
2.旋转坐标系:
已知,旋转矩阵各列的模均为1,且这些单位矢量相互正交;{B}相对于{A}的描述为:,它的列是{B}的单位矢量在{A}中的描述,行是{A}的单位矢量在{B}中的描述。如图,两个坐标系原点重合,而坐标轴不重合。则当矢量BP已知时,求AP:
为了计算AP,我们注意该矢量的每一个分量就是其向坐标系上单位矢量方向的投影。投影是由矢量点积计算的。
简化后可得到:
3.一般变换坐标系:
经常有这种情况,我们已知矢量相对某坐标系{B}的描述,并且想求出它相对另一个坐标系{A}的描述。如图可见,这是平移和旋转的结合,则当BP已知时,求AP:
首先将BP变换到一个中间坐标系,这个坐标系和{A}的姿态相同,原点和{B}重合。***后可以得到:
还可以这样描述:
其中为矩阵算子(也称为齐次变换矩阵Homogenous Transformation Matrix),表示从一个坐标系到另一个坐标系的映射.定义一个4X4的矩阵算子并使用4X1位置矢量表示为:
4.混合变换坐标系:
如图,有三个不同的坐标系,每个坐标系相对于前一个坐标系是已知的,即齐次变换矩阵已知。已知CP,求AP:
已知坐标系{C}相对于坐标系{B},并且已知坐标系{B}相对于坐标系{A}。将CP变换成BP:
然后将BP
变换成AP:
联立上两式子可得:
因此得出:
5.逆变换坐标系:
已知,求的运算称为逆变换。
四.变换算子:
-
平移算子:
平移将空间中的一个点沿着另一个已知的矢量方向移动一定的距离,那么其齐次变换矩阵为:
1
0
0
X
0
1 0 Y
0
0
1 Z 0 0
0 1
-
旋转算子:
绕坐标系X方向旋转一定角度C,那么齐次变换矩阵为:
1
0
0
0
0
cos(C)
-sin(C) 0
0
sin(C)
cos(C) 0 0 0
0 1 绕坐标系Y方向旋转一定角度B,那么齐次变换矩阵为:
cos(B) 0
sin(B) 0
0
1
0 0
-sin(B)
0 cos(B) 0 0 0
0 1 绕坐标系Z方向旋转一定角度A,那么齐次变换矩阵为:
cos(A) -sin(A) 0 0
sin(A)
cos(A) 0 0
0
0 1 0 0 0
0 1 如果绕着固定轴X-Y-Z坐标系的X、Y、Z分别进行旋转或者绕着动轴Z-Y-X坐标系的Z、Y、X分别进行旋转(X-Y-Z固定角于Z-Y-X欧拉角的内容这里不展开),其齐次变换矩阵算子为:
Trotz(A)*Troty(B)*Trotx(C) 注:Trotx、Troty、Trotz为Matlab方法。
更多资讯:库卡机器人