UR20机械臂学习笔记

一.使用UR系列机器人第三方库

安装第三方库

pip install urx

导入第三方库

import urx

二.UR机器人的初始化

1.连接UR机器人

调用Robot方法,该函数有两个参数,host为UR20机器人的ip地址,use_rt为是否对机器人继续实时监控。当设置为True时,可以时刻读取机械臂的运行状态,当设置为False时,无法返回机械臂的运行状态,返回值为None。

ur20 = urx.Robot(host="192.168.0.215", use_rt=True)

ip地址获取方法:

2.未知机械臂ip地址的情况:

2.设置机器人末端法兰(tcp)

设置机器人法兰到刀尖的转换,其中tcp输入参数为坐标值,在UR20机器人中,坐标值为p[x,y,z,rx,ry,rz],其中包括坐标以及角度。

ur20.set_tcp(tcp=(0, 0, 0.1, 0, 0, 0))

3.设置机器人末端负载

weight参数为以千克为单位设置有效载荷,cog参数为cog 是一个 x、y、z 矢量,如果未指定 cog,则使用刀具中心点

ur20.set_payload(weight=2, cog=(0, 0, 0.1))

三.机器人运动程序

1.机器人移动

(1) MoveJ

joints参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movej(joints=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

(2) MoveL

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movel(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

(3) MoveP

tpose参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,acc参数为加速度,vel参数为速度。

ur20.movep(tpose=(1, 2, 3, 4, 5, 6), acc=a, vel=v)

(4) MoveC

pose_via和pose_to参数为机器人的坐标,依然是p[x,y,z,rx,ry,rz]格式的数据,代表机器人的起始未知和终止未知,机器人内部自动计算运动半径。acc参数为加速度,vel参数为速度。

ur20.movec(pose_via=(1,2,3,4,5,6), pose_to=(2,3,4,5,6,7), acc=a, vel=v)

(5) Translate

在基坐标中移动工具,保持方向,vect为向量坐标x,y,z。输入后会与机器人当前坐标相加,得到新的坐标,从而控制机器人运动。acc参数为加速度,vel参数为速度。

ur20.translate(vect=(0.1, 0, 0), acc=a, vel=v)

(6) Stop

添加一个 stopj() 或一个 stopl(),以缓慢使机器人手臂减速。运动方式与上述movej和movel的运动方式相同,acc参数为加速度。

ur20.stopj(acc=a)

2.获取机器人状态

(1) Getj

获取关节位置

currt_pose = ur20.getj()

(2) Getl

返回当前从 tcp 到当前 csys 的转换

translate = ur20.getl()

(3) is_running

如果机器人正在运行,则返回 True(不一定要运行程序,也可能是空闲状态)

UR_State = ur20.is_running()

(4) is_program_running

检查程序是否正在运行。 警告!!!: 发送程序后,机器人可能需要 10 分之几秒才能进入运行状态。
秒后,机器人才会进入运行状态

UR_State = ur20.is_program_running()

(5) get_force

get_tcp_force 返回的力向量长度,如果 wait==True 则等待下一个数据包后返回

force = ur20.get_force()

(6) get_tcp_force

返回在 TCP 中测量的力

force = ur20.get_force()

3.控制IO口输入输出

(1) 模拟IO口输入

nb参数为引脚口。

ur20.get_analog_in(nb)

(2) 模拟IO口输出

output参数为引脚口,val为输出值,为模拟信号。

ur20.set_analog_out(output, val)

(3) 数字IO口输入

nb参数为引脚口。

ur20.get_digital_in(nb)

(4) 数字IO口输出

output参数为引脚口,val为输出值,高电平或低电平信号。

ur20.set_digital_out(output, val)
01-27 12:08