接口通信指令说明
|
5700端口
自动化通讯协议-Epic Pro作为服务端(5700端口)。

单条指令
行为 |
指令 |
返回信息 |
||
---|---|---|---|---|
拍照 |
110,相机ID 110,相机ID1,相机ID2… (只输入110时默认使用第一个相机) |
成功:110,相机ID 失败:000,失败编码,相机ID |
||
检测 |
普通检测:120,请求的位姿点个数,0 仅抓取路径规划:120,抓取路径个数,0 带回撤路径规划:120,抓取路径点个数,回撤路径点个数 |
成功:指令码=120 情况一(普通检测/碰撞检测):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 情况二(路径规划):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间名ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 界面点云变化,如果是碰撞检测和路径规划,机器人也会变化
失败:000,返回给机器人状态码。 |
||
切换空间下抓取物 |
130,空间ID, 抓取物ID |
成功:130 失败:000,返回给机器人状态码。 |
||
机器人拍照位姿(眼在手上) |
140,相机ID,X,Y,Z,姿态 (四元数按照W,X,Y,Z的顺序解析) |
成功: 140,相机ID 失败: 000,返回给机器人状态码。 |
||
重启视觉软件 |
307 |
收到指令:307 |
||
关闭工控机 |
886 |
收到指令:886 |
快捷指令
行为 |
指令 |
返回信息 |
---|---|---|
拍照+检测 |
普通检测:220,抓取点个数,0 仅抓取路径规划:220,抓取路径点个数,0 带回撤路径规划:220,抓取路径点个数,回撤路径点个数 |
成功:指令码=220 情况一(普通检测/碰撞检测):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 情况二(路径规划):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间名ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 界面点云变化,如果是碰撞检测和路径规划,机器人也会变化 失败:000,返回给机器人状态码返回给机器人状态码。 |
拍照+机器人拍照位姿 |
240,相机ID,X,Y,Z,位姿 |
成功:240,相机ID 失败:000,返回给机器人状态码。 |
拍照+机器人拍照位姿+检测 |
普通检测:250,相机ID,X,Y,Z,位姿,抓取点个数,0 仅抓取路径规划:250,相机ID,X,Y,Z,位姿,抓取路径点个数,0 带回撤路径规划:250,相机ID,X,Y,Z,位姿,抓取路径点个数,回撤路径点个数 |
成功:指令码=250 情况一(普通检测/碰撞检测):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 情况二(路径规划):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间名ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 界面点云变化,如果是碰撞检测和路径规划,机器人也会变化 失败:000,返回给机器人状态码。 |
切换空间下抓取物+拍照 |
310,空间ID,抓取物ID,相机ID1,相机ID2… (不包含相机ID默认使用第一个相机) |
成功: 310,相机ID 失败: 000,返回给机器人状态码。 |
切换空间下抓取物+拍照+检测 |
普通检测:320,空间ID,抓取物ID,相机ID1,相机ID2…,抓取点个数,0 仅抓取路径规划:320,空间ID,抓取物ID,相机ID1,相机ID2…,抓取路径点个数,0 带回撤路径规划:320,空间ID,抓取物ID,相机ID1,相机ID2…,抓取路径点个数,回撤路径点个数 (不包含相机ID默认使用第一个相机) |
成功:指令码=320 情况一(普通检测/碰撞检测):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 情况二(路径规划):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间名ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 界面点云变化,如果是碰撞检测和路径规划,机器人也会变化 失败:000,返回给机器人状态码。 |
切换空间下抓取物+拍照+机器人拍照位姿 |
340,空间ID,抓取物ID,相机ID,X,Y,Z,位姿 |
成功: 340,相机ID 失败: 000,返回给机器人状态码。 |
切换空间下抓取物+拍照+机器人拍照位姿+检测 |
普通检测:350,空间ID,抓取物ID,相机ID,X,Y,Z,位姿,抓取点个数,0 仅抓取路径规划:350,空间ID,抓取物ID,相机ID,X,Y,Z,位姿,抓取路径点个数,0 带回撤路径规划:350,空间ID,抓取物ID,相机ID,X,Y,Z,位姿,抓取路径点个数,回撤路径点个数 |
成功:指令码=350 情况一(普通检测/碰撞检测):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 情况二(路径规划):指令码,位姿类型(笛卡尔0/关节1),发出的位姿点数量n,有抓取点的抓取物个数,识别出的抓取点总个数,当前空间名ID,当前抓取物ID,当前抓取点索引(当前抓取点在所有抓取点列表中的索引),当前抓取点序号(在抓取点编辑工具中体现的序号),预留ProStatus状态信息(没有此信息则用0填充),0,0,位姿*n 界面点云变化,如果是碰撞检测和路径规划,机器人也会变化 失败:000,返回给机器人状态码。 |
组合指令
基本原则:
-
单指令之间进行互相组合,以分号(;)进行分割
-
对于眼在手上,确保拍照的相机ID与发送拍照点位姿的相机ID一致,并在发送拍照点前触发对应ID的相机拍照
-
指令顺序:
指令顺序
示例指令
眼在手外:切换空间抓取物 → 拍照 →检测
130,0,0;110,0;120,1,0
眼在手上:切换空间抓取物 → 拍照 → 当前相机拍照点→检测
130,0,0;110,0;140,0,0,0,0,0,0,0;120,1,0
拼接眼在手上:切换空间抓取物 → 相机0拍照 → 相机1拍照 →检测
130,0,0;110,0;110,1;120,1,0
拼接眼在手外:切换空间抓取物 → 相机0拍照 → 当前相机0拍照点→ 相机1拍照 → 当前相机1拍照点→检测
130,0,0;110,0;140,0,0,0,0,0,0,0;110,1;140,1,0,0,0,0,0,0;120,1,0
返回状态码
所有指令都需要经过HOOK返回,且都有返回值 |
成功状态码
状态码 |
说明 |
备注 |
---|---|---|
2001 |
切换配置成功 |
|
2002 |
切换相机成功 |
|
2003 |
设置机器人拍照位姿成功 |
|
2004 |
拍照成功 |
|
2005 |
检测成功 |
包含仅检测成功和碰撞检测成功 |
2006 |
路径规划成功 |
异常状态码
状态码 |
说明 |
备注 |
---|---|---|
3001 |
当前操作执行中,请稍后重试 |
退出方案中或等待状态中无法执行其他操作 |
3002 |
命令解析失败,请检查格式 |
|
3003 |
请求的参数数量不符合要求 |
|
3004 |
传入的拍照位姿格式不正确 |
|
3005 |
请求的路径点数量不符合要求 |
|
3006 |
请求的抓取点数量不符合要求 |
|
3007 |
切换抓取空间失败 |
|
3008 |
切换抓取配置失败 |
|
3009 |
切换相机失败 |
|
3010 |
设置相机参数失败 |
|
3011 |
未收到机器人当前拍照位姿 |
|
3012 |
设置相机拍照位姿时,没有拍照数据 |
|
3013 |
设置机器人当前拍照位姿失败 |
|
3014 |
未发送机器人上次拍照点位姿,请重新拍照,并发送对应的位姿 |
|
3015 |
拍照失败 |
|
3016 |
缺少检测输入数据 |
请求ATOM前,缺少数据:一个是手眼标定结果数据,一个是眼在手上拍照点数据 |
3017 |
设置ATOM参数失败 |
包含设置运行时参数和映射参数 |
3018 |
ATOM检测异常 |
ATOM运行存在错误或者异常(ATOM返回结果为null,或者执行请求ATOM出现了catch异常) |
3019 |
检测异常 |
120 异常(不包括ATOM异常) |
3020 |
未检测出结果 |
未检测到目标 (1. ATOM的检测结果为空 2. ATOM的检测结果不为空,但是全碰撞 3.ATOM的检测结果不为空,但是全部抓取点都没有规划出结果) |
3021 |
无可用抓取点 |
存在可抓取的结果但是当检测结果已抓取完毕后再次请求提示:无可用抓取点 |
3022 |
Epic Pro 异常 |
通信执行和hooks执行但是hooks未处理的异常(执行hooks异常) |