之前已经学过了机械臂的坐标变换,只是大概知道向量的变换,齐次坐标表示的思想等,并没有对公式扣细节,后来发现有的时候在想问题的时候还是容易迷糊。这里就做一个极简单的总结。
需要说明的是,坐标全部按右手系规则进行。
比如,已被人熟知的齐次坐标变换如下:
关键是理解其中的变换矩阵,表示从B坐标系到W坐标系的变换矩阵(注意:是齐次变换矩阵哦)其形式为:
迷糊的地方在于:
1.一般叙述通常会说 ,代表从坐标系B到坐标系W的姿态旋转变换矩阵,这个矩阵的纵坐标其实就是B中的单位坐标系向量(比如:B坐标系的x轴(1,0)与y轴(0,1))在W坐标系中的表示
这里要说明的是与 的关系,即: 的行向量是W中单位坐标向量在B坐标系中的表示,因而:
同时,该矩阵还满足:
也就是说旋转矩阵是正交阵。
但是实操中,“使用的旋转矩阵,把谁变换到世界坐标(W),就把谁的坐标向量写成世界坐标的表示,并作为列向量的矩阵”。
2. 表示,在W坐标系下 ,以W坐标系的原点为起点,以B坐标系的原点为终点的向量,实际计算是以B坐标系原点坐标值减去W坐标系原点坐标值计算而来。
值得一提的是,放到变换矩阵中,,
假定旋转矩阵为单位阵(无旋转)有:
(这也是我感叹齐次坐标神奇之处,通过矩阵乘法与求逆完成了向量的加减!)
坐标间的变换矩阵满足:
总结起来,要完成从坐标系B中的点到坐标系W的变换,要计算1)B中单位坐标系向量在W中的表示作为列向量的矩阵(也就是“旋转矩阵”),2)计算在W坐标系下,以W坐标系原点为起点,B坐标系的原点为终点的向量;