【干货】ABB机器人编程技巧11:创建有规律的机器人旋转Robtarget
1)如果有上图所示6个产品位置要吸取,如何最快速的创建点位?(纯示教?Naive,太体力活了。)
2)如下图,我们可以发现1号位置和0号位置姿态一样,1号相对于0号就是一个半径的偏移,2-6号位置相对于0号也都是一个半径的偏移,2-6号姿态均朝向圆心。由于图中为6个,即从2号开始,每个点姿态相对于1号旋转了60°
3)是不是可以只要示教0号点位置,同时已知半径(未知的话,自己量一下),就能自动算出其他6个点位置而不用示教了呢?答案当然是可以的!!!
4)由于涉及到坐标系偏移和旋转,所以要做好Tool和工件坐标系
5)创建工具gripper_dual,假设z方向100,工具的Z方向为工具延伸方向
6)如下图创建坐标系,圆心在中间,0号到1号方向为X,y如图。下图中的工件坐标系Z朝下(满足右手法则)。这样创建主要是为了计算方便。
7)在workwobject2坐标系,gripper_dual工具下,示教中间产品位置Target_center,此时工具的Z必须垂直于产品平面,即工具的Z朝下。(其实只是要用这个点的姿态和z,这个点的xy都是0,因为这个点在workobject2坐标系处于原点,即xy都是0)
8)设置圆心到第一个产品的距离(即半径radius),这里举例21.45mm
9)我们假设第一个位置叫Target1,则在workobject2坐标系下
Target1:=Target_center;!先让Target1位置和姿态都等于Target_center
Target1.trans.x:=radius*cos(60*0);!重新计算位置的x
Target1.trans.y:=radius*sin(60*0);!重新计算位置的y
Target1:=RelTool(Target1,0,0,0Rz:=0*60);!得到计算后的位置x和y后,tcp绕着工具的Z旋转60°。
10)通过上述例子,就得到了Target1位置,注意是在workobject2坐标系下。
11)再配合test等流程,就可以比较简单的完成6个位置的计算和移动,如下
PROC main()
radius:=21.45;
count1:=1;
WHILEcount1<7 DO
rHome;
cal;
routine1;
count1:=count1+1;
ENDWHILE
ENDPROC
PROC routine1()
MoveJoffs(Target_temp,0,0,-30),v500,z1,gripper_dualWObj:=Workobject_2;
MoveLTarget_temp,v500,z1,gripper_dualWObj:=Workobject_2;
WaitTime 1;
MoveLoffs(Target_temp,0,0,-30),v500,z1,gripper_dualWObj:=Workobject_2;
ENDPROC
PROC cal()
Target_temp:=Target_center;
TEST count1
CASE 1:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=(count1-1)*60);
CASE 2:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=60);
CASE 3:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=120);
CASE 4:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=180);
CASE 5:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=-120);
CASE 6:
Target_temp.trans.x:=radius*cos(60*(count1-1));
Target_temp.trans.y:=radius*sin(60*(count1-1));
Target_temp:=RelTool(Target_temp,0,0,0Rz:=-60);
ENDTEST
ENDPROC
PROC rHome()
MoveJpHome,v500,z1,gripper_dualWObj:=wobj0;
ENDPROC
1)什么是码垛?
有规律的移动机器人进行抓取及放置
2)如何简便码垛程序
设置好工件坐标系,工具,对第一个码垛放置点进行示教,xyz方向的间距和个数可设
3)如何创建
创建m_pallet模块
建立两个routine
在init 程序里,设置xyz方向个数和各方向间距
在p_main程序里,创建机器人移动到pHome点,pPick位置(抓取位置),以及第一个放置点pPlace_ini
通过三层for循环,进行码垛。实例程序为先x方向,再y方向,再z方向
其中偏移如下:
pPlace:=offs(pPlace_ini,(i-1)*dis_x,(j-1)*dis_y,(k-1)*dis_z);
ABB机器人编程技巧1:ABB机器人Pdisp 轨迹偏移使用">【干货】ABB机器人编程技巧1:ABB机器人Pdisp 轨迹偏移使用
【干货】ABB机器人编程技巧3:在robotstudio创建两台机器人的socket连接
【干货】ABB机器人编程技巧4:双工位预约程序
【干货】ABB机器人编程技巧5:与相机通讯的Socket收发数据处理与提取
【干货】ABB机器人编程技巧6:ABB机器人如何创建数组
【干货】ABB机器人编程技巧7:ABB机器人创建自定义数据类型
【干货】ABB机器人编程技巧8:ABB机器人数据存储类型区别
【干货】ABB机器人编程技巧9:创建带参数例行程序
【干货】ABB机器人编程技巧10:ABB机器人创建码垛程序
【干货】ABB机器人编程技巧12:Fine与z0的区别
好的文章,需要您的鼓励
6
- 最新资讯
- 最新问答
-
埃斯顿机器人系列有哪些?怎么样?
关键字: 埃斯顿 埃斯顿机器人 系列 2024-07-05 -
轮式机器人的发展及其趋势
关键字: 轮式机器人 发展 趋势 2024-07-03 -
具身智能的定义和作用
关键字: 具身智能 2024-06-28 -
什么是agv小车?特点有哪些?
关键字: agv小车 特点 2024-06-27 -
机器视觉应用的分类?范围有哪些?
关键字: 机器视觉 应用分类 范围 2024-06-25
-
工业机器人技术是干什么的?
标签: 工业机器人,技术 提问:小杰 2024-07-03 13:03:15 -
机器人焊接焊机报TC异常怎么解决
标签: 焊接机器人,焊机,TC异常 提问:TC 2024-06-28 16:05:01 -
机器人运动轨迹的控制方式有哪两种
标签: 机器人,运动轨迹,控制方式 提问:张默 2024-06-25 10:10:02 -
具身智能什么意思
标签: 具身智能,什么意思 提问:MESSE 2024-06-19 10:37:04 -
3D视觉无序抓取系统配置要点?
标签: 3D视觉,无序抓取,系统配置 提问:QUTE 2024-06-17 13:17:05
- 2021-06-10 10:45:45
- 2021-06-11 13:34:28
- 2020-05-29 10:03:22
- 2019-09-24 11:19:01
- 2020-01-16 13:27:13
- 2019-03-22 15:42:15
- 2022-10-24 21:02:58
- 2022-10-14 17:56:03
- 2022-10-23 14:38:05
- 2024-04-11 20:51:04
- 2022-10-24 19:54:03
- 2022-08-03 10:20:40
- 2024-07-03
- 2024-06-28
- 2024-06-27
- 2024-06-25
- 2024-06-20
- 2024-06-19
- 2024-06-17
- 2024-06-13
- 2024-06-11
- 2024-06-06