大数跨境

干货分享:机器人+视觉应用中的绝对坐标值和相对偏移量程序指南,UR机器人为例

干货分享:机器人+视觉应用中的绝对坐标值和相对偏移量程序指南,UR机器人为例 AirkingRobots艾科伯特科技
2025-01-05
1
导读:优傲机器人可以配合任意第三方品牌视觉系统实现视觉应用。由于视觉系统和机器人的机械坐标系经过标定后,传递给优傲机器人的坐标值可能是相对偏移位移量(相对于标准靶值坐标),也可能是目标位置在标定坐标系下的绝

视觉应用中的绝对坐标值和相对偏移量


目   录

1. 介绍 Introduction 4

1.1 方案目的 Purpose of this proposal 4

1.2 硬件设备列表 Hardware equipment 4

1.3 电源要求 Power supply 4

2. 方案描述 Proposal description 4

2.1 概要 4

2.2 详细设计 5

2.2.1 CCD发送目标物在机座坐标系下绝对坐标UR程序代码实现 5

2.2.2 CCD发送目标物相对偏差值UR程序代码实现 7

介绍 Introduction

1.1 方案目的 Purpose of this proposal

本文介绍了优傲机器人在视觉应用中如何获取并应用绝对位移和相对位移值的实现方法,以便后续类似的应用方案参考。

1.2 硬件设备列表 Hardware equipment

本方案使用以下产品:

优傲机器人型号: UR3、UR5、UR10/ CB3。

1.3 电源要求 Power supply

UR机器人:单相220V AC  10A

方案描述 Proposal description

2.1 概要

优傲机器人可以配合任意第三方品牌视觉系统实现视觉应用。由于视觉系统和机器人的机械坐标系经过标定后,传递给优傲机器人的坐标值可能是相对偏移位移量(相对于标准靶值坐标),也可能是目标位置在标定坐标系下的绝对位置。本文介绍了优傲机器人在视觉应用中如何获取并应用绝对位移和相对位移值的实现方法。

2.2 详细设计

2.2.1 CCD发送目标物在机座坐标系下绝对坐标UR程序代码实现

图 1

程序

BeforeStart

调用 GetUUTCalibra

调用 InitialData

调用 InitialConnect

机器人程序

等待: 0.008

GoToCamera

MoveL

paizhao

等待: 0.2

调用 CallCameraSnap

调用 GetCameraData

RPY≔rotvec2rpy([CalibrationPos[3],CalibrationPos[4],CalibrationPos[5]])

RPY_absolute≔[RPY[0],RPY[1],TargetPos[3]/180*3.14]

RotVec_absolute≔rpy2rotvec([RPY_absolute[0],RPY_absolute[1],RPY_absolute[2]])

Pos_Install≔p[TargetPos[1],TargetPos[2],CalibrationPos[2],RotVec_absolute[0],RotVec_absolute[1],RotVec_absolute[2]]

Pos_Install_up≔pose_add(Pos_Install,p[0,0,0.2,0,0,0])

MoveL

Pos_Install_up

Pos_Install

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

此案例中,CCD视觉系统通过TCP SOCKET将目标物体的X,Y,及旋转角以UR机座坐标系的下的绝对坐标值(TargetPos[1],TargetPos[2],TargetPos[3])发送给UR机器人。参照于标定的目标物体的靶值坐标位姿CalibrationPos,需要对CalibrationPos位姿的X,Y及RZ坐标进行调整。TargetPos[3]为RPY角下的轴旋转角,且为角度单位,所以在程序中使用了rpy2rotvec(rpy vector)脚本函数先将机器人位姿坐标的旋转矢量RX,RY,RZ转换为RPY角。在RPY角下进行了Roll角的简单替换TargetPos[3]后,再将得到RPY角度进行rotvec2rpy(rotation vector)的逆运算,转换为实际目标靶值坐标位姿的旋转矢量。而在基座坐标系下的目标物校准靶值的X,Y坐标值则只需要进行用相机发送过来的TargetPos[1],TargetPos[2]进行简单的替换,转换为实际的目标靶值的X,Y坐标值。

2.2.2 CCD发送目标物相对偏差值UR程序代码实现

图 2

程序

BeforeStart

调用 GetUUTCalibra

调用 InitialData

调用 InitialConnect

机器人程序

等待: 0.008

GoToCamera

MoveL

paizhao

等待: 0.2

调用 CallCameraSnap

调用 GetCameraData

Pos_Install≔pose_add(CalibrationPos,p[TargetPos[1],TargetPos[2],0,0,0,TargetPos[3]])

Pos_Install_up≔pose_add(Pos_Install,p[0,0,0.2,0,0,0])

MoveL

Pos_Install_up

Pos_Install

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

此案例中,CCD视觉系统通过TCP SOCKET将目标物体的X,Y,及旋转角以UR机座坐标系的下的X\Y偏移值和角度偏移(TargetPos[1],TargetPos[2],TargetPos[3])发送给UR机器人。参照于标定的目标物体的靶值坐标位姿CalibrationPos,在机座坐标系中利用pose_add进行运算即可得到实际物体的位姿信息。

更多技术参考, 公众号文章:

医疗手术机器人研发框图


机器人教学成套方案


机器人末端成套产品

Airking Robots

北京艾科伯特科技有限公司,是专注协作机器人和移动机器人的技术公司,Airking Robots——艾科伯特立足于航空/航天,专注于机器人智能制造方向,Airking Robots是优傲机器人,Robotiq等协作机器人方向中国区域金牌提供商

商务联系:


更多案例请关注公众号:

【声明】内容源于网络
0
0
AirkingRobots艾科伯特科技
北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
内容 78
粉丝 0
AirkingRobots艾科伯特科技 北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
总阅读36
粉丝0
内容78