如何通过修改TCP数据来批量偏移轨迹的方法

机器人

519人已加入

描述

小伙伴们在日常应用ABB机器人过程中,也遇到过在更换不同工具后由于工具的差异造成轨迹偏差的问题吧?今天分享一下如何通过修改TCP数据来批量偏移轨迹的方法。(结尾附程序)

第一步 :使用原始工具示教一个参考点,注意使用的tooldata与工具一致。

第二步 :更换新的工具,手动增量模式操作摇杆,将新工具的TCP点与参考点对齐,与第一步位置一致,并记录XYZ各方向的移动数据,例如;X 72,Y 0,Z 92。

机器人

第三步 :准备笔记本电脑,将TCP_offset模块导入电脑虚拟系统,打开程序将原始的工具数据中的“tframe”值更新到original变量内,将第二步记录的数据取反,更新到offset变量内例如;X -72,Y 0,Z -92,四元组设置为Q1 1,Q2 0,Q3 0,Q4 0表示坐标系的转角无变化。

机器人

第四步 :运行TCP_offset_1()程序显示出计算结果;pos_x,pos_y,pos_z数据。

机器人

第五步:将运算出的tooldata结果数据更新到原始的tooldata数据中。

机器人

第六步​:运行第一步示教的参考程序,工具的TCP可以运行到参考点,表示偏移成功。

程序代码:

MODULE TCP_offset

PERS tooldata original:=[TRUE,[[352.29,-219.87,579.09],[0.053056,0.606439,-0.069145,0.790339]],[96.3,[19.3,21.5,435.9],[1,0,0,0],13.275,13.407,2.633]];

PERS tooldata deviation:=[TRUE,[[-72,0.0,-92.0],[1,0,0,0]],[96.3,[19.3,21.5,435.9],[1,0,0,0],13.275,13.407,2.633]];

VAR pose pose_original;

VAR pose pose_deviation;

VAR pose pose_resuit;

VAR string pos_x;

VAR string pos_y;

VAR string pos_z;

PROC TCP_offset_1()

pose_original:= original.tframe;

 pose_deviation:= deviation.tframe;

pose_resuit := PoseMult(pose_original, pose_deviation);

pos_x:=NumToStr(pose_resuit.trans.x,6);

pos_y:=NumToStr(pose_resuit.trans.y,6);

pos_z:=NumToStr(pose_resuit.trans.z,6);

TPWrite "Calculation resuits:";

TPWrite "pos_x:"+ pos_x + "    pos_y:"+pos_y + "   pos_z:" + pos_z;

TPWrite "end";

ENDPROC

ENDMODULE

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分