利用相机自动修正机器人TCP

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
点击显示全文
赞同0
发表评论
分享

手机扫码分享
0
602
收藏
举报
收起
登录
  • 密码登录
  • 验证码登录
还没有账号,立即注册
还没有账号,立即注册
注册
已有账号,立即登录
选择发帖板块
举报
请选择举报理由
举报
举报说明