【干货】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
- 最新资讯
- 最新问答
-
智能仓储系统的构成包括什么?有哪些特点?
关键字: 智能仓储 智慧物流 2025-05-15 -
微型压力传感器的原理是什么?有哪些应用?
关键字: 传感器 压力传感器 鑫精诚 2025-04-03 -
立体库堆垛机是什么?有哪几种类型?
关键字: 堆垛机 立体仓库 2025-03-24 -
埋弧焊是什么焊接方法?有什么特点?
关键字: 弧焊 埋弧焊 2025-03-17 -
AGV小车是什么?有哪些分类及特点?
关键字: agv小车 2025-03-12
-
激光焊接机器人的特点有哪些?
标签: 激光焊接机器人,焊接机器人,工业机器人 提问:小T 2025-04-15 11:02:00 -
工业机器人码垛原理是什么?
标签: 码垛机器人,工业机器人 提问:晓明 2025-03-24 12:00:00 -
什么是自动焊接和半自动焊接?
标签: 焊接,焊接机器人 提问:小君 2025-03-18 09:00:00 -
发那科机器人的信号种类?
标签: 发那科机器人,IO信号 提问:小马 2025-03-10 15:00:00 -
弧焊机器人有什么性能标准和要求?
标签: 弧焊机器人 提问:小常 2025-03-05 15:00:00
- 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
- 2025-05-15
- 2025-04-03
- 2025-03-24
- 2025-03-17
- 2025-03-12
- 2025-03-05
- 2025-02-27
- 2025-02-19
- 2025-02-18
- 2025-02-10