ABB机器人码垛案例中如何完成工作
声明:本媒体部分图片、文章来源于网络
版权归原作者所有,如有侵权,请与我联系删除。
机器人仓储码垛的环形跺型可以更好的利用6轴工业机器人自身的机械结构优势,完成产品的中转和分拣。环形仓码垛,通常机器人位于环形的中间,故各产品位置可以利用产品到中心的距离以及相应角度,计算sin和cos得到具体位置坐标。
假设如下图的抓取位置为基准位置,此处位置与环形中心相聚1500mm。利用机器人坐标系xyz对应方向,计算点位数组中各元素的位置。
count:=1;
radius:=1500;
FOR j FROM 1 TO 3 DO
!假设共三层
FORi FROM -4 TO 4 DO
!每层共9个,如图开始的位置1-9
pPlace_cal{count}:=pPlace0;
pPlace_cal{count}.trans.x:=radius*cos(i*36);
!计算坐标x
pPlace_cal{count}.trans.y:=radius*sin(i*36);
pPlace_cal{count}.trans.z:=pPlace0.trans.z+(j-1)*205;
pPlace_cal{count}:=RelTool(pPlace_cal{count},0,0,0Rz:=-i*36);!修正点位姿态,此处假设机器人工具z垂直向下
count:=count+1;
ENDFOR
ENDFOR
radius:=1500;
FOR j FROM 1 TO 3 DO
!假设共三层
FORi FROM -4 TO 4 DO
!每层共9个,如图开始的位置1-9
pPlace_cal{count}:=pPlace0;
pPlace_cal{count}.trans.x:=radius*cos(i*36);
!计算坐标x
pPlace_cal{count}.trans.y:=radius*sin(i*36);
pPlace_cal{count}.trans.z:=pPlace0.trans.z+(j-1)*205;
pPlace_cal{count}:=RelTool(pPlace_cal{count},0,0,0Rz:=-i*36);!修正点位姿态,此处假设机器人工具z垂直向下
count:=count+1;
ENDFOR
ENDFOR
由于机器人在环形仓中运动时,运动范围较大,通常为1轴旋转较大角度,若直接使用moveJ,则可能产生碰撞/姿态奇异等问题。所以在从抓取位置去放置位置时,先移动到抓取位置,再基于该位置获取Jointtarget,让机器人只是先1轴旋转一定角度后,再去放置位置:
jtmp:=CJointT(); !获取机器人抓取位置的JointTarget
jtmp2:=CJointT();
IF count>9 THEN
count:=count-9;
IF count>9 count:=count-9;
ENDIF
jtmp.robax.rax_1:=jtmp.robax.rax_1+count*36-10;
!将机器人的抓取位置1轴坐标计算,此后先只移动一轴
MoveAbsJ jtmpNoEOffs,v5000,fine,tVacuumWObj:=wobj0;
! 先只移动一轴
MoveJ offs(pPlace{i},0,0,200),v5000,z10,tVacuumWObj:=wobj0;
!再移动到计算得到的放置位置
更多资讯:ABB机器人集成