ABB机器人不规则码垛

[复制链接]
查看65390 | 回复0 | 2024-3-18 09:56:38 | 显示全部楼层 |阅读模式
更多内容请点击上方 ABB机器人实战技巧 关注

也可点击公众号下方 往期经典 浏览更多内容

转载请先后台留言,大家一起支持原创,推动机器人使用和发展

本公众号对各类ABB机器人应用,仿真,毕业设计提供技术支持,详细后台留言

本公众号诚挚希望与各机器人培训机构,机器人使用单元合作,提供技术支持,详细后台留言









1.例如现场有拆垛和码垛要求,希望把左侧的垛按照1-9的顺序搬运到右侧的1-9

2.显然右侧的梯形垛为非规则垛型,若采用工件坐标系+设置间距方式,无法简单实现。

3.对于右侧垛型,显然可以只需要机器人示教点1,点3,点7和点9(即示教四个角点),并设置1->3方向的个数,1->7方向的个数,即可完成自动计算。

4.对于左侧垛型,同样可以采用步骤3的方法  
PROCmain()        reset do_attach;        row_num:=3;!第一个方向个数        column_num:=3;!第二个方向个数        MoveJ pHome1,v1000,fine,tVacuum\WObj:=wobj0;        FOR i FROM 1 TO row_num*column_num DO           pPallet:=PalletCal(i,row_num,column_num,p100,p101,p102,p103);           !根据第一个垛型的四个角点和当前个数,自动获取对应位置            Movej offs(pPallet,0,0,50),vmax,z50,tVacuum\WObj:=wobj0;            MoveL pPallet,v1000,fine,tVacuum\WObj:=wobj0;            set do_attach;            waittime 0.1;            MoveL offs(pPallet,0,0,300),vmax,z50,tVacuum\WObj:=wobj0;
pPallet:=PalletCal(i,row_num,column_num,p200,p201,p202,p203);           !根据第二个垛型的四个角点和当前个数,自动获取对应位置            Movej offs(pPallet,0,0,50),vmax,z50,tVacuum\WObj:=wobj0;            MoveL pPallet,v1000,fine,tVacuum\WObj:=wobj0;            reset do_attach;            waittime 0.1;            MoveL offs(pPallet,0,0,50),vmax,z50,tVacuum\WObj:=wobj0;        ENDFOR      MoveJ pHome1,v1000,fine,tVacuum\WObj:=wobj0;  ENDPROC
FUNCrobtarget PalletCal(num count,num row,num column,robtarget startpos,robtarget rowpos,robtarget columnpos,robtarget refpos)        !    count:当前第几个产品        !    row:第一个方向个数        !    column:第二个方向个数        !    startpos: 码垛第一个点        !    rowpos:  第一个方向的末端点        !    columnpos:第二个方向的末端点        !    refpos:    最远端点        !        !     startpos  ----------->columnpos        !       |         第二个方向  |        !       |                    |        !       |第一个方向           |        !       |                    |        !     rowpos     -----------refposVARrobtarget outpos1;     VAR robtarget outpos2;        VAR robtarget outpos3;        VAR num current_row;        VAR num current_column;        current_row:=(count-1) MOD row;        current_column:=Trunc((count-1)/row);        outpos1:=Interpolate_pose(startpos,rowpos,current_row/(row-1));        outpos2:=Interpolate_pose(columnpos,refpos,current_row/(row-1));        outpos3:=Interpolate_pose(outpos1,outpos2,current_column/(column-1));        RETURN outpos3;    ENDFUNC
FUNCrobtarget Interpolate_pose(robtarget p_from,robtarget p_to,num alpha)        !    -- Linear interpolation of tool position        !    -- When alpha is 0, returns p_from. When alpha is 1, returns p_to. As alpha goes from 0 to 1, returns a        !    -- pose going in a straight line from p_from to p_to.        !    -- If alpha is less than 0, returns a point before p_from on the line.        !    -- If alpha is greater than 1, returns a pose after p_to on the line.VARrobtarget p:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];        p:=p_from;        p.trans.x:=p_from.trans.x+(p_to.trans.x-p_from.trans.x)*alpha;        p.trans.y:=p_from.trans.y+(p_to.trans.y-p_from.trans.y)*alpha;        p.trans.z:=p_from.trans.z+(p_to.trans.z-p_from.trans.z)*alpha;        RETURN p;    ENDFUNC
********************************

如何获取更多经典文章?

关注公众号 ABB机器人实战技巧,点击页面底部的往期经典和配置,查看更多经典内容

点击阅读原文,学习robotstudio仿真,获取完整教学视频

更多内容

★ 如何搜索历史文章

★基于pcsdk传输文件到HOME及加载

通过总线发送实数及负整数

★使用定时中断向PLC发送机器人位置

★信号的准确提早触发

★变位机校准

★ABB机器人零位校准的那些秘密

★创建UDP通讯

★旋转姿态的左乘与右乘

★通过socket控制机器人启停

上位机仪表盘实时显示机器人速度

★机器人画哆啦A梦

上位机实时控制机器人运动之EGM

Python控制ABB机器人运动

通过Excel批量修改EIO文件

带连杆的机器人正运动学计算

制作四连杆机构

机器人PROFINET同时做CONTROLLER和DEVICE

★语音控制ABB机器人

★手机访问web控制机器人

★自定义伺服焊枪

★制作输送链抓取搬运码垛工作站

★随机物料产生与抓取

★四轴机器人定义TCP

★自定义外部轴-变位机

★示教四点完成码垛

★multimove之双机器人与变位机

Robotware6.08碰撞预测启用与关闭

SMB板针脚解释

四六关节耦合限制

求两点间距离

新I/O DSQC1030配置

ABB机器人配置伺服焊枪

转角路径故障不提示设置

外部PLC选择机器人程序

一键回HOME程序

机器人各轴上下限位修改

Wobjdata数据解释

输送链跟踪与视觉的联系

急停与自动停止接线

更多大牛讲解视频,可以微信搜索ABB机器人实战技巧,或者扫描以下二维码关注

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则