TCP 指令说明

您正在查看最新版本(V2.1.0)的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

本文介绍基于TCP协议的标准接口指令。在开始前,请注意以下事项:

  • 指令的收发:机器人或上位机(客户端)发送指令给梅卡曼德视觉系统(服务端),梅卡曼德视觉系统将处理后的数据返回给机器人或上位机。

    send receive
  • 指令的数据传输格式:支持ASCII和HEX。

    • ASCII格式字符串使用英文逗号作为数据分隔符,末尾的终止符使用 \r 表示。本文中的示例均采用ASCII格式字符串,且省略末尾的终止符(\r)。例如,机器人向视觉系统发送103指令,若添加末尾终止符,则指令格式如下。

      103,1,2\r
    • HEX(十六进制)字节顺序分为大端和小端。在发送指令时,字节长度固定为64。若字节长度不足64,使用0填充剩余字节。若字节长度超过64,视觉系统会忽略超出的字节。

      以ASCII格式字符串“103,1,2”为例,若以HEX大端形式发送指令,则指令格式如下。十进制数103对应的十六进制数为67。十六进制数67以大端字节顺序表示为00 00 00 67。

      00 00 00 67 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      若以HEX小端形式发送指令,则指令格式如下。十六进制数67以小端字节顺序表示为67 00 00 00。

      67 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  • 指令的数据单位:

    • 关节角的单位是度(°)。

    • 机器人法兰位姿或机器人工具位姿由位置和姿态组成,位置(XYZ坐标值)单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。

  • 视觉点或路径点:

    • 视觉点:Mech-Vision识别的目标物体,一个视觉点包括物体位姿、标签、物体尺寸、自定义数据等信息。

    • 路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。路径点可分为以下两种类型:

      • 视觉移动路径点:“视觉移动”步骤对应的路径点。

      • 非视觉移动路径点:除“视觉移动”步骤外,其他移动类步骤对应的路径点。

100指令——运行Mech-Vision工程并获取结果

功能介绍

该指令先设置Mech-Vision工程所使用的参数配方(若工程中无参数配方,可跳过,参考103指令——切换Mech-Vision参数配方),然后触发Mech-Vision工程运行(参考101指令——运行Mech-Vision工程),最终返回视觉系统输出的视觉点(参考102指令——获取视觉结果),或路径点(参考105指令——获取Mech-Vision规划路径),或自定义数据(参考110指令——获取Mech-Vision自定义数据)。

机器人需等待视觉系统拍照并返回结果后,才能移动。

发送格式

100, Mech-Vision工程编号, 参数配方编号, 返回数据格式, 机器人关节角, 机器人法兰位姿

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

参数配方编号

Mech-Vision工程中参数配方的编号,为正整数,取值范围为1~99。如何查看参数配方的编号,可参考《查看参数配方的编号》。

若Mech-Vision工程不涉及切换配方,则将该参数设置为0即可。

返回数据格式

返回数据格式 取值

返回数据的说明(每个字段的具体解释参见下文的 返回格式

1

100, 状态码, 是否已获取所有视觉点, 视觉点数量, 保留字段, 视觉点1(工具位姿, 标签, 末端工具编号), 视觉点2(工具位姿, 标签, 末端工具编号), …

2

100, 状态码, 是否已获取所有视觉点, 自定义数据项个数N, 位姿, 标签, 自定义数据项1, …, 自定义数据项N

3

100, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(关节角, 标签, 末端工具编号), 路径点2(关节角, 标签, 末端工具编号), …

4

100, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(工具位姿, 标签, 末端工具编号), 路径点2(工具位姿, 标签, 末端工具编号), …

机器人关节角机器人法兰位姿

将机器人的当前关节角和法兰位姿传入Mech-Vision工程。

返回格式

返回数据格式1

100, 状态码, 是否已获取所有视觉点, 视觉点数量, 保留字段, 视觉点1(工具位姿, 标签, 末端工具编号), 视觉点2(工具位姿, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有视觉点

该参数表明是否已获取所有视觉点,其值为0或1。

  • 0:未获取所有视觉点。

  • 1:已获取所有视觉点。

  • 视觉系统默认单次发送视觉点的最大数量为20,因此,若需调用一次指令便可获取所有视觉点,则可以修改下图中的最大数量值。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

视觉点数量

该参数表示获取的视觉点数量。

保留字段

该字段未使用,默认值为0。

视觉点

获取的每个视觉点由8个数据构成,前6个表示工具位姿,第7个表示标签,第8个表示末端工具编号。

  • 工具位姿:机器人的工具位姿。

    视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿。
    get tcp
    1. 将物体位姿由四元数形式转换为欧拉角形式。

    2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

      convert tcp
  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:该参数值默认为0。Mech-Vision输出的视觉点中一般不携带机器人在物体位置的末端工具编号信息。

返回数据格式2

100, 状态码, 是否已获取所有视觉点, 自定义数据项个数N, 位姿, 标签, 自定义数据项1, …, 自定义数据项N

状态码

若指令执行正常,则状态码为 1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有视觉点

该参数表明是否已获取所有视觉点,其值为0或1。

  • 0:未获取所有视觉点。

  • 1:已获取所有视觉点。

  • 调用该指令后,视觉系统只会返回一个视觉点,因此,在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,将下图中的最大数量值更改为1。

set number
  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

自定义数据项个数

所有自定义端口数据的列维数之和。例如,“输出”步骤的端口数据由以下数据组成,其中customData1和customData2为自定义端口,列维数分别为3和2,因此,自定义数据项个数为3+2=5。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

行维数(列表中元素个数)

2

2

2

2

列维数(列表中单个元素的维数)

7

1

3

2

位姿

单个视觉点的机器人工具位姿。视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿,具体转换流程如下。

get tcp
  1. 将物体位姿由四元数形式转换为欧拉角形式。

  2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

    convert tcp

标签

单个视觉点的标签(“输出”步骤中labels端口数据)。

  • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

  • 若“输出”步骤上没有labels端口,则标签值默认为0。

自定义数据项

单个视觉点的所有自定义端口的数据,其数量与 自定义数据项个数 相等。例如,“输出”步骤各端口的数据如下表所示,则机器人获取第一个视觉点的 自定义数据项 为 [0, 0, 1] 与 [0, 0], 机器人获取第二个视觉点的 自定义数据项 为 [1, 0, 0] 与 [1, 1]。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

第一个视觉点

[0, 0, 0, 1, 0, 0, 0]

0

[0, 0, 1]

[0, 0]

第二个视觉点

[0, 0, 0, 1, 0, 0, 0]

1

[1, 0, 0]

[1, 1]

自定义数据项按照自定义端口名称的字母顺序(A—Z)排列。
返回数据格式3

100, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(关节角, 标签, 末端工具编号), 路径点2(关节角, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 视觉系统默认单次发送路径点的最大数量为20,因此,若需调用一次指令便可获取所有路径点,则可以修改下图中的最大数量值。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

路径点数量

该参数表示获取的路径点数量。

“视觉移动”在路径中的位置

该参数表示路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。

路径点

获取的每个路径点由8个数据构成,前6个表示关节角,第7个表示标签,第8个表示末端工具编号。

  • 关节角:机器人的关节角(JPs)。

  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:路径规划工具中设置的末端工具编号。

返回数据格式4

100, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(工具位姿, 标签, 末端工具编号), 路径点2(工具位姿, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 视觉系统默认单次发送路径点的最大数量为20,因此,若需调用一次指令便可获取所有路径点,则可以修改下图中的最大数量值。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

路径点数量

该参数表示获取的路径点数量。

“视觉移动”在路径中的位置

该参数表示路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。

路径点

获取的每个路径点由8个数据构成,前6个表示工具位姿,第7个表示标签,第8个表示末端工具编号。

  • 工具位姿:机器人的工具位姿。

  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:路径规划工具中设置的末端工具编号。

样例

样例1:返回数据格式1
  1. 机器人向视觉系统发送如下指令,1表示视觉系统返回数据格式1。

    100, 1, 2, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回如下结果,1表示共获取1个视觉点。

    100, 1100, 1, 1, 0, 95.7806, 644.5677, 401.1013, 91.1206, -171.1301, 180.0, 0, 0
样例2:返回数据格式2
  1. 机器人向视觉系统发送如下指令,2表示视觉系统返回数据格式2。

    100, 1, 0, 2, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回如下结果,2表示自定义数据项个数,自定义数据项是12和22。

    100, 1100, 1, 2, 592.6891, -256.7424, -56.6007, 0.0723, 1.1348, -176.355, 2, 12, 22
样例3:返回数据格式3
  1. 机器人向视觉系统发送如下指令,3表示视觉系统返回数据格式3。

    100, 1, 2, 3, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回所有路径点(共3个,位姿类型为关节角),其中第2个路径点为视觉移动路径点。

    100, 1100, 1, 3, 2, 8.3077, 15.1634, -142.1778, -2.7756, -31.4404, -96.9490, 0, 64, 8.2425, 12.1301, -141.7587, -2.5135, -34.8905, -97.1911, 0, 32, 9.3077, 16.1634, -145.1778, -9.7756, -30.4404, -86.9490, 1, 64,
样例4:返回数据格式4
  1. 机器人向视觉系统发送如下指令,4表示视觉系统返回数据格式4。

    100, 1, 2, 4, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回所有路径点(共3个,位姿类型为工具位姿),其中第2个路径点为视觉移动路径点。

    100, 1100, 1, 3, 2, 1149.114, -298.9656, 274.9219, -0.0977, -1.3863, -175.9702, 0, 7, 1149.8416, -296.8585, 245.0048, -0.0977, -1.3863, -175.9702, 2, 7, 1149.114, -298.9656, 274.9219, -0.0977, -1.3863, -175.9702, 0, 7

101指令——运行Mech-Vision工程

功能介绍

该指令用于触发Mech-Vision工程运行。在Mech-Vision工程运行期间,视觉系统会执行相机拍照,并对图像数据进行一系列的视觉算法处理,最终得到一系列视觉点或路径点。

  • 视觉点:Mech-Vision识别的目标物体,一个视觉点包括物体位姿、标签、物体尺寸、自定义数据等信息。

  • 路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。

调用顺序

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

101, Mech-Vision工程编号, 预期视觉点或路径点数量, 机器人位姿类型, 机器人位姿

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

预期视觉点或路径点数量

期望从Mech-Vision工程获取的视觉点或路径点数量。

若Mech-Vision工程中存在“路径规划”步骤,该参数表示预期路径点数量,否则表示预期视觉点数量。
  • 0:从Mech-Vision工程获取所有视觉点或路径点。

  • 大于0的整数:从Mech-Vision工程获取指定数量的视觉点或路径点。

    • 如果Mech-Vision工程输出的视觉点或路径点总数小于指定的参数值,则获取输出的所有视觉点或路径点。

    • 如果Mech-Vision工程输出的视觉点或路径点总数大于或等于指定的参数值,则获取指定数量的视觉点或路径点。

set number

机器人位姿类型机器人位姿

  • 机器人位姿类型 指定真实机器人的位姿将以何种形式传入Mech-Vision工程,其取值范围为0~3。

  • 机器人位姿 取决于 机器人位姿类型

下表为两参数取值的关系及说明。

机器人位姿类型 机器人位姿 说明 适用场景

0

0, 0, 0, 0, 0, 0

无需向Mech-Vision传入机器人位姿

相机的安装方式为Eye To Hand。若Mech-Vision工程中使用“路径规划”步骤,则路径规划的起始点为路径规划工具中设置的Home点。

1

机器人当前关节角+当前法兰位姿

需要将机器人的关节角和法兰位姿传入Mech-Vision

相机的安装方式为Eye In Hand。除桁架机器人外,大多数机器人适用该设定。

2

机器人当前法兰位姿

需要将机器人的当前法兰位姿传入Mech-Vision

相机的安装方式为Eye In Hand,机器人无关节角数据,仅有法兰位姿数据(如桁架机器人)。

3

机器人路径规划起始点的关节角

需要将机器人路径规划起始点的关节角传入Mech-Vision

相机的安装方式为Eye To Hand,并且Mech-Vision工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。

返回格式

101, 状态码

状态码

若指令执行正常,则状态码为 1102。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

样例1

  1. 相机的安装方式为Eye In Hand,机器人向视觉系统发送如下指令,1表示机器人向视觉系统发送当前关节角和法兰位姿。

    101, 1, 0, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回如下结果,1102表示成功触发Mech-Vision工程。

    101, 1102

样例2

  1. 相机的安装方式为Eye To Hand,机器人向视觉系统发送如下指令,3表示机器人向视觉系统发送示教点的关节角。

    101, 1, 0, 3, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
  2. 视觉系统向机器人返回如下结果,1102表示成功触发Mech-Vision工程。

    101, 1102

样例3

  1. 若Mech-Vision工程2未注册,则机器人向视觉系统发送如下指令。

    101, 2, 10, 0, 0, 0, 0, 0, 0, 0
  2. 视觉系统向机器人返回如下结果,1011表示Mech-Vision工程未注册。

    101, 1011

102指令——获取视觉结果

功能介绍

该指令用于获取Mech-Vision输出的视觉结果(一系列视觉点)。视觉点的物体位姿(即“输出”步骤的poses端口数据)将会由视觉系统自动转换为对应机器人的工具位姿,具体转换流程如下。

get tcp
  1. 将物体位姿由四元数形式转换为欧拉角形式。

  2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

    convert tcp

调用顺序

该指令需在101指令——运行Mech-Vision工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

102, Mech-Vision工程编号

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

返回格式

102, 状态码, 是否已获取所有视觉点, 视觉点数量, 保留字段, 视觉点1(工具位姿, 标签, 末端工具编号), 视觉点2(工具位姿, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有视觉点

该参数表明是否已获取所有视觉点,其值为0或1。

  • 0:未获取所有视觉点。

  • 1:已获取所有视觉点。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有视觉点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有视觉点。

  • 在未获取所有视觉点的情况下,若此时调用101指令——运行Mech-Vision工程,则未获取的视觉点将被清除。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

视觉点数量

该参数表示获取的视觉点数量。视觉系统默认单次发送视觉点的最大数量为20,因此该参数默认最大值为20。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number

保留字段

该字段未使用,默认值为0。

视觉点

获取的每个视觉点由8个数据构成,前6个表示工具位姿,第7个表示标签,第8个表示末端工具编号。

  • 工具位姿:机器人的工具位姿。

    视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿。
    get tcp
    1. 将物体位姿由四元数形式转换为欧拉角形式。

    2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

      convert tcp
  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:该参数值默认为0。Mech-Vision输出的视觉点中一般不携带机器人在物体位置的末端工具编号信息。

样例

样例1

  1. 机器人向视觉系统发送如下指令。

    102, 1
  2. 若视觉系统向机器人返回如下结果,则表示指令执行正常。1表示共获取1个视觉点。

    102, 1100, 1, 1, 0, 95.7806, 644.5677, 401.1013, 91.1206, -171.1301, 180.0, 0, 0

    若视觉系统向机器人返回如下结果,则表示指令执行异常。1002表示无视觉结果。

    102, 1002

样例2

以下样例为获取22个视觉点的过程:

  1. 机器人向视觉系统发送101指令,0表示期望获取全部视觉点。

    101, 1, 0, 1, -0, -20.6323, -107.8121, -0, -92.8181, 0.0016

    视觉系统向机器人返回如下结果,1102表示成功触发Mech-Vision工程。

    101, 1102
  2. 机器人向视觉系统发送102指令,获取20个视觉点。

    102, 1

    视觉系统向机器人返回如下数据,其中,0表示未获取所有视觉点,20表示已获取20个视觉点。

    102, 1100, 0, 20, 0, 95.7806, 644.5677, 401.1013, 31.1206, ...
  3. 机器人再次向视觉系统发送102指令,获取剩余的视觉点。

    102, 1

    视觉系统向机器人返回如下数据,其中,1表示已获取所有视觉点,2表示已获取剩余的2个视觉点。

    102, 1100, 1, 2, 0, 315.2017, 592.1261, 399.6052, 126.1960, ...

103指令——切换Mech-Vision参数配方

功能介绍

该指令用于切换Mech-Vision工程所使用的参数配方。下图表示手动为Mech-Vision工程切换配方A或配方B。参数配方相关的知识,可参考《 参数配方》。

set recipe

调用顺序

该指令需在101指令——运行Mech-Vision工程之前被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

103, Mech-Vision工程编号, 参数配方编号

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

参数配方编号

Mech-Vision工程中参数配方的编号,为正整数,取值范围为1~99。如何查看参数配方的编号,可参考《查看参数配方的编号》。

返回格式

103, 状态码

状态码

若指令执行正常,则状态码为 1107。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令,即将Mech-Vision工程1的参数配方编号切换成2。

    103, 1, 2
  2. 若视觉系统向机器人返回如下结果,则表示指令执行正常。1107表示成功将Mech-Vision工程1的参数配方编号切换成2。

    103, 1107

    若视觉系统向机器人返回如下结果,则表示指令执行异常。1012表示设置的参数配方编号无对应的参数配方。

    103, 1012

105指令——获取Mech-Vision规划路径

功能介绍

该指令用于获取Mech-Vision规划的路径(一系列路径点)。此处的路径由“路径规划工具”(从下图的 打开编辑器 进入)规划。“路径规划”步骤相关的内容,可参考《路径规划》。

Mech-Vision “输出”步骤的 端口类型 参数需要设置为“预定义(机器人路径)”。
get plan path step

调用顺序

该指令需在101指令——运行Mech-Vision工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

105, Mech-Vision工程编号, 路径点的位姿类型

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

路径点的位姿类型

该参数用于指定获取路径点的位姿类型。

  • 1:机器人关节角(JPs)。

  • 2:机器人工具位姿。

返回格式

105, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(位姿, 标签, 末端工具编号), 路径点2(位姿, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有路径点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有路径点。

  • 在未获取所有路径点的情况下,若此时调用101指令——运行Mech-Vision工程,则未获取的路径点将被清除。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

路径点数量

该参数表示获取的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
在调用105指令——获取Mech-Vision规划路径前,请务必将101指令——运行Mech-Vision工程预期视觉点或路径点数量 设置为0,以减少调用105指令——获取Mech-Vision规划路径的次数。若101指令——运行Mech-Vision工程指令的 预期视觉点或路径点数量 设置为1,则每次调用105指令——获取Mech-Vision规划路径只会获取一个路径点,只有多次调用才能获取全部路径点。

“视觉移动”在路径中的位置

该参数表示路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。

若需多次发送该指令才可接收整条路径,则该参数在第一次返回结果中表示视觉移动路径点在整条规划路径中的位置,在后续返回结果中表示视觉移动路径点在剩余路径点中的位置。

例如,假设Mech-Vision规划的路径由4个路径点组成,其中第4个路径点为视觉移动路径点。

  1. 机器人第一次发送指令。

    105, 1, 1

    视觉系统向机器人返回如下结果,2表示第一次共获取到2个路径点,4表示视觉移动路径点在整条规划路径中的位置。

    105, 1103, 0, 2, 4, 0.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7, 73.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7
  2. 机器人第二次发送指令。

    105, 1, 1

    视觉系统向机器人返回如下结果,第一个2表示第二次获取剩余的2个路径点,第二个2表示视觉移动路径点在剩余2个路径点中的位置。

    105, 1103, 1, 2, 2, -77.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7, -26.6781, 55.4142, 45.0133, -7.3735, -10.948, 160.5773, 2, 7

路径点

获取的每个路径点由8个数据构成,前6个表示位姿,第7个表示标签,第8个表示末端工具编号。

  • 位姿:机器人的工具位姿或关节角(JPs)。位姿类型由发送该指令时指定的 路径点的位姿类型 参数决定。

  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:路径规划工具中设置的末端工具编号。

样例

  1. 机器人向视觉系统发送如下指令,即获取Mech-Vision工程1输出的路径点,2表示路径点的位姿类型为工具位姿。

    105, 1, 2
  2. 若视觉系统向机器人返回如下结果,则表示指令执行正常。视觉系统向机器人返回所有路径点(共5个),其中第3个路径点为视觉移动路径点。

    105, 1103, 1, 5, 3, 1030.0, 0, 1260.0, 0.0, 90.0, -0.0, 0, 7, 1149.114, -298.9656, 274.9219, -0.0977, -1.3863, -175.9702, 0, 7, 1149.8416, -296.8585, 245.0048, -0.0977, -1.3863, -175.9702, 2, 7, 1149.114, -298.9656, 274.9219, -0.0977, -1.3863, -175.9702, 0, 7, 1030.0, 0, 1260.0, 0.0, 90.0, -0.0, 0,7

    若视觉系统向机器人返回如下结果,则表示指令执行异常。1020表示Mech-Vision工程未启动。

    105, 1020

106指令——获取Mech-Vision吸盘DO信号

功能介绍

该指令用于获取Mech-Vision工程规划的多分区吸盘的控制信号。在使用该指令前,用户需提前在Mech-Vision软件中进行如下配置。

  • 在“路径规划”步骤参数中,单击 配置向导。在 全局配置 中,将 箱子拆垛 开关置于打开状态。

    vision move vis
  • 在“路径规划”步骤参数中,单击 配置向导,双击末端工具名称,工具类型 选择 拆垛吸盘,单击 拆垛吸盘配置,根据需求配置DO信号。

    sucker vis

发送格式

106, Mech-Vision工程编号, 吸盘分区数量

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

吸盘分区数量

该参数为吸盘配置器中设置的吸盘分区数量。例如,上图中的吸盘分区数量为3。

返回格式

106, 状态码, DO信号1, DO信号2, …, DO信号64

状态码

若指令执行正常,则状态码为 1106。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

DO信号

  • 在路径规划的全局配置中,若规划全部视觉结果开关处于关闭状态,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

    plan all vis off

    例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。

    第1个

    第2个

    第3个

    第4个

    第5个

    第6个

    第7个

    第8个

    第63个

    第64个

    1

    3

    5

    6

    -1

    -1

    -1

    -1

    -1

    -1

  • 在路径规划的全局配置中,若规划全部视觉结果开关处于打开状态,则Mech-Vision可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

    plan all vis on

    例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。

    第1轮规划

    第2轮规划

    第16轮规划

    第1个

    第2个

    第3个

    第4个

    第5个

    第6个

    第7个

    第8个

    第61个

    第62个

    第63个

    第64个

    1

    3

    4

    -1

    1

    4

    -1

    -1

    -1

    -1

    -1

    -1

样例

  1. 机器人向视觉系统发送如下指令。

    106, 1, 1
  2. 视觉系统向机器人返回如下结果,其中有效的DO信号为11、12。

    106, 1106, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1

110指令——获取Mech-Vision自定义数据

功能介绍

该指令用于从Mech-Vision“输出”步骤获取自定义端口的数据。 自定义端口的设置可从“输出”步骤参数的 打开编辑器 处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。

  1. 预设通信键(下图中的poses、labels、sizes、offsets等)所代表的端口数据不属于自定义数据。

  2. Mech-Vision “输出”步骤的 端口类型 参数需要设置为“自定义”,且必须存在poses端口。

custom data

调用顺序

该指令需在101指令——运行Mech-Vision工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

110, Mech-Vision工程编号

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

返回格式

110, 状态码, 是否已获取所有视觉点, 自定义数据项个数N, 位姿, 标签, 自定义数据项1, …, 自定义数据项N

状态码

若指令执行正常,则状态码为 1100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有视觉点

该参数表明是否已获取所有视觉点,其值为0或1。

  • 0:未获取所有视觉点。

  • 1:已获取所有视觉点。

  • 机器人端执行一次该指令,只会从视觉系统获取一个视觉点对应的位姿和自定义数据。如果需要接收多个视觉点的自定义数据,请多次执行该指令。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有视觉点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有视觉点的自定义数据。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

自定义数据项个数

所有自定义端口数据的列维数之和。例如,“输出”步骤的端口数据由以下数据组成,其中customData1和customData2为自定义端口,列维数分别为3和2,因此,自定义数据项个数为3+2=5。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

行维数(列表中元素个数)

2

2

2

2

列维数(列表中单个元素的维数)

7

1

3

2

位姿

单个视觉点的机器人工具位姿。视觉系统会将视觉点的物体位姿(即“输出”步骤的poses端口数据)自动转换为对应的机器人工具位姿,具体转换流程如下。

get tcp
  1. 将物体位姿由四元数形式转换为欧拉角形式。

  2. 将物体位姿绕X轴旋转180°,使其Z轴朝下。

    convert tcp

标签

单个视觉点的标签(“输出”步骤中labels端口数据)。

  • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

  • 若“输出”步骤上没有labels端口,则标签值默认为0。

自定义数据项

单个视觉点的所有自定义端口的数据,其数量与 自定义数据项个数 相等。例如,“输出”步骤各端口的数据如下表所示,则机器人获取第一个视觉点的 自定义数据项 为 [0, 0, 1] 与 [0, 0], 机器人获取第二个视觉点的 自定义数据项 为 [1, 0, 0] 与 [1, 1]。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

第一个视觉点

[0, 0, 0, 1, 0, 0, 0]

0

[0, 0, 1]

[0, 0]

第二个视觉点

[0, 0, 0, 1, 0, 0, 0]

1

[1, 0, 0]

[1, 1]

自定义数据项按照自定义端口名称的字母顺序(A—Z)排列。

样例

假设Mech-Vision工程的“输出”步骤各端口数据如下图所示,接下来演示通过101指令——运行Mech-Vision工程110指令——获取Mech-Vision自定义数据获取自定义端口数据。

custom data sample
  1. 机器人向视觉系统发送101指令,即期望获取所有视觉点(共2个)。

    101, 1, 0, 0

    视觉系统向机器人返回如下结果,即101指令执行成功。

    101, 1102
  2. 机器人向视觉系统发送110指令,即获取第一个视觉点的所有数据。

    110, 1

    视觉系统向机器人返回如下结果,其中,自定义数据项是11和21。

    110, 1100, 0, 2, 1150.1272, -297.2476, -55.0715, -0.1087, -1.6156, -176.1518, 1, 11, 21
  3. 机器人向视觉系统再次发送110指令,即获取第二个视觉点的所有数据。

    110, 1

    视觉系统向机器人返回如下结果,其中,1表示已获取所有视觉点,自定义数据项是12和22。

    110, 1100, 1, 2, 592.6891, -256.7424, -56.6007, 0.0723, 1.1348, -176.355, 2, 12, 22

111指令——获取Mech-Vision视觉移动规划数据

功能介绍

该指令用于获取Mech-Vision工程的视觉移动规划数据。此处的“视觉移动规划数据”是指路径规划工具(从“路径规划”步骤处进入)中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。

发送格式

111, Mech-Vision工程编号, 路径点的位姿类型

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

路径点的位姿类型

该参数用于指定获取路径点的位姿类型。

  • 1:机器人关节角(JPs)。

  • 2:机器人工具位姿。

返回格式

111, 状态码, 是否已获取所有路径点, 路径点类型, 位姿, 移动类型, 末端工具编号, 速度, 视觉移动规划数据

状态码

若指令执行正常,则状态码为 1103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 机器人端执行一次该指令,只会从视觉系统获取一个路径点。如果需要接收多个路径点,请多次执行该指令。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有路径点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有路径点。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set vis time

路径点类型

路径点类型 取值

路径点类型

数据信息

0

非视觉移动路径点

位姿、移动类型、末端工具编号、速度

1

视觉移动路径点

位姿、移动类型、末端工具编号、速度、视觉移动规划数据

位姿

路径点的位姿可以是机器人关节角或工具位姿,具体形式取决于发送指令时指定的 路径点的位姿类型 参数值。

移动类型

  • 1:关节移动。

  • 2:直线移动。

末端工具编号

路径点的末端工具编号。若值为-1,表示不使用末端工具。

速度

路径规划工具中设置的仿真速度值,使用百分数表示。

视觉移动规划数据

视觉移动规划数据包括以下数据信息。

名称 说明 维数

被抓取工件的标签

由10个整数组成,默认为10个0

10

已抓取的工件总数

累计已抓取的工件数量

1

本次抓取的工件数量

本次抓取的工件数量

1

吸盘边角号

本次吸盘所使用的边角号

1

TCP偏移量

工件组中心相对于末端工具中心的XYZ偏移量

3

工件组朝向

工件组与吸盘长边的朝向关系,0表示平行,1表示垂直

1

单个工件朝向

单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直

1

工件组尺寸

本次抓取的工件组的长宽高

3

样例

  1. 机器人向视觉系统发送如下指令。

    111, 1, 2
  2. 视觉系统向机器人返回如下结果。

    说明 数据

    指令码

    111

    状态码

    1103

    是否已获取所有路径点

    1

    路径点类型

    1

    位姿

    95.7806, 644.5677, 401.1013, 91.1206, -171.1301, 180.0

    移动类型

    1

    末端工具编号

    0

    速度

    55

    视觉移动规划数据

    被抓取工件的标签

    1, 1, 1, 0, 0, 0, 0, 0, 0, 0

    已抓取的工件总数

    100

    本次抓取的工件数量

    3

    吸盘边角号

    28

    TCP偏移量

    95.7806, 644.5677, 0

    工件组朝向

    0

    单个工件朝向

    0

    工件组尺寸

    600, 800, 300

200指令——运行Mech-Viz工程并获取规划路径

功能介绍

该指令先触发Mech-Viz工程运行(参考201指令——运行Mech-Viz工程),然后设置消息分支出口(若工程中无分支,可跳过,参考203指令——设置Mech-Viz消息分支出口),最后返回Mech-Viz工程规划的移动路径(参考205指令——获取Mech-Viz规划路径)。

若Mech-Viz工程中存在多个“消息分支”步骤,则不可使用该指令。

发送格式

200, 消息分支的步骤编号, 分支出口, 路径点的位姿类型, 机器人关节角, 机器人法兰位姿

消息分支的步骤编号

该参数用于指定消息分支的步骤编号,取值为正整数。

若Mech-Viz工程不涉及消息分支,则将该参数设置为0即可。

分支出口

该参数用于指定“消息分支”步骤的出口号,其值为正整数。若将该参数值设置为N,则Mech-Viz工程将沿“消息分支”步骤的N-1出口继续执行。 例如,机器人向视觉系统发送 “200, 2, 1, …​”,则Mech-Viz工程运行至步骤编号为2的消息分支时,将沿出口0继续执行。

若Mech-Viz工程不涉及消息分支,则将该参数设置为0即可。

路径点的位姿类型

该参数用于指定获取路径点的位姿类型。

  • 1:机器人关节角(JPs)。

  • 2:机器人工具位姿。

机器人关节角机器人法兰位姿

将机器人的当前关节角和法兰位姿传入Mech-Viz工程。

返回格式

200, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(位姿, 标签, 末端工具编号), 路径点2(位姿, 标签, 末端工具编号),…

状态码

若指令执行正常,则状态码为 2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 视觉系统默认单次发送路径点的最大数量为20,因此,若需调用一次指令便可获取所有路径点,则可以修改下图中的最大数量值。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number
  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set viz time

路径点数量

该参数表示获取的路径点数量。

“视觉移动”在路径中的位置

该参数表示Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。

路径点

获取的每个路径点由8个数据构成,前6个表示位姿,第7个表示标签,第8个表示末端工具编号。

  • 位姿:机器人的工具位姿或关节角(JPs)。位姿类型由发送该指令时指定的 路径点的位姿类型 参数决定。

  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:Mech-Viz工程中设置的末端工具编号。

样例

  1. 机器人向视觉系统发送如下指令,即触发Mech-Viz运行,步骤编号为5的消息分支将沿出口2继续执行,最终获取Mech-Viz工程输出的路径点(位姿类型为关节角)。

    200, 5, 3, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 若视觉系统向机器人返回如下结果,则表示指令执行正常。视觉系统向机器人返回所有路径点(共2个),其中第2个路径点为视觉移动路径点。

    200, 2100, 1, 2, 2, 8.3077, 15.1634, -142.1778, -2.7756, -31.4404, -96.9490, 0, 64, 8.2425, 12.1301, -141.7587, -2.5135, -34.8905, -97.1911, 0, 32

201指令——运行Mech-Viz工程

功能介绍

该指令用于触发Mech-Viz工程运行。Mech-Viz是基于Mech-Vision输出的视觉结果规划机器人的移动路径。

在Mech-Viz工程资源面板中,右键单击工程名称,勾选 设为自动加载

调用顺序

工程中的步骤参数需要在触发Mech-Viz工程运行之前被设置,因此207指令——读取Mech-Viz步骤参数值208指令——设置Mech-Viz步骤参数值需先于201指令——运行Mech-Viz工程被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

201, 机器人位姿类型, 机器人位姿

机器人位姿类型机器人位姿

  • 机器人位姿类型 指定真实机器人的位姿将以何种形式传入Mech-Viz工程,其取值范围为0~2。

  • 机器人位姿 取决于 机器人位姿类型

下表为两参数取值的关系及说明。

机器人位姿类型 机器人位姿 说明 适用场景

0

0, 0, 0, 0, 0, 0

无需向Mech-Viz工程传入机器人位姿,Mech-Viz工程中仿真机器人将从初始位姿 JPs = [0, 0, 0, 0, 0, 0] 开始移动到第一个路径点。

相机的安装方式为Eye To Hand。

1

机器人当前关节角+当前法兰位姿

需要将机器人的当前关节角和法兰位姿传入Mech-Viz工程,Mech-Viz工程中仿真机器人将从传入的关节角开始移动到第一个路径点。

相机的安装方式为Eye In Hand,推荐使用该设定。

2

机器人端自定义的关节角

需要将机器人的一个示教点(非当前关节角)传入Mech-Viz工程,用于在机器人处于拍照区域外时,提前触发Mech-Viz工程规划下一轮路径(如下图),Mech-Viz工程中仿真机器人将从传入的示教点开始运动到第一个路径点。

相机的安装方式为Eye To Hand,推荐使用该设定。

相机的安装方式为Eye To Hand,为何 机器人位姿类型 推荐使用2?

在下图中,机器人正在放置区进行作业。

若在此种场景中,将 机器人位姿类型 设置为 1,表示将机器人当前位姿发送给Mech-Viz,真实机器人可能在移动至其他位置后才移动至第一个路径点。仿真机器人将直接从当前位置移动至Mech-Viz工程中的第一个路径点,在这段移动过程中可能会检测到碰撞而发出警告。

若在此种场景中,将 机器人位姿类型 设置为 2,表示将机器人端设置的示教拍照点发送给Mech-Viz,这样真实机器人在放置区即可提前触发Mech-Viz规划下一轮路径,从而缩短节拍。

以上就是Eye To Hand模式下,机器人位姿类型 推荐使用2的原因。

robot example

返回格式

201, 状态码

状态码

若指令执行正常,则状态码为 2103。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

样例1

  1. 相机的安装方式为Eye In Hand,机器人向视觉系统发送如下指令,1表示机器人向视觉系统发送当前关节角和法兰位姿。

    201, 1, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回如下结果,2103表示成功触发Mech-Viz工程。

    201, 2103

样例2

  1. 相机的安装方式为Eye To Hand,机器人向视觉系统发送如下指令,2表示机器人向视觉系统发送示教点的关节角。

    201, 2, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
  2. 视觉系统向机器人返回如下结果,2103表示成功触发Mech-Viz工程。

    201, 2103

202指令——停止Mech-Viz工程

功能介绍

该指令用于停止正在运行的Mech-Viz工程。

调用顺序

该指令需在201指令——运行Mech-Viz工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

202

返回格式

202, 状态码

状态码

若指令执行正常,则状态码为 2104。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令。

    202
  2. 视觉系统向机器人返回如下结果,2104表示成功停止Mech-Viz工程。

    202, 2104

203指令——设置Mech-Viz消息分支出口

功能介绍

该指令用于设定“消息分支”步骤的出口。Mech-Viz工程运行至“消息分支”步骤时,将等待该指令指定出口。

set branch

调用顺序

该指令需在201指令——运行Mech-Viz工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

203, 步骤编号, 分支出口

步骤编号

该参数用于指定消息分支的步骤编号,取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为1。

分支出口

该参数用于指定“消息分支”步骤的出口号,其值为正整数。若将该参数值设置为N,则Mech-Viz工程将沿“消息分支”步骤的N-1出口继续执行。 例如,机器人向视觉系统发送 “203, 2, 1”,则Mech-Viz工程运行至步骤编号为2的消息分支时,将沿出口0继续执行。

返回格式

203, 状态码

状态码

若指令执行正常,则状态码为 2105。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令,5表示步骤编号,3表示Mech-Viz工程在“消息分支”步骤处将沿出口2继续执行。

    203, 5, 3
  2. 视觉系统向机器人返回如下结果,2105表示成功设置消息分支的出口。

    203, 2105

204指令——设置Mech-Viz当前索引

功能介绍

该指令用于设定索引类步骤的当前索引值。索引类步骤是指包含“索引”参数的步骤,例如“按阵列移动”、“按序列移动”、“自定义垛型”、“预设垛型”等步骤。

set index

调用顺序

通常在索引类步骤前存在一个“消息分支”步骤,机器人端首先调用201指令——运行Mech-Viz工程,然后调用204指令——设置Mech-Viz当前索引,最后调用203指令——设置Mech-Viz消息分支出口。如此,Mech-Viz将有充足时间设置当前索引值。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

204, 步骤编号, 当前索引

步骤编号

该参数用于指定索引类步骤的步骤编号,取值为正整数。步骤编号可在步骤参数中获取,例如上图中的步骤编号为3。

当前索引

该参数用于指定索引类步骤的当前索引值,其值为正整数。若将该参数值设置为N,则相应步骤的当前索引值为N-1。例如,机器人向视觉系统发送“204, 2, 1”,则步骤编号为2的步骤的当前索引值为0。

返回格式

204, 状态码

状态码

若指令执行正常,则状态码为 2106。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令,2表示步骤编号,6表示将相应步骤的当前索引值设置为5。

    204, 2, 6
  2. 视觉系统向机器人返回如下结果,2106表示成功设置当前索引。

    204, 2106

205指令——获取Mech-Viz规划路径

功能介绍

该指令用于获取Mech-Viz工程规划的移动路径(一系列路径点)。

路径点:机器人沿着规划路径需逐一到达的点位,一个路径点包括机器人位姿、标签、移动类型等信息。路径点可分为以下两种类型:

  • 视觉移动路径点:“视觉移动”步骤对应的路径点。

  • 非视觉移动路径点:除“视觉移动”步骤外,其他移动类步骤对应的路径点。

调用顺序

该指令需在201指令——运行Mech-Viz工程之后被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

205, 路径点的位姿类型

路径点的位姿类型

该参数用于指定获取路径点的位姿类型。

  • 1:机器人关节角(JPs)。

  • 2:机器人工具位姿。

返回格式

205, 状态码, 是否已获取所有路径点, 路径点数量, “视觉移动”在路径中的位置, 路径点1(位姿, 标签, 末端工具编号), 路径点2(位姿, 标签, 末端工具编号), …

状态码

若指令执行正常,则状态码为 2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有路径点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有路径点。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set viz time

路径点数量

该参数表示获取的路径点数量。视觉系统默认单次发送路径点的最大数量为20,因此该参数默认最大值为20。 在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改默认最大数量,但最大数量的上限为30。

set number

“视觉移动”在路径中的位置

该参数表示Mech-Viz工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。

例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。

若需多次发送该指令才可接收整条路径,则该参数在第一次返回结果中表示视觉移动路径点在整条规划路径中的位置,在后续返回结果中表示视觉移动路径点在剩余路径点中的位置。

例如,假设Mech-Viz规划的路径由4个路径点组成,其中第4个路径点为视觉移动路径点。

  1. 机器人第一次发送指令。

    205, 1

    视觉系统向机器人返回如下结果,2表示第一次共获取到2个路径点,4表示视觉移动路径点在整条规划路径中的位置。

    205, 2100, 0, 2, 4, 0.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7, 73.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7
  2. 机器人第二次发送指令。

    205, 1

    视觉系统向机器人返回如下结果,第一个2表示第二次获取剩余的2个路径点,第二个2表示视觉移动路径点在剩余2个路径点中的位置。

    205, 2100, 1, 2, 2, -77.0, 0.0, 0.0, 0.0, 69.0, 0.0, 0, 7, -26.6781, 55.4142, 45.0133, -7.3735, -10.948, 160.5773, 2, 7

路径点

获取的每个路径点由8个数据构成,前6个表示位姿,第7个表示标签,第8个表示末端工具编号。

  • 位姿:机器人的工具位姿或关节角(JPs)。位姿类型由发送该指令时指定的 路径点的位姿类型 参数决定。

  • 标签:位姿对应的整数标签(“输出”步骤中labels端口数据)。

    • 标签必须是一个数字字符串。若标签不是数字字符串,请在“输出”步骤前,使用“标签映射”步骤将其映射为数字字符串。

    • 若“输出”步骤上没有labels端口,则标签值默认为0。

  • 末端工具编号:Mech-Viz工程中设置的末端工具编号。

样例

  1. 机器人向视觉系统发送如下指令,即获取Mech-Viz工程输出的路径点(位姿类型为关节角)。

    205, 1
  2. 若视觉系统向机器人返回如下结果,则表示指令执行正常。视觉系统向机器人返回所有路径点(共2个),其中第2个路径点为视觉移动路径点。

    205, 2100, 1, 2, 2, 8.3077, 15.1634, -142.1778, -2.7756, -31.4404, -96.9490, 0, 64, 8.2425, 12.1301, -141.7587, -2.5135, -34.8905, -97.1911, 0, 32

206指令——获取吸盘DO信号

功能介绍

该指令用于获取Mech-Viz工程规划的多分区吸盘的控制信号。在使用该指令前,用户需提前在Mech-Viz软件中进行如下配置。

  • 在Mech-Viz软件中,“视觉移动”步骤的 抓取工艺 选择 箱子拆垛

    vision move viz
  • 在Mech-Viz软件中,双击末端工具名称,工具类型 选择 拆垛吸盘,单击 拆垛吸盘配置,根据需求配置DO信号。

    sucker viz

发送格式

206, 吸盘分区数量

吸盘分区数量

该参数为吸盘配置器中设置的吸盘分区数量。例如,上图中的吸盘分区数量为3。

返回格式

206, 状态码, DO信号1, DO信号2, …, DO信号64

状态码

若指令执行正常,则状态码为 2102。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

DO信号

  • 若“视觉移动”步骤未勾选“复用视觉结果”,则该指令返回64个DO信号,表示本轮规划的吸盘DO信号,其中有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

    vision move off

    例如,在下表中,返回的有效DO信号为1、3、5、6,即表示机器人需将上述DO信号对应的值设为ON。

    第1个

    第2个

    第3个

    第4个

    第5个

    第6个

    第7个

    第8个

    第63个

    第64个

    1

    3

    5

    6

    -1

    -1

    -1

    -1

    -1

    -1

  • 若“视觉移动”步骤勾选“复用视觉结果”,且“视觉移动”步骤在循环流程中,则Mech-Viz可以根据同一视觉结果进行多轮规划。该指令返回的64个DO信号是所有轮规划的吸盘DO信号。此时使用吸盘分区数量,即可区分每轮规划的吸盘DO信号。有效的DO信号为非负整数,范围为 0~999;无效的DO信号为-1(作为占位值)。

    vision move on

    例如,吸盘分区数量为4,该指令共返回64个DO信号,其中,每4个DO信号为一轮规划的多分区吸盘控制信号。

    第1轮规划

    第2轮规划

    第16轮规划

    第1个

    第2个

    第3个

    第4个

    第5个

    第6个

    第7个

    第8个

    第61个

    第62个

    第63个

    第64个

    1

    3

    4

    -1

    1

    4

    -1

    -1

    -1

    -1

    -1

    -1

样例

  1. 机器人向视觉系统发送如下指令。

    206, 1
  2. 视觉系统向机器人返回如下结果,其中有效的DO信号为11、12。

    206, 2102, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1

207指令——读取Mech-Viz步骤参数值

功能介绍

该指令用于读取Mech-Viz工程中指定的步骤参数值。

调用顺序

该指令需在201指令——运行Mech-Viz工程之前被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

207, 配置编号

配置编号

该参数为property_config文件中指定的 配置编号 字段。

在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,单击 属性配置,即可打开property_config文件。

get property config

在使用该指令前,用户需提前在property_config文件中指定步骤编号和参数名称对应的key名称,具体格式如下所示。

read, 配置编号, 步骤编号, key名称

read

指定该行用于读取步骤参数值。

配置编号

指定一个唯一的编号,为正整数。一个配置编号只能用于读取一个步骤参数值。如果读取多个步骤参数值,请使用不同的配置编号。

步骤编号

指定将要读取的参数所属步骤的编号。

key名称

指定将要读取的参数名称对应的key名称。

  • key名称 可通过 Keys查询工具 获取。在Mech-Viz软件中,单击菜单栏中的 文件,在左下角处,单击 选项,勾选 开发者模式,单击 确定,关闭软件并重启;然后单击菜单栏中的 工具  Keys查询工具,即可打开该工具。单击具体步骤图标,中间区域就是选中步骤的所有参数名称对应的key名称。设置的key名称必须是下图区域中出现的名称。

    parameter key name
  • property_config文件中以“#”为开头的内容为注释行,指令在执行代码时会忽略注释,不做任何处理。

  • 对property_config文件编辑完后,注意保存文件,并重启Mech-Vision工具栏中的接口服务。

例如,在property_config文件中添加如下内容,5表示配置编号,3表示步骤编号,xCount表示key名称。机器人发送“207, 5”指令后,将会获取到xCount对应的参数值。

read, 5, 3, xCount

property_config文件中可以设置多条read指令,但每条read指令的配置编号必须唯一。

返回格式

207, 状态码, 步骤参数值

状态码

若指令执行正常,则状态码为 2109。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

步骤参数值

读取的步骤参数值。

  • 若使用ASCII格式发送指令,则步骤参数值支持的数据类型有int、float、string。

  • 若使用HEX格式发送指令,则步骤参数值支持的数据类型有int、float。

样例

下面以“计数器”步骤(步骤编号为1)为例,读取 当前计数 参数值。

read value sample1
  1. Keys查询工具 中获取 当前计数 的key名称,即图中的currentCount。

    read value sample2
  2. 在property_config文件中,写入以下内容,并保存。10表示配置编号,该编号需在文件中需唯一。1表示“计数器”的步骤编号。currentCount表示 当前计数 的key名称。

    read, 10, 1, currentCount
  3. 在Mech-Vision工具栏中,重启接口服务。

  4. 机器人向视觉系统发送如下指令,10表示配置编号。

    207, 10
  5. 视觉系统向机器人返回如下结果,0就是读取的 当前计数 (currentCount)的参数值。

    207, 2109, 0

208指令——设置Mech-Viz步骤参数值

功能介绍

该指令用于设置Mech-Viz工程中指定的步骤参数值。

调用顺序

该指令需在201指令——运行Mech-Viz工程之前被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

208, 配置编号

配置编号

该参数为property_config文件中指定的配置编号字段。

在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,单击 属性配置,即可打开property_config文件。

get property config

在使用该指令前,用户需提前在property_config文件中指定步骤编号、参数名称对应的key名称和参数值,具体格式如下所示。

write, 配置编号, 步骤编号, key名称, 参数值

write

指定该行用于设置步骤参数值。

配置编号

指定一个编号(非唯一),为正整数。

步骤编号

指定将要设置的参数所属步骤的编号。

key名称

指定将要设置的参数名称对应的key名称。

参数值

指定将要设置的参数值。

  • key名称 可通过 Keys查询工具 获取。在Mech-Viz软件中,单击菜单栏中的 文件,在左下角处,单击 选项,勾选 开发者模式,单击 确定,关闭软件并重启;然后单击菜单栏中的 工具  Keys查询工具,即可打开该工具。单击具体步骤图标,中间区域就是选中步骤的所有参数名称对应的key名称。设置的key名称必须是下图区域中出现的名称。

    parameter key name
  • property_config文件中以“#”为开头的内容为注释行,指令在执行代码时会忽略注释,不做任何处理。

  • 对property_config文件编辑完后,注意保存文件,并重启Mech-Vision工具栏中的接口服务。

例如,在property_config文件中添加如下内容,6表示配置编号,3表示步骤编号,xOffset表示key名称,0.000000表示设置的参数值。机器人发送“208,6”指令后,视觉系统会将xOffset对应的参数值设置为0.000000。

write, 6, 3, xOffset, 0.000000

property_config文件中可以设置多条write指令,且配置编号允许重复,即使用一个配置编号设置多个参数值。

例如,property_config文件内容如下。若机器人发送“208,1”指令后,视觉系统会将xOffset、yOffset和zOffset对应的参数值分别设置为0.000000、1.000000和2.000030。

write, 1, 3, xOffset, 0.000000
write, 1, 3, yOffset, 1.000000
write, 1, 3, zOffset, 2.000030

返回格式

208, 状态码

状态码

若指令执行正常,则状态码为 2108。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

下面以“等待”步骤(步骤编号为3)为例,设置 等待时间 的参数值。

set value sample1
  1. Keys查询工具 中获取 等待时间 的key名称,即图中的waitTime。

    set value sample2
  2. 在property_config文件中,写入以下内容,并保存。11表示配置编号。3表示“等待”的步骤编号。waitTime表示 等待时间 的key名称。1000表示设置的等待时间为1000ms。

    write, 11, 3, waitTime, 1000
  3. 在Mech-Vision工具栏中,重启接口服务。

  4. 机器人向视觉系统发送如下指令,11表示配置编号。

    208, 11
  5. 视觉系统向机器人返回如下结果,2108表示成功设置参数值。

    208, 2108

210指令——获取Mech-Viz视觉移动规划数据或自定义数据

功能介绍

该指令用于获取Mech-Viz工程的视觉移动规划数据或自定义数据。

对于Mech-Viz 2.0版本软件,该指令暂时不支持获取自定义数据,仅支持获取视觉移动规划数据。
  • 视觉移动规划数据:Mech-Viz中“视觉移动”步骤规划的数据,包括被抓取工件的标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP偏移量、工件组朝向、单个工件朝向、工件组尺寸。

  • 自定义数据:Mech-Vision自定义端口输出的数据,再经Mech-Viz转发后得到的数据。

    自定义端口的设置可从“输出”步骤参数的 打开编辑器 处进入,其中自定义通信键名就是自定义端口名称,例如下图中customeData1和customeData2端口就是自定义端口。

    1. 预设通信键(下图中的poses、labels、sizes、offsets等)所代表的端口数据不属于自定义数据。

    2. Mech-Vision “输出”步骤的 端口类型 参数需要设置为“自定义”,且必须存在poses端口。

    custom data

发送格式

210, 返回数据格式

返回数据格式

返回数据格式 取值

返回数据的说明(每个字段的具体解释参见下文的 返回格式;若Mech-Vision工程无自定义端口,则无 自定义数据项

路径点类型

数据信息

1

非视觉移动路径点

位姿(关节角形式), 移动类型, 末端工具编号, 速度

视觉移动路径点

位姿(关节角形式), 移动类型, 末端工具编号, 速度, 自定义数据项个数N, 自定义数据项1, …, 自定义数据项N

2

非视觉移动路径点

位姿(工具位姿形式), 移动类型, 末端工具编号, 速度

视觉移动路径点

位姿(工具位姿形式), 移动类型, 末端工具编号, 速度, 自定义数据项个数N, 自定义数据项1, …, 自定义数据项N

3

非视觉移动路径点

位姿(关节角形式), 移动类型, 末端工具编号, 速度

视觉移动路径点

位姿(关节角形式), 移动类型, 末端工具编号, 速度, 视觉移动规划数据, 自定义数据项个数N, 自定义数据项1, …, 自定义数据项N

4

非视觉移动路径点

位姿(工具位姿形式), 移动类型, 末端工具编号, 速度

视觉移动路径点

位姿(工具位姿形式), 移动类型, 末端工具编号, 速度, 视觉移动规划数据, 自定义数据项个数N, 自定义数据项1, …, 自定义数据项N

该指令获取的视觉移动路径点会携带视觉移动规划数据或自定义数据,而205指令——获取Mech-Viz规划路径指令获取的视觉移动路径点不会携带上述数据。

返回格式

210, 状态码, 是否已获取所有路径点, 路径点类型, 位姿, 移动类型, 末端工具编号, 速度, 视觉移动规划数据, 自定义数据项个数N, 自定义数据项1, …, 自定义数据项N

  • 返回的数据中是否有 视觉移动规划数据,取决于发送指令时指定的 返回数据格式 参数值。

  • 返回的数据中是否有 自定义数据项,取决于Mech-Vision工程的“输出”步骤是否有自定义端口。

状态码

若指令执行正常,则状态码为 2100。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

是否已获取所有路径点

该参数表明是否已获取所有路径点,其值为0或1。

  • 0:未获取所有路径点。

  • 1:已获取所有路径点。

  • 机器人端执行一次该指令,只会从视觉系统获取一个路径点。如果需要接收多个路径点,请多次执行该指令。

  • 在编写程序时,用户可通过判断该参数值是否为1,从而判断是否已获取所有路径点。若该参数值为0,则再次调用该指令,直到该参数值为1,即可获取所有路径点。

  • 调用该指令后,视觉系统默认在10秒内未返回处理结果,则将返回超时错误状态码。在Mech-Vision工具栏的 机器人通信配置  下一步  高级设置 下,可根据需求更改此默认超时时间。

set viz time

路径点类型

路径点类型 取值

路径点类型

数据信息

0

非视觉移动路径点

位姿、移动类型、末端工具编号、速度

1

视觉移动路径点

位姿、移动类型、末端工具编号、速度、视觉移动规划数据自定义数据(若Mech-Vision工程无自定义端口,则无此项)

位姿

路径点的位姿可以是机器人关节角或工具位姿,具体形式取决于发送指令时指定的 返回数据格式 参数值。

移动类型

  • 1:关节移动。

  • 2:直线移动。

末端工具编号

路径点的末端工具编号。若值为-1,表示不使用末端工具。

速度

移动类步骤参数中设置的速度参数值乘以Mech-Viz中设置的全局速度,使用百分数表示。

视觉移动规划数据

视觉移动规划数据包括以下数据信息。

名称 说明 维数

被抓取工件的标签

由10个整数组成,默认为10个0

10

已抓取的工件总数

累计已抓取的工件数量

1

本次抓取的工件数量

本次抓取的工件数量

1

吸盘边角号

本次吸盘所使用的边角号

1

TCP偏移量

工件组中心相对于末端工具中心的XYZ偏移量

3

工件组朝向

工件组与吸盘长边的朝向关系,0表示平行,1表示垂直

1

单个工件朝向

单个工件长边与吸盘长边的朝向关系,0表示平行,1表示垂直

1

工件组尺寸

本次抓取的工件组的长宽高

3

自定义数据项个数

所有自定义端口数据的列维数之和。例如,“输出”步骤的端口数据由以下数据组成,其中customData1和customData2为自定义端口,列维数分别为3和2,因此,自定义数据项个数为3+2=5。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

行维数(列表中元素个数)

2

2

2

2

列维数(列表中单个元素的维数)

7

1

3

2

自定义数据项

单个视觉点的所有自定义端口的数据,其数量与 自定义数据项个数 相等。例如,“输出”步骤各端口的数据如下表所示,则机器人获取第一个视觉点的 自定义数据项 为 [0, 0, 1] 与 [0, 0], 机器人获取第二个视觉点的 自定义数据项 为 [1, 0, 0] 与 [1, 1]。

端口名称

poses

labels

customData1

customData2

端口数据

[

[0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0]

]

[

"0",
"1"

]

[

[0, 0, 1],
[1, 0, 0]

]

[

[0, 0],
[1, 1]

]

第一个视觉点

[0, 0, 0, 1, 0, 0, 0]

0

[0, 0, 1]

[0, 0]

第二个视觉点

[0, 0, 0, 1, 0, 0, 0]

1

[1, 0, 0]

[1, 1]

自定义数据项按照自定义端口名称的字母顺序(A—Z)排列。

样例

  1. 机器人向视觉系统发送如下指令。

    210, 4
  2. 视觉系统向机器人返回如下结果。

    说明 数据

    指令码

    210

    状态码

    2100

    是否已获取所有路径点

    1

    路径点类型

    1

    位姿

    95.7806, 644.5677, 401.1013, 91.1206, -171.1301, 180.0

    移动类型

    1

    末端工具编号

    0

    速度

    55

    视觉移动规划数据

    被抓取工件的标签

    1, 1, 1, 0, 0, 0, 0, 0, 0, 0

    已抓取的工件总数

    100

    本次抓取的工件数量

    3

    吸盘边角号

    28

    TCP偏移量

    95.7806, 644.5677, 0

    工件组朝向

    0

    单个工件朝向

    0

    工件组尺寸

    600, 800, 300

    自定义数据

    自定义数据项个数

    5

    自定义端口a的数据项

    0, 0, 1

    自定义端口b的数据项

    2, 2

501指令——向Mech-Vision工程传入物体尺寸

功能介绍

该指令用于向Mech-Vision工程中传入物体尺寸。传入的物体尺寸就是“读取物体尺寸”步骤的 箱子尺寸设置 参数值,如下图所示。

read object dimensions

调用顺序

该指令需在101指令——运行Mech-Vision工程之前被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

501, Mech-Vision工程编号, 长, 宽, 高

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

长, 宽, 高

传入Mech-Vision工程的物体尺寸,单位为毫米(mm)。尺寸值将被“读取物体尺寸”步骤读取并分别写入 X轴上的长度Y轴上的长度Z轴上的长度

返回格式

501, 状态码

状态码

若指令执行正常,则状态码为 1108。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令,将物体尺寸(长100mm,宽200mm,高300mm)传入工程编号为1的Mech-Vision工程。

    501, 1, 100, 200, 300
  2. 视觉系统向机器人返回如下结果,1108表示物体尺寸值已成功传入“读取物体尺寸”步骤。

    501, 1108

503指令——向Mech-Vision工程传入位姿

功能介绍

该指令用于向Mech-Vision工程中传入位姿。传入的位姿将作为“快捷创建位姿”步骤的位姿列表参数值,如下图所示。

quickly create pose

调用顺序

该指令需在101指令——运行Mech-Vision工程之前被调用。

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

503, Mech-Vision工程编号, 步骤名称, 位姿

Mech-Vision工程编号

Mech-Vision工程编号可在Mech-Vision工程列表窗口中查看,工程名称前的数字表示工程编号。

步骤名称

“快捷创建位姿”步骤的步骤名称参数值。该值需提前设置成数字,例如上图中的数字1。

位姿

传入的位姿数据。该数据将成为“快捷创建位姿”步骤的位姿列表参数值。

  • 此处传入的位姿由位置和姿态组成,位置(XYZ坐标值)单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。

  • 指令成功运行后,“快捷创建位姿”步骤的位姿列表参数值就是传入的位姿,但其中姿态使用四元数表示,且数据的单位为米。

返回格式

503, 状态码

状态码

若指令执行正常,则状态码为 1110。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令,将机器人位姿(例如,549.56, 50.0, 647.01, 180.0, -1.0, 180.0)传入Mech-Vision工程,即将“快捷创建位姿”步骤的位姿列表参数值设置为上述机器人位姿。

    Mech-Vision工程中需包含“快捷创建位姿”步骤,且步骤名称需提前设置成数字。本样例中步骤名称为数字1。
    503, 1, 1, 549.56, 50.0, 647.01, 180.0, -1.0, 180.0
  2. 视觉系统向机器人返回如下结果,1110表示设置位姿成功。此时“快捷创建位姿”步骤的位姿列表参数值为[0.54956, 0.05, 0.64701, -0.999962, 0, -0.00872654, 1.2246e-16]。

    503, 1110

601指令——获取通知的消息

功能介绍

当Mech-Vision工程或Mech-Viz工程运行至“通知”步骤时,视觉系统会返回“通知”步骤中预先设置的消息。

在使用该指令前,“通知”步骤需满足以下设置。

  • Mech-Vision工程中的“通知”步骤

    1. 将“通知”步骤连接在其他步骤的右侧(此处以“输出”步骤为例)。

      notify 1
    2. 在“输出”的步骤参数处,勾选 有输出时触发控制流

      notify 5
    3. 在“通知”的步骤参数处,服务名称填写 Standard Interface Notify(不可更改),消息填写 1001(根据需求填写,但必须为正整数)。

      notify 2
  • Mech-Viz工程中的“通知”步骤

    1. 将“通知”步骤连接在工作流程中的合适位置。

      notify 3
    2. 在“通知”的步骤参数处,勾选 标准接口,消息填写 1000(根据需求填写,但必须为正整数)。

      notify 4

调用顺序

所有指令的调用顺序可参考《标准接口指令调用时序》。

发送格式

601

返回格式

601, 通知的消息

通知的消息

“通知”步骤的消息参数处填写的内容。

样例

  1. 机器人向视觉系统发送如下指令,此处以上述Mech-Vision工程中的“通知”步骤为例。

    601
  2. 视觉系统向机器人返回如下结果,1000表示“通知”步骤的消息参数值。

    601, 1000

701指令——标定

功能介绍

该指令用于机器人的手眼标定(外参标定)。该指令需要与Mech-Vision工具栏中的 相机标定 结合使用。在标定过程中,首先,机器人移动到标定起始点,将起始点位置通过该指令发送给视觉系统;其次,视觉系统给出下一标定点位置;最后,机器人移动到该点后,再一次发送该指令请求下一标定点;如此循环,直到标定结束。

auto calibration

发送格式

701, 标定状态, 法兰位姿, 关节角

标定状态

  • 0:通知Mech-Vision开始标定流程。

  • 1:机器人已成功到达上一标定点。

  • 2:机器人未成功到达上一标定点。

法兰位姿

机器人当前法兰位姿。

关节角

机器人当前关节角。

返回格式

701, 状态码, 标定状态, 下一标定点的法兰位姿, 下一标定点的关节角

状态码

若指令执行正常,则状态码为 7101。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

标定状态

  • 0:正在标定中。

  • 1:已完成标定。

下一标定点的法兰位姿

机器人将要移动至下一标定点的法兰位姿数据。

下一标定点的关节角

机器人将要移动至下一标定点的关节角数据。

样例

  1. 机器人向视觉系统发送如下指令,0表示通知Mech-Vision开始标定流程,后面的位姿数据表示标定起始点的位置。

    701, 0, 1371.62147, 25.6, 1334.3529, 148.58471, -179.24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764

    视觉系统向机器人返回如下结果,0表示正在标定中,后面的位姿数据表示下一标定点的位置。

    701, 7101, 0, 1271.6969, -74.3374, 1334.34094, -3128.422, 179.2412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411
  2. 机器人向视觉系统发送如下指令,1表示机器人已成功到达标定起始点,后面的位姿数据是上条指令返回的下一标定点的位姿数据。

    701, 1, 1271.6969, -74.3374, 1334.34094, -3128422, 1792412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411

    视觉系统向机器人返回如下结果,0表示正在标定中,后面的位姿数据表示下一标定点的位置。

    701, 7101, 0, 1471.62226, -74.40452, 1334.34235, 148.56924, -179.24432, 88.74148, 92.8367, -2.14999, -24.25433, -0.39222, -67.23261, 27.485225
  3. 重复上一步骤多次,以获得后续标定点。

  4. 若视觉系统向机器人返回如下结果,1表示已完成标定。至此,整个标定流程结束。

    701, 7101, 1, 1371.62147, 25.6, 1334.3529, 148.58471, -179.24347, 88.75702, 88.86102, -7.11107, -28.82309, -0.44014, -67.6509, 31.4764

901指令——获取软件状态

功能介绍

该指令用于检测Mech-Vision工程是否已就绪。

发送格式

901

返回格式

901, 状态码

状态码

若指令执行正常,则状态码为 1101。 若指令执行异常,则状态码为对应的错误码,具体可参考《标准接口状态码及错误排查》。

样例

  1. 机器人向视觉系统发送如下指令。

    901
  2. 视觉系统向机器人返回如下结果,1101表示Mech-Vision工程已就绪。

    901, 1101

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。