
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.4.3 RelTool及实现原理
对于点位(Robtarget)数据沿着工具(Tooldata)方向偏移和旋转,ABB工业机器人编程提供了RelTool(p1,x1,y1,z1\Rx:=rx1\Ry:=ry1\Rz:=rz1)函数,即返回值基于p1点位,沿着p1姿态的x、y、z三方向偏移x1、y1和z1,同时可以绕p1的姿态方向旋转。若同时使用可选参数Rx、Ry和Rz,旋转顺序为绕着x轴旋转,绕着新的y轴旋转、绕着新的z轴旋转(与标准欧拉角z-y-x的旋转顺序相反)。
例如,机器人走到原始点位p3002(使用MyTool2工具示教),然后需要沿着MyTool2的z方向前进300mm,同时绕着p3002原始姿态的z方向旋转45°,可以使用如下代码:

效果如图1-51所示。

图1-51 RelTool使用示例
同样,对于存储类型不是CONST的Robtarget类型的数据,也可使用RelTool函数赋值。例如:

对于RelTool(p1,x1,y1,z1\Rx:=rx1\Ry:=ry1\Rz:=rz1)函数,实质就是已知在p1位姿坐标系下的偏移数据x1、y1和z1,以及绕着p1位姿坐标系下旋转的角度rx1、ry1和rz1(注:RelTool函数中的旋转顺序为x-y-z),将这个新的位置转化到p0坐标系下,如图1-52所示。所以,RelTool的实现本质就是使用1.1.4节提到的PoseMult函数。但要注意,PoseMult函数中的欧拉角顺序为z-y-x,所以如果要自行编写RelTool的实现,需要将PoseMult略做修改:

图1-52 RelTool坐标系转化示例
