介绍
方案目的
本文介绍了优傲机器人在自定义特征面中2种视觉标定和应用中的实现方法,以便后续类似的应用方案参考。
硬件设备列表
本方案使用以下产品:
优傲机器人型号: UR3、UR5、UR10/ CB3。
电源要求
UR机器人:单相220V AC 10A
方案描述
概要
优傲机器人可以配合任意第三方品牌视觉系统实现视觉应用。本文介绍了基于UR机座坐标系和自定义的工件坐标系的特征的二维平面视觉的标定和应用,供后续的应用作为参考。
详细设计
2.2.1
机座特征面下的标定和应用
有相当数量的视觉应用是可以基于UR机器人的机座特征的。最常见的是机器人安装在机台的水平桌面上,而工件作业面也同样位于水平桌面上,或者是平行于水平桌面的,相机则安装在机器人第6法兰工具端上或者是竖直安装在机台的固定立柱上,且成像面为水平向上或向下。此时可以将UR机器人的XY轴所在的水平特征面作为视觉应用的特征参考面,而勿需新建新的工件视觉应用作业特征面。
视觉标定时工具坐标选择为机座坐标系下的XY平面坐标值。
下面的例子是一个较为常见的基于UR机器人机座特征的视觉应用,工件来料托盘水平放置在机台作业面上,但是位置不稳定,机器人工具端的夹爪需要在视觉引导下对来料托盘上的规则物料进行下料操作,其中相机竖直安装在机台的固定立柱上,成像面水平向下。
完整的机器人程序:
程序
BeforeStart
调用 GetUUTCalibra
调用 InitialData
调用 InitialConnect
机器人程序
等待: 0.008
GoToCamera
MoveL
paizhao
等待: 0.2
调用 CallCameraSnap
调用 GetCameraData
var_1≔机座_var
机座_var≔pose_add(机座_var,p[TargetPos[1],TargetPos[2],0,0,0,TargetPos[3]])
托盘
模式:方块
a1st_Corner_1
a2nd_Corner_1
a3rd_Corner_1
a4th_Corner_1
托盘序列
方式_1
模式点_1
设置 Gripper=关
等待: 0.2
退出_1
MoveL
unload_up
unload
设置 Gripper=开
等待: 0.2
unload_up
GetUUTCalibra
MoveL
GraspCal
CalibrationPos≔get_actual_tcp_pose()
InitialData
TargetPos≔[0,0,99,0]
ccd_num≔0
GetCameraData
循环 TargetPos[0]≟0
TargetPos≔socket_read_ascii_float(3,"socket0")
CallCameraSnap
socket_send_string("$snap1#","socket0")
'If Current_work≟1'
InitialConnect
conn≔ False
循环 conn≟ False
conn≔socket_open("192.168.0.110",5000,"socket0")
等待: 0.1
2.2.2
自定义特征面下的标定和应用
有些视觉应用中,工件并非是放置于平行于机座安装的水平台面上的,也就是说机器人的工具TCP取放工件的作业面是不平行于机座的XY平面的,这时就需要引入工件坐标系(工件自定义特征面)。
在新建的工件坐标特征面内相机成像光轴仍旧是垂直于工件作业的特征面的,此时视觉应用就需要在新建的工件坐标特征面中进行,视觉标定时工具坐标应该选择为新建的工件坐标特征面的XY平面坐标值。
此场景下视觉应用UR程序也应该基于新建的工件坐标特征面中进行。下面的例子是一个安装基准面倾斜于UR安装台面托盘中工件的下料的视觉应用。工件来料的托盘放置在基准面倾斜于UR安装机台的台面上,且放置位置不稳定,机器人工具端的夹爪需要在视觉引导下对来料托盘上的规则物料进行下料操作,其中相机在机器人第6法兰工具端上,成像光轴垂直于托盘的工件特征面。
完整的应用程序参考:
程序
BeforeStart
'Adjust tcp pose'
'MoveJ'
TargetPos≔[0,0,0.3,0]
调用 GetUUTCalibra
调用 InitialData
调用 InitialConnect
机器人程序
等待: 0.008
GoToCamera
MoveL
paizhao
等待: 0.2
调用 CallCameraSnap
调用 GetCameraData
CalibrationPos≔pose_trans(CalibrationPos,p[TargetPos[1],TargetPos[2],0,0,0,TargetPos[3]])
CaliPos_up≔pose_trans(CalibrationPos,p[0,0,-0.1,0,0,0])
MoveL
CaliPos_up
CalibrationPos
设置 Gripper=开
等待: 0.2
CaliPos_up
调用 InitialData
GetUUTCalibra
MoveL
GraspCal
CalibrationPos≔get_actual_tcp_pose()
InitialData
TargetPos≔[0,0,99,0]
ccd_num≔0
GetCameraData
循环 TargetPos[0]≟0
TargetPos≔socket_read_ascii_float(3,"socket0")
CallCameraSnap
socket_send_string("$snap1#","socket0")
'If Current_work≟1'
InitialConnect
conn≔ False
循环 conn≟ False
conn≔socket_open("192.168.0.110",5000,"socket0")
等待: 0.1
艾科伯特(AirkingRobots)专注于具身智能机器人领域,提供 UR 等系列机器人的模仿学习、强化学习完整解决方案,涵盖数据采集设备定制、政策训练优化、跨载体迁移适配等全链条服务。如需了解具体技术细节或方案咨询,可联系 AirkingRobots 获取专业支持。
更多案例请关注公众号:
商
务
联
系
邮箱:info@airkingrobots.com
电话:13161062216
—— E N D ——
点个喜欢吧

