机器人
小伙伴们在日常应用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
全部0条评论
快来发表一下你的评论吧 !