最近公司买了一款优傲机器人UR3来做了一些研究,公司要求是在pc端编程通过网络实现对机器人的全面控制,研究了一段时间颇有心得,记录在此,也好协助一些使用优傲机器人的朋友少走弯路。
首先从端口来说,ur机器人是有几个不同端口实现各自功能的,如果想要实时获取机器人信息的同时控制机器人,那么还是要用30003端口,这个端口可以接受move控制机器人移动之外,还会以125赫兹频率返回一组机器人信息数据,数据格式见文档《Client_Interface_V3.5》。
移动命令分为moveJ、movel等,这两个是比较常见的,只是移动方式不同,J是指移动两点之间时按最快原则,路线不一定是直线,而L的话,则两点间移动必须是直线的;命令内部,带p关键字的是坐标移动,输入的内容为坐标值:
movej(p[239.7/1000, -54/1000, 336/1000, 2.18, -2.235, 0], a = 0.1, v = 0.1)
由于其xyz单位为米,所以如果输入示教器相同的数据时,需要除以1000转换成米。
不带p时候,表示为轴移动,控制的是各个轴的角度:
movej([d2r(-14),d2r(-64),d2r(-114),d2r(-94),d2r(87),d2r(158)],a=0.5, v=0.5)
其中d2r()为ur的脚本,把输入角度转换为弧度,因为这个接口的参数是弧度。
在30003中除了获取到当前的位置,轴坐标,还能获取机器人的安全状态等参数