![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=1739214542-OYwxdBhuu3YLmRXMd1XUR4Exar0kg5Es-0-cc34643d8a7c522954326e014e92eeb8)
效果如图1-51所示。
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_4.jpg?sign=1739214542-rhvWzwJ4fY12b7kFt2G58sOp5S8HhPzm-0-021b31cf025ade18329f38d2ddc0fcc7)
图1-51 RelTool使用示例
同样,对于存储类型不是CONST的Robtarget类型的数据,也可使用RelTool函数赋值。例如:
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_54_5.jpg?sign=1739214542-M4xJOVbGP6Ke67UivXULP4USdADbubXG-0-ce23bd7f76f90dbbfd0a30df10d272ea)
对于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=1739214542-6llJeNQ8z2Q3KTjQnIEyjRFjezsrkDIp-0-ca73ebbcf028aa1eaea855ec60f1542d)
图1-52 RelTool坐标系转化示例
![](https://epubservercos.yuewen.com/315336/23950325101463306/epubprivate/OEBPS/Images/43597_55_2.jpg?sign=1739214542-JmNDvkCurHKVhKnn55ABvRZJ9yU2GAwt-0-1802cd696746a7e584c97cd14eb7b6c2)