1. 机器人当前TCP,此时TCP的Z方向沿着抓手方向,TCP的X方向大致与大地坐标系垂直。
2. 此时通过外设(激光测距等设备),告知机器人此时工件设备绕自身旋转了一定角度(例如10°)
3. 此时希望机器人能调整自身姿态,使得抓手与旋转10°后的产品平行,并沿着产品方向前进100mm。
4. 由于现场并没有做工件坐标系,只有一个TCP,但产品原始姿态与机器人BASE平行。下图彩色坐标系为该点原始位姿,即可以让原始位姿(tx,ty,tz)绕着与Base坐标系平行的一个坐标系(黄色坐标系)的z轴旋转10°,即在原始姿态上左乘旋转角度
5. 可以采用如下代码实现机器人的姿态的旋转和调整。
CONST robtarget pInit1:=*
!机器人原始示教位置
VAR robtarget ptmp1:=*
VAR num angle1:=10;
PROC test_tool()
MoveJ pInit1,v1000,fine,gripper_1;
ptmp1:=pInit1;
ptmp1.rot:=OrientZYX(angle1,0,0)*ptmp1.rot;
!绕着原点在PInit1的xyz,姿态与base坐标系平行的坐标系的z轴旋转angle1角度
MoveL ptmp1,v1000,fine,gripper_1;
!此时ptmp1的姿态调整为与工件平行
MoveL reltool(ptmp1,0,0,30),v1000,fine,gripper_1;
!沿着当前工具的Z前进30mm
ENDPROC
本文摘自:网络 时间:2021-09-01