Appearance
视觉工艺
设置视觉参数
0x4101 VISION_PARAMETER_SET
json
{
"cameraType": "customize",
"robot": 1,
"vision": {
"protocol": {
"addDataInitialPara": "GD001",
"addDataNum": 5,
"angleUnit": 0,
"endMark": "$",
"failFlag": "NG",
"frameHeader": "@",
"hasTCS": true,
"hasUCS": false,
"separator": ",",
"singleTarget": false,
"successFlag": "OK",
"timeOut": 30,
"type": 1
},
"socket": {
"IP": "192.168.1.120",
"camera_data_type": 0,
"portNum": 1,
"portOne": 5050,
"portTwo": 0,
"server": true
},
"trigger": {
"IOPort": 0,
"duration": 1000,
"intervals": 35,
"triggerMode": 2,
"triggerOnce": true,
"triggerStr": "TRG"
},
"userCoordNum": 2
},
"visionNum": 0
}参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| cameraType | - | string | 相机类型,默认"customize" |
| robot | - | int | 机器人编号 |
| vision.protocol | addDataInitialPara | string | 附加数据起始变量 |
| vision.protocol | addDataNum | int | 附加数据个数 |
| vision.protocol | angleUnit | int | 0: 角度;1: 弧度 |
| vision.protocol | endMark | string | 结束符 |
| vision.protocol | failFlag | string | 失败发送标志符 |
| vision.protocol | frameHeader | string | 帧头 |
| vision.protocol | hasTCS | bool | 接收坐标系 工具 |
| vision.protocol | hasUCS | bool | 接收坐标系 用户 |
| vision.protocol | separator | string | 分割符 |
| vision.protocol | singleTarget | bool | 单目标使能 |
| vision.protocol | successFlag | string | 成功发送标志符 |
| vision.protocol | timeOut | int | 超时时间 |
| vision.protocol | type | int | 0: 2D, 1: 2D+高度, 2: 3D |
| vision.socket | IP | string | 相机IP |
| vision.socket | camera_data_type | int | 0: 机器人坐标, 1: 像素坐标 |
| vision.socket | portNum | int | 端口数 |
| vision.socket | portOne | int | 端口1 |
| vision.socket | portTwo | int | 端口2 |
| vision.socket | server | bool | true: 服务端, false: 客户端 |
| vision.trigger | IOPort | int | 触发方式 绑定IO端口 |
| vision.trigger | duration | int | 持续时间 |
| vision.trigger | intervals | int | 触发周期 |
| vision.trigger | triggerMode | int | 1: IO, 2: Ethernet |
| vision.trigger | triggerOnce | bool | true: 单次, false: 多次 |
| vision.trigger | triggerStr | string | 触发字符串 |
| vision | userCoordNum | int | 手眼标定用户坐标系 |
| - | visionNum | int | 工艺号,从0开始 |
查询视觉参数
0x4102 VISION_PARAMETER_INQUIRE
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号,从0开始 |
返回查询视觉参数结果
0x4103 VISION_PARAMETER_RESPOND
json
{
"cameraList": {
"currentName": "customize",
"listNum": 0
},
"protocol": {
"addDataInitialPara": "GD002",
"addDataNum": 4,
"angleUnit": 1,
"endMark": "*",
"failFlag": "N",
"frameHeader": "#",
"hasTCS": true,
"hasUCS": true,
"separator": ".",
"singleTarget": true,
"successFlag": "OK",
"timeOut": 31,
"type": 2
},
"socket": {
"IP": "192.168.1.14",
"camera_data_type": 1,
"portNum": 2,
"portOne": 5052,
"portTwo": 5051,
"server": false
},
"trigger": {
"IOPort": 2,
"duration": 100,
"intervals": 35,
"triggerMode": 2,
"triggerOnce": false,
"triggerStr": "TG"
},
"userCoordNum": 100
}返回参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| cameraList | currentName | string | 当前相机名称 |
| cameraList | listNum | int | 默认值配置 |
| protocol | (同设置) | - | 协议参数,详见上方 |
| socket | (同设置) | - | Socket参数,详见上方 |
| trigger | (同设置) | - | 触发参数,详见上方 |
| - | userCoordNum | int | 用户坐标系编号 |
视觉位置参数设置
0x4104 VISION_POS_PARAMETER_SET
json
{
"position": {
"angleDirection": 1,
"cameraPoint": [0.0, 0.0, 100.0, 0.0, 0.0, 0.0],
"datumPoint": [0.0, 0.0, 0.0, 3.140, 0.0, 0.0, 0.0],
"excursion": {
"Xexcursion": 1.0,
"Yexcursion": 2.0,
"Zexcursion": 3.0,
"angle": 4.0
},
"recvPointsType": 0,
"scale": 1.0
},
"robot": 1,
"visionNum": 0
}参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| position | angleDirection | int | 角度方向,1或-1 |
| position | cameraPoint | array | 第一位X值,第二位Y值,第三位高度,第四位角度。 若参数类型是2D和2D+H,则保存4元数组[x,y,H,angle]。 若为3D,则保存6元数组[x,y,z,a,b,c]。 |
| position | datumPoint | array | 基准点x,y,z,a,b,c |
| position.excursion | Xexcursion | float | X方向偏移 |
| position.excursion | Yexcursion | float | Y方向偏移 |
| position.excursion | Zexcursion | float | Z方向偏移 |
| position.excursion | angle | float | 角度偏移 |
| position | recvPointsType | int | 接受位置类型:0: 点,1: 轨迹 |
| position | scale | float | 比例系数 |
| - | robot | int | 机器人编号 |
| - | visionNum | int | 工艺号,从0开始 |
视觉位置参数查询
0x4105 VISION_POS_PARAMETER_INQUIRE
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号,从0开始 |
返回0x4105查询结果
0x4106 VISION_POS_PARAMETER_RESPOND
同:0x4104
查询视觉调试点位列表
0x4107 VISION_DEBUGGING_POS_INQUIRE
json
{
"robot": 1,
"visionNum": 1,
"conveyorNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号,从0开始 |
| conveyorNum | int | 传送带工艺号,从1开始 |
返回视觉调试点位列表
0x4108 VISION_DEBUGGING_POS_RESPOND
json
{
"robot": 1,
"visionNum": 1,
"originPos": [
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0},
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0},
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0}
],
"currentPos": [
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0},
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0},
{"X": 0.0, "Y": 0.0, "Z": 0.0, "angle": 0.0}
]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号,从0开始 |
| originPos | array | 原始位置列表 |
| currentPos | array | 当前位置列表 |
清空视觉调试点位列表
0x4109 VISION_DEBUGGING_POS_CLEAR
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号,从0开始 |
拍照
0x410A VISION_DEBUGGING_TAKE_PICTURE
拍照前要上电
json
{
"robot": 1,
"visionNum": 0
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
计算偏移
0x410B VISION_DEBUGGING_CALCULATE
返回0x4108
json
{
"robot": 1,
"visionNum": 0,
"conveyorNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| conveyorNum | int | 传送带工艺号 |
运动至该点
0x410C VISION_DEBUGGING_POS_MOVE
json
{
"robot": 1,
"visionNum": 1,
"type": 1,
"posNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| type | int | 0: 试拍照点,1: 位置调试点,2: 抓取姿态基准点 |
| posNum | int | 点位编号,1-20 |
标定抓取姿态
0x4110 VISION_GESTURE_CALIBRATION_SET
标定后,要用0x4104重新写入
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
返回标定结果
0x4111 VISION_GESTURE_CALIBRATION_RESPOND
json
{
"datumPoint": [0, 0, 0, 0, 0, 0],
"datumPointDeg": [0, 0, 0, 0, 0, 0]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| datumPoint | array | 基准点弧度制 |
| datumPointDeg | array | 基准点角度制 |
清除抓取姿态标定
0x4116 VISION_GESTURE_CALIBRATION_CLEAR
清空后,要用0x4104重新写入
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
试拍照
0x4112 VISION_TRY_TAKE_PICTURE
json
{
"visionNum": 1,
"robot": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| visionNum | int | 工艺号 |
| robot | int | 机器人编号 |
返回拍照结果
0x4113 VISION_TAKE_PICTURE_RESPOND
json
{
"cameraData": "",
"cameraPoint": [0, 0, 0, 0, 0, 0]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| cameraData | string | 相机数据 |
| cameraPoint | array | 相机点位。3D相机6个数值,否则4个 |
视觉IP参数查询
0x4114 VISION_IPPARAM_INQUIRE
json
{
"visionNum": 1,
"robot": 1,
"server": true
}| 参数名 | 类型 | 说明 |
|---|---|---|
| visionNum | int | 工艺号 |
| robot | int | 机器人编号 |
| server | bool | true: 服务端, false: 客户端 |
返回0x4114查询结果
0x4115 VISION_IPPARAM_RESPOND
json
{
"visionNum": 1,
"robot": 1,
"server": true,
"IP": "192.168.1.120"
}| 参数名 | 类型 | 说明 |
|---|---|---|
| visionNum | int | 工艺号 |
| robot | int | 机器人编号 |
| server | bool | true: 服务端, false: 客户端 |
| IP | string | IP地址 |
视觉标定参数设置
0x4117 VISION_CALIBRATION_PARAM_SET
json
{
"robot": 1,
"visionNum": 1,
"calibration": {
"point_num": 9,
"calibrated": false,
"point": [
{
"pixel_pos": [1, 2, 3, 4, 5, 6, 7],
"robot_pos": [1, 2, 3, 4, 5, 6, 7]
},
{
"pixel_pos": [1, 2, 3, 4, 5, 6, 7],
"robot_pos": [1, 2, 3, 4, 5, 6, 7]
}
]
}
}参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| - | robot | int | 机器人编号 |
| - | visionNum | int | 工艺号 |
| calibration | point_num | int | 标定点个数 |
| calibration | calibrated | bool | 是否已标定 |
| calibration.point | pixel_pos | array | 像素坐标 |
| calibration.point | robot_pos | array | 机器人坐标 |
视觉标定参数查询
0x4118 VISION_CALIBRATION_PARAM_INQUIRE
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
返回0x4118查询结果
0x4119 VISION_CALIBRATION_PARAM_RESPOND
json
{
"calibration": {
"calibrated": false,
"point": [
{
"pixel_pos": [0, 0, 0, 0, 0, 0, 0],
"pixel_pos_deg": [0, 0, 0, 0, 0, 0, 0],
"robot_pos": [0, 0, 0, 0, 0, 0, 0],
"robot_pos_deg": [0, 0, 0, 0, 0, 0, 0]
}
],
"point_num": 6
},
"robot": 1,
"visionNum": 0
}返回参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| calibration | calibrated | bool | 是否已标定 |
| calibration | point_num | int | 标定点个数 |
| calibration.point | pixel_pos | array | 像素坐标弧度 |
| calibration.point | pixel_pos_deg | array | 像素坐标角度 |
| calibration.point | robot_pos | array | 机器人坐标弧度 |
| calibration.point | robot_pos_deg | array | 机器人坐标角度 |
| - | robot | int | 机器人编号 |
| - | visionNum | int | 工艺号 |
标定该点
0x411A VISION_CALIBRATION_MARK_POINT
json
{
"robot": 1,
"visionNum": 1,
"point_num": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| point_num | int | 标定点编号 |
返回响应标定该点的数据
0x411B VISION_CALIBRATION_MARK_RESPOND
json
{
"robot": 1,
"visionNum": 0,
"point_num": 1,
"pixel_pos": [1, 2, 3, 4, 5, 6, 7],
"robot_pos": [1, 2, 3, 4, 5, 6, 7],
"pixel_pos_deg": [1, 2, 3, 40, 50, 60, 7],
"robot_pos_deg": [1, 2, 3, 40, 50, 60, 7]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 视觉工艺号 |
| point_num | int | 标定点编号 |
| pixel_pos | array | 像素坐标 |
| robot_pos | array | 机器人坐标 |
| pixel_pos_deg | array | 像素坐标角度制 |
| robot_pos_deg | array | 机器人坐标角度制 |
运动到该点
0x411C VISION_CALIBRATION_MOVE_TO_POINT
json
{
"robot": 1,
"visionNum": 1,
"point_num": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| point_num | int | 标定点编号 |
清除该点数据
0x411D VISION_CALIBRATION_REMOVE_POINT
json
{
"robot": 1,
"visionNum": 1,
"point_num": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| point_num | int | 标定点编号 |
自动标定运行计算
0x411E VISION_CALIBRATION_AUTO_RUN_AND_CALCULATION
json
{
"robot": 1,
"visionNum": 1,
"caculate_type": 0
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| caculate_type | int | 0: 眼在手上 |
自动标定:返回像素坐标
0x4120 VISION_CALIBRATION_CAMERA_DATA_RESPOND
json
{
"robot": 1,
"visionNum": 1,
"point_num": 1,
"pixel_pos": [1, 2, 3, 4, 5, 6, 7],
"pixel_pos_deg": [1, 2, 3, 40, 50, 60, 7]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| point_num | int | 点号 |
| pixel_pos | array | 像素坐标 |
| pixel_pos_deg | array | 像素坐标角度制 |
标定计算结果
0x4121 VISION_CALIBRATION_CALC_RESPOND
json
{
"robot": 1,
"visionNum": 1,
"result": false
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
| result | bool | true: 成功, false: 错误 |
取消自动标定
0x4122 VISION_CALIBRATION_CANCEL_CALCULATION
json
{
"robot": 1,
"visionNum": 1
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
设置视觉范围
0x3F04 VISION_RANGE_SET
json
{
"robot": 1,
"visionNum": 0,
"visionRange": {
"maxX": "0",
"maxY": "1.1",
"maxZ": "222",
"minX": "0.003",
"minY": "0",
"minZ": "0"
}
}参数说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号,1~4 |
| visionNum | int | 工艺号,0~8 |
| visionRange.maxX | string | X最大值,未设置则为空字符串"" |
| visionRange.maxY | string | Y最大值 |
| visionRange.maxZ | string | Z最大值 |
| visionRange.minX | string | X最小值 |
| visionRange.minY | string | Y最小值 |
| visionRange.minZ | string | Z最小值 |
查询视觉范围
0x3F05 VISION_RANGE_INQUIRE
json
{
"robot": 1,
"visionNum": 0
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| visionNum | int | 工艺号 |
返回查询视觉范围结果
0x3F06 VISION_RANGE_RESPOND
json
{
"maxX": "",
"maxY": "1.1",
"maxZ": "222",
"minX": "0.003",
"minY": "0",
"minZ": "0"
}| 参数名 | 类型 | 说明 |
|---|---|---|
| maxX | string | X最大值,未设置则为空字符串"" |
| maxY | string | Y最大值 |
| maxZ | string | Z最大值 |
| minX | string | X最小值 |
| minY | string | Y最小值 |
| minZ | string | Z最小值 |
位置标定协议
0x4128 VISION_RANGE_CALIBRATION_POS_INQUIRE
json
{
"robotid": 1,
"craftid": 0
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robotid | int | 机器人编号,1~4 |
| craftid | int | 工艺号,0~99 |
回复0x4128
0x4129 VISION_RANGE_CALIBRATION_POS_RESPOND
json
{
"robotid": 1,
"craftid": 0,
"pos": [0, 0, 0, 0, 0, 0, 0]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robotid | int | 机器人编号 |
| craftid | int | 工艺号 |
| pos | array | 当前位置 |
#########################以下2207版本无该功能#############################
标定结果保存
保存自动标定第2种类型标定的工具手结果
0x4123 VISION_CALIBRATION_SAVE_RESULT
json
{
"robot": 1,
"tool_num": 1,
"tool_hand": [0, 0, 0, 0, 0, 0]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| tool_num | int | 工具编号 |
| tool_hand | array | 工具手数据 |
手眼标定:根据socket数据计算转换矩阵
0x4124 VISION_CALIBRATION_CALCULATE_BY_SOCKET_DATA
json
{
"robot": 1,
"vision_num": 1,
"calculation_type": 0,
"base_robot_pos": [0, 0, 0, 0, 0, 0],
"mark_pos": [
{
"robot_pos": [0, 0, 0, 0, 0, 0],
"camera_pos": [0, 0, 0, 0, 0, 0]
}
]
}参数说明:
| 参数分类 | 参数名 | 类型 | 说明 |
|---|---|---|---|
| - | robot | int | 机器人编号 |
| - | vision_num | int | 工艺号,从0开始 |
| - | calculation_type | int | 0: 眼在手上不变姿态的手眼标定 1: 眼在手上变姿态的手眼标定 2: 眼在手外的手眼标定 |
| - | base_robot_pos | array | 直角坐标 |
| mark_pos | robot_pos | array | 直角坐标 |
| mark_pos | camera_pos | array | 相机坐标 |
视觉标定结果响应
0x4125 VISION_CALIBRATION_CALCULATE_BY_SOCKET_DATA_RESPOND
json
{
"robot": 1,
"vision_num": 1,
"result": true,
"matrix": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}| 参数名 | 类型 | 说明 |
|---|---|---|
| robot | int | 机器人编号 |
| vision_num | int | 工艺号,从0开始 |
| result | bool | true: 成功, false: 错误 |
| matrix | array | 转换矩阵 |