关于机器人如何重定位移动,首先来看一下示教器上的重定位移动是在哪。
从图中所示的坐标位置和操纵杆方向得知,重定位的本质是绕X、Y、Z轴的旋转。那么实现跟摇杆一样的操作,就可以通过改变当前位置的欧拉角来实现,参考Rapid指令手册,
EulerZYX(Euler ZYX rotations)用于从orient类型变量获取欧拉角分量。
每次移动机器人前都需要获取当前点位的欧拉角,通过增减量,来绕XYZ重定位移动。
那么下一步,就需要把获取到值,赋值给要移动的点位,参考指令手册,可以通过以下指令实现
OrientZYX(Orient from Euler ZYX angles)用于建立一个不含欧拉角的定向变量。
来看一下实际程序,应该怎么编写。
VAR robtarget Actualpos;
VAR num anglex;
VAR num angley;
VAR num anglez;
Actualpos := CRobT(\Tool:=tool0\WObj:=wobj0);
anglex := EulerZYX(\X, Actualpos.rot);
angley := EulerZYX(\Y, Actualpos.rot);
anglez := EulerZYX(\Z, Actualpos.rot);
!绕X轴正方向旋转
Actualpos.rot := OrientZYX(anglez,angley,anglex+reg1);
!绕X轴负方向旋转
Actualpos.rot := OrientZYX(anglez,angley,anglex-reg1);
!其它方向的旋转类似,通过改变angley ,anglez的值即可
!移动该点位,即可实现和摇杆重定位一样的效果
MoveJ Offs(Actualpos,0,0,0),v1000,fine,tool0\WObj:=wobj0;