TCP表示机器人当前使用的工具末端在法兰盘坐标系下的xyzabc的偏差。
例如MOVEL V=50.0MM/S CR=0.0MM TOOL#(1) USER#(1) V001 表示机器人用当前工具末端的TCP(TOOL1数据),走到USER1坐标系下的点1(V001:x,y,z,a,b,c)的位置,例如下图。
此时,若机器人末端真实工具(例如胶枪)发生了变化,机器人走以上代码MOVEL V=50.0MM/S CR=0.0MM TOOL#(1) USER#(1) V001 后,通过相机拍照,发现机器人末端工具在相机下的位置如上图的点2。 假设工具TCP仅存在user坐标系的xy平面的偏差(如果是6维数据,可以通过2个相机拍摄,得到点2与点1在某个坐标系下的dx,dy,dz,drx,dry,drz)。
此时若能将机器人tcp数据对应到点2,即修正了TCP数据。
可以使用以下代码,对TCP数据进行矫正自动计算
NOP // 把标准TCP数据记录到V010 SETPOSE V010 0,0,100,0,0,0 // 用标准TCP移动到标准拍照位置,例如上图的点1 SETTOOLFRAME TOOL#(1) V010 MOVEL V=50.0MM/S CR=0.0MM TOOL#(1) USER#(1) ConstV=[357.7955932,57.3500647,57.6938830,-3.1415803,-0.0000216,-0.6504935] TIMER T=1S GETACTUALTCP V002 TOOL#(1) USER#(1) // 记录标准针尖TCP对应的在user1下的位置 GETACTUALTCP V003 TOOL#(1) USER#(1) ADD V003(0) D011 ADD V003(1) D012 // 把相机发来的在USER1下的偏差加到对应点,即获取新针尖在user1下的值 SET V011 V010 // 将标准TCP数据赋值到V011 POSEINV V002 POSEMUL V002 V003 POSEMUL V011 V002 SETTOOLFRAME TOOL#(1) V011 //用新的TCP走到老的点位(例如上图的user1下的绝对xyzabc点1),针尖应该刚好对上点1 MOVEL V=50.0MM/S CR=0.0MM TOOL#(1) USER#(1) ConstV=[357.7955932,57.3500647,57.6938830,-3.1415803,-0.0000216,-0.6504935] //此处constV与第7行的constV一致,上面这样与第7行完全一样,只是TCP被重新计算到了真实的新的工具末端 END