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