![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=1739410643-wflOomp4GYlBaZgADNMm1GTJcFTUPHV7-0-227ae069282e70fe857f97dfb07912af)
效果如图1-51所示。
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_4.jpg?sign=1739410643-QuD39Nt57FbSzmAkpwVv6wjKSCoNAw6U-0-0b0ea6f0501928881c98f9220a9a3ebb)
图1-51 RelTool使用示例
同样,对于存储类型不是CONST的Robtarget类型的数据,也可使用RelTool函数赋值。例如:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_5.jpg?sign=1739410643-HgFMJYcNYrLlj58GEDXo6179pcHC7can-0-c3060adb9fb4211dbe9fbcf5918838ef)
对于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=1739410643-M1uZRnKI59Cn3qLECvPbAZmOxGO1zKgT-0-cfff6bcf23cfdf56e6a3eb2f33a09944)
图1-52 RelTool坐标系转化示例
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_55_2.jpg?sign=1739410643-bOAdrhb4p2Qy6uMk0WghVcfZsZfyfd3f-0-772fc9dd773384c2abb62fa1e19bd010)