![ABB工业机器人进阶编程与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/794/44819794/b_44819794.jpg)
上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°,可以使用如下代码:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_3.jpg?sign=1739407411-i6AkRdvDeI0AETd8Mqe5zprMbxeci70A-0-91217787b816c597caf7c83a8e07daa4)
效果如图1-51所示。
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_4.jpg?sign=1739407411-QpnGWlQnu1uHN50BdOjmcGRS4JkPfbxj-0-889b8cd83e4b9ade9c01e00d492b2f3e)
图1-51 RelTool使用示例
同样,对于存储类型不是CONST的Robtarget类型的数据,也可使用RelTool函数赋值。例如:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_5.jpg?sign=1739407411-dbkSREeKRkmBsQ88O1I6rxnh2YndLLUG-0-f2961aebe74d3c9bb289068efcb3d27a)
对于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略做修改:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_55_1.jpg?sign=1739407411-SxmhxKTONr53KSYZOHH22bZdvNDhQIpW-0-ca45294f172f3e5bdad643d3c397d440)
图1-52 RelTool坐标系转化示例
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_55_2.jpg?sign=1739407411-R05iHmMw2jBYMNwkgZcxNV5BL9rIGqpf-0-f3b52a66eea79f57ac4ce56a29239019)