更多内容请点击上方 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机器人实战技巧,或者扫描以下二维码关注
|