移动机器人

当前位置:前位置:首页 > 移动机器人
全部 1925

【干货】ABB机器人编程技巧Fine与z0的区别

时间:2023-08-22   访问量:0

1)什么是zonedata?

机器人转弯半径,即机器人当运行两个运动命令时,如果设置了转弯半径,机器人会有一个平滑的过渡,转弯半径意味着,机器人输入设定点半径内的位置,机器人开始转变

2)什么是罚款?

如果要准确到达某个位置,请使用fine。

3)3)z0和fine有什么区别?

在轨迹上,z0和fine差不多。但除了准确到达,fine还有防止程序提前读取的功能。

图1中的第21行使用z0。

图2:第21行使用了fine。

机器人运行时,示教器有两个图标,一个是左边的箭头,表示程序读到了哪一行,另一个是机器人图标,指示机器人你实际上在哪一行。为了实现诸如平滑过渡的功能,机器人提前读几行代码。

如果使用图1的z0,机器人在第21行,程序已经执行到第23行,也就是说,机器人我还没到位置,就开了do。

如果使用图2的fine,机器人第21行,程序还在第21行,也就是用fine,程序指针不会被预读,也就是说,机器人在完成21行之前,不会打开Do。

横丝机器人编程技巧11:

实时机器人Peter 1,技术CEO)如果有六个产品位置需要被吸收如上图所示,如何最快地创建位置?(纯教学?幼稚,太手动了。)

2)如下图所示,我们可以发现1号位置与0号位置相同,1号位置是距离0号位置的半径偏移,2-6号位置也是距离0号位置的半径偏移,2-6号位置都是朝向圆心。由于图中有六个,即从2号开始,每个点的姿态相对于1号旋转60度。

3)是否只要教了0点的位置,半径已知(如果未知,自己测)就可以不用教自动算出其他六个点的位置?答案当然是肯定的!!!

4)因为涉及到坐标系偏差和旋转,所以要准备好刀具和工件坐标系。

5)创建一个刀具gripper_dual,假设Z方向为100,刀具的Z方向为刀具延伸方向。

6)如下图创建一个坐标系,圆心在中间,从0到1的方向是如图所示的X和Y。下图工件坐标系Z向下(满足右手定则)。这个创作主要是为了计算方便。

7)在工件2坐标系中和夹爪_双重刀具下,示教中间产品位置Target_center。此时,刀具的z必须垂直于产品平面,即刀具的z朝下。(其实只要用这个点的姿态和z,这个点的xy为0,因为这个点在workobject2坐标系中是在原点,也就是xy为0。)

8)设置圆心到第一个产品的距离(即半径),例如21.45 mm。

9)我们假设第一个位置叫做Target1,它在workobject2坐标系中。

Target 1:= Target _ center;!先让Target1的位置和姿态等于Target_center。

target 1 . trans . x:= radius * cos(60 * 0);!重新计算位置的x

target 1 . trans . y:= radius * sin(60 * 0);!重新计算位置的y轴

Target1:=RelTool(Target1,0,0,0 rz:= 0 * 60);!获得计算的位置x和y后,tcp围绕工具的z旋转60°。

10)通过上面的例子,获得了目标1的位置,注意它在工件2坐标系中。

11)在测试过程中,可以相对简单地完成六个位置的计算和移动,如下所示

PROC main()

半径:= 21.45;

count 1:= 1;

WHILEcount17 DO

rHome

cal

路线1;

count 1:= count 1+1;

结束时间

结束过程

【干货】ABB机器人编程技巧Fine与z0的区别

过程例程1()

MoveJoffs(Target_temp,0,0,-30),v500,z1,gripper _ dualWObj:= work object _ 2;

MoveLTarget_temp,v500,z1,gripper _ dualWObj:= work object _ 2;

等待时间1;

MoveLoffs(Target_temp,0,0,-30),v500,z1,gripper _ dualWObj:= work object _ 2;

结束过程

过程校准()

目标_温度:=目标_中心;

测试计数1

案例1:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:=(count 1-1)* 60);

案例二:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:= 60);

案例三:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:= 120);

案例4:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:= 180);

案例5:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:=-120);

案例6:

target _ temp . trans . x:= radius * cos(60 *(count 1-1));

target _ temp . trans . y:= radius * sin(60 *(count 1-1));

Target _ temp:= rel tool(Target _ temp,0,0,0 rz:=-60);

结束测试

结束过程

过程主页()

MoveJpHome,v500,z1,gripper _ dualWObj:= wobj 0;

ENDPROCHoward

【干货】ABB机器人编程技巧1: abb机器人Pdisp轨迹偏移使用

【干货】ABB机器人编程技巧2:单站多预约程序

【干货】ABB机器人编程技巧3:在robotstudio中创建两个。机器人套接字连接基于

【干货】ABB机器人编程技巧4:双站预订程序

【干货】ABB机器人编程技巧五:处理提取与摄像头Socket通信的数据。

【干货】ABB机器人编程技巧6: abb机器人如何创建数组

【干货】ABB机器人编程技巧7: abb机器人创建自定义数据类型

【干货】ABB机器人编程技巧8: abb机器人数据存储类型差异

【干货】ABB机器人编程技巧9:创建带参数的例程

【干货】ABB机器人编程技巧10: abb机器人建立码垛程序

【干货】ABB机器人编程技巧11:创建常规的机器人旋转机器人目标

上一篇:从AGV到AMR,浅谈移动机器人的发展!

下一篇:亚马逊计划使用多机器人能提高工人安全

返回顶部