TCP/IP 指令说明
本文介绍基于 TCP/IP 协议的标准接口指令。
101 指令——启动 Mech-Vision 工程
该指令用于触发 Mech-Vision 工程的运行,执行相机拍照和视觉处理。用于只使用 Mech-Vision 而不使用 Mech-Viz 的场景。
发送的指令参数
101, Mech-Vision 工程编号, 预期视觉点数量, 机器人位姿类型, 机器人位姿
Mech-Vision 工程编号
Mech-Vision 工程编号可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。
预期视觉点数量
期望从 Mech-Vision 得到的视觉点数量。视觉点信息包括视觉位姿及对应点云、标签、缩放等。
-
0
:从 Mech-Vision 工程取得识别结果中所有的视觉点。 -
大于0的整数
:从 Mech-Vision 工程取得识别结果中指定数量的视觉点。-
如果视觉点总数小于该参数值,则取得识别结果中所有视觉点。
-
如果视觉点总数大于等于该参数值,则取得该参数指定数量的视觉点。
-
获取视觉点的指令是 102 指令。在 TCP/IP 中,默认每次执行 102 指令最多可以获取 20 个视觉点。在第一次执行 102 指令后,其中一个返回的参数将体现是否已返回所有请求的视觉点;如果没有,请重复执行 102 指令。 |
机器人位姿类型 、 机器人位姿
-
机器人位姿类型 参数指定真实机器人的位姿将以何种形式传入 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 工程中存在“路径规划”步骤,且需要从机器人端设置“路径规划”步骤的起始点。 |
位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。关节角单位为度(°)。 |
样例
在 Eye In Hand 场景下,指令发送机器人当前关节角和法兰位姿,执行正常的示例如下所示。
TCP send string = 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
TCP received string = 101, 1102
在 Eye To Hand 场景下,指令发送示教点的关节角,执行正常的示例如下所示。
TCP send string = 101, 1, 0, 3, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 101, 1102
下面示例为指令执行异常,表示工程编号为 2 的视觉工程未注册。
TCP send string = 101, 2, 10, 0
TCP received string = 101, 1011
102 指令——获取视觉目标点
该指令用在 101 指令——启动 Mech-Vision 工程 之后,用于获取 Mech-Vision 输出的视觉点,然后自动将视觉点转换为视觉目标点。
具体转换过程如下所示,即将视觉点包含的位姿转换为对应机器人 TCP。
-
将视觉点包含的位姿绕 X 轴旋转 180°。
-
识别对应机器人型号的参考坐标系定义是否涉及机器人基座高度,并相应增加垂直方向的偏置。
102 指令单次接收视觉目标点的数量上限默认为 20。如需要获取的视觉目标点的数量大于 20,需多次执行该指令来获取所有所需的视觉目标点。 |
发送的指令参数
102, Mech-Vision 工程编号
Mech-Vision 工程编号
Mech-Vision 工程编号可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。
返回的数据参数
102, 状态码, 是否发送完成, 视觉目标点数量, 保留字段, 视觉目标点, 视觉目标点, …, 视觉目标点
视觉目标点数据位于返回的数据参数的结尾(单次最多返回 20 个视觉目标点)。视觉目标点包含 TCP、标签、速度,其中速度值为 0。 |
状态码
若指令执行正常,则返回 1100 状态码;否则返回对应的错误码。
调用该指令后,如在 10 秒内未收到来自 Mech-Vision 的视觉结果,则将返回超时错误状态码。
是否发送完成
该参数表明是否已取得所有所需的视觉目标点。值为 0 或 1。
-
0
:未取得所有所需的视觉目标点。请重复执行 102 指令直到该参数值为 1。 -
1
:已取得所有所需的视觉目标点。
如果 101 指令——启动 Mech-Vision 工程 指定的预期视觉点数量大于 20(收发数据长度的默认值),可通过该参数判断是否还有未发送的视觉目标点。若数据未发送完毕,则可以重复调用 102 指令,继续接收。
如未取得所有视觉目标点,若此时调用 101 指令重新拍照,则未取得的视觉目标点将被清除。 |
视觉目标点数量
执行该指令获得的视觉目标点数量。
-
如果请求的视觉目标点数量大于等于 Mech-Vision 识别的视觉点数量,按照 Mech-Vision 识别的视觉点数量发送。
-
如果请求的视觉目标点数量小于 Mech-Vision 识别视觉点数量,按照请求数量发送。
默认范围:0~20。
保留字段
该字段未使用,默认值为 0。
视觉目标点
一个视觉目标点由 8 个数据构成,前 6 个表示 TCP,第 7 个表示标签,第 8 个表示速度。
-
TCP:TCP 包括三维坐标(XYZ,单位为毫米)及欧拉角(ABC,单位为度)。
-
标签:位姿对应的整数标签。如果在 Mech-Vision 工程中,标签为字符串,请在“输出”步骤前使用 “标签映射” 步骤将标签映射为整数。如工程中没有标签,则该参数为默认值 0。
-
速度:该参数值默认为 0。Mech-Vision 输出的视觉结果中一般不带机器人目标点速度信息。
样例
指令执行正常
TCP send string = 102, 1
TCP received string = 102, 1100, 1, 1, 0, 95.7806085592122, 644.5677779910724, 401.1013614123109, 91.12068316085427, -171.13014981284968, 180.0, 0, 0
指令执行异常,无视觉结果。
TCP send string = 102, 1
TCP received string = 102, 1002
请求视觉目标点的样例
以下样例为依次发送的指令参数 101、102、102 来获取 22 个视觉目标点的过程。细节如下:
-
TCP/IP 发送 101 指令,内容为
101, 1, 0, 1, …
,希望获取全部视觉目标点。 -
TCP/IP 发送 102 指令,获取 20 个视觉目标点。
-
TCP/IP 收到 102 指令返回的数据,内容为
102, 1100, 0, 20, …
,表示未取得所有视觉目标点。返回的数据包含 20 个视觉目标点。 -
TCP/IP 再次发送 102 指令,获取剩余视觉目标点。
-
TCP/IP 收到 102 指令返回的数据,内容为
102, 1100, 1, 2, …
。返回的数据包含 2 个视觉目标点,且表明所有视觉目标点已发送完成。
发送 101 指令。
TCP send string = 101, 1, 0, 1, -0, -20.63239, -107.81205, -0, -92.81818, 0.0016
TCP received string = 101, 1102
第一次发送 102 指令,并获取 20 个视觉目标点。
TCP send string = 102, 1
TCP received string = 102, 1100, 0, 20, 0, 95.7806085592122, 644.5677779910724, 401.1013614123108, 31.12068316085427, ...
TCP received string = 78549940546, -179.99999999999991.0.0, 329.228345202334.712.7061697180302.400.9702665047771, ...
TCP received string =39546, -83.62567351596952, -170.87955974536686, -179.99999999999937, 0, 0, 223.37118373658322, ...
TCP received string = 005627, 710.1004355953408, 400.82227273918835, -43.89328326393665, -171.30845207792612, ...
TCP received string = 20.86318821742358, 838.7634193547805, 400.79807564314797, -102.03947940869523, -171.149261231 ...
TCP received string = 390299920645, -179.99999999999994, 0, 0, 303.0722145720921, 785.3254917220695, 400.75827437080, ...
TCP received string = 99668287.77.78291612041707, -171.53941633937786, 179.99999999899997, 0.0, 171.47819668864432, ...
TCP received string = 332193785, 400.6472716208158, -94.3418019038759, -171.10001228964776, -179.39999999999994, ...
TCP received string = 92388542936, 807.5641001485708, 400.6021999602664, - 167.9834797197932.-171.39671274951826, ...
TCP received string = 278.3198007132188, 780.5325992145735, 400.4924381003066, -174.72728396633053, -171.422604771 ...
TCP received string = 3.99999999999994, 0, 0, 183.82195326381233, 862.5171519967056.400.422966515846.-154. 17801945 ...
TCP received string = 173.34301974982765, -180.0, 0, 0
第二次发送 102 指令并接收剩余的两个视觉目标点。
TCP send string = 102, 1
TCP received string = 102, 1100, 1, 2, 0, 315.2017788478321, 592.1261793743445, 399.60526335590957, 126.19602189220371, ...
TCP received string = 686127, -171.44430002882129, -1.3381805753922965e-15, 0, 0
103 指令——切换 Mech-Vision 配方
切换 Mech-Vision 工程内的参数配方。
Mech-Vision 中步骤的参数设定可通过切换参数配方调整。
参数配方调整涉及的参数通常包括点云匹配模板、图像匹配模板、感兴趣区域、置信度阈值等。
需要在执行 101 指令——启动 Mech-Vision 工程 之前使用该指令。 |
105 指令——获取 Mech-Vision “路径规划”步骤的结果
在调用 101 指令之后,使用该指令获取 Mech-Vision 中“路径规划”步骤输出的免碰撞抓取路径。
在使用该指令时,Mech-Vision “输出”步骤的 端口类型 参数需要设置为“预定义(机器人路径)”。
在调用 105 指令前,请务必将 101 指令的 预期视觉点数量 设置为 0,以减少调用 105 指令的次数。若 101 指令的 预期视觉点数量 设置为 1,则每次调用 105 指令只会返回一个路径点,只有多次调用 105 指令才能接收全部路径点。 |
发送的指令参数
105, Mech-Vision 工程编号, 路径点位姿类型
Mech-Vision 工程编号
Mech-Vision 工程编号可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。
路径点位姿类型
该参数用于指定“路径规划”步骤返回的路径点的位姿类型。
-
1
:路径点的位姿将以机器人关节角(JPs)的形式返回。 -
2
:路径点的位姿将以机器人工具位姿(TCP)的形式返回。
返回的数据参数
105, 状态码, 是否发送完成, 路径点数量, “视觉移动”位置, 路径点, 路径点, …, 路径点
状态码
若指令执行正常,则返回 1103 状态码;否则返回对应的错误码。
是否发送完成
-
0
:未发送完路径中的全部路径点。请重复执行该指令,直到该参数值为 1。 -
1
:已发送完路径中全部路径点。
路径点数量
该参数用于表示此次执行该指令返回的路径点个数,取值范围为 0~20。若获取的路径点数多于 20,请多次调用该指令。
“视觉移动”位置
路径规划工具中设置的“视觉移动”路径点在整个路径中的位置。
例如,如果规划路径由以下组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则“视觉移动”位置为 3。
如果路径中无“视觉移动”,则该参数值为 0。
路径点
一个路径点由 8 个数据构成,前 6 个表示位姿,第 7 个表示标签,第 8 个表示速度。
-
位姿:三维坐标(单位为毫米)及欧拉角(单位为度),或 JPs 关节角(单位为度)。类型由 105 指令中的 路径点类型 决定。
-
标签:位姿对应的整数标签。如果在 Mech-Vision 工程中,标签为字符串,请在“输出”步骤前使用 “标签映射” 步骤将标签映射为整数。如果工程中没有标签,则该参数为默认值 0。
-
速度:路径规划工具中设置的速度值。
样例
指令执行正常
TCP send string = 105, 1, 2
TCP received string =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
指令执行异常
TCP send string = 105, 1,2
TCP received string = 105, 1020
110 指令——从 Mech-Vision 获取自定义数据
该指令用于从 Mech-Vision 中的“输出”步骤接收自定义数据,即除 poses 和 labels 之外其他端口的数据( 输出步骤的“端口类型”参数设置为“自定义”)。
每次执行该指令只会从视觉结果中获取一个位姿及其对应的标签、分数等(如有)。 如果需要接收多个位姿,请多次执行该指令。
发送的指令参数
110, Mech-Vision 工程编号
Mech-Vision 工程编号
Mech-Vision 工程编号可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。
返回的数据参数
110, 状态码, 位姿是否传输完成, 自定义数据项个数, 目标物体位姿对应的机器人工具位姿(TCP), 标签, 自定义数据项, …, 自定义数据项
状态码
如果没有错误,将返回状态码 1100。 否则,将返回相应的错误码。
调用该指令后,如在 10 秒内未收到来自 Mech-Vision 的视觉结果,则将返回超时错误状态码。
位姿是否传输完成
-
0
:视觉结果中仍有位姿未传输。 -
1
:视觉结果中的所有位姿都已传输。
自定义数据项个数
位姿和标签以外的数据类型的自定义数据项的总数。
目标物体位姿对应的机器人工具位姿(TCP)
机器人坐标系下的工具位姿(TCP,其中三维坐标单位为毫米,欧拉角单位为度)。Mech-Vision 输出目标物体位姿,然后将该位姿转换为机器人工具位姿。输出步骤必须有一个位姿端口。
目标物体位姿对应的工具位姿通常是通过将目标物体位姿的 Z 轴进行翻转来生成的。
标签
与位姿对应的物体信息标签。标签应该是一个正整数,否则应在 Mech-Vision 工程中使用“标签映射”步骤将其映射为正整数。如果输出步骤上没有标签端口,则该字段填充为 0。
自定义数据项
当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口的数据。
各自定义数据按照端口名称的字母顺序(A—Z)排列。
201 指令——启动 Mech-Viz 工程
用于既使用 Mech-Vision 又使用 Mech-Viz 的场景。该指令用于运行 Mech-Viz 工程,启动对应的 Mech-Vision 工程,Mech-Viz 基于 Mech-Vision 的视觉结果规划机器人的运动路径。
在 Mech-Viz 工程资源面板中,右键单击工程名称,勾选 设为自动加载。 |
梅卡曼德 软件系统提供了使用标准接口的Mech-Viz示例工程,供用户参考使用标准接口通信时Mech-Viz工程的搭建方式。具体介绍参见 使用标准接口的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 的原因:
Eye To Hand 模式下,相机可在机器人回到拍照及抓取区域之前拍照,用于提前规划下一轮抓取路径,从而缩短节拍。
若此时将 机器人位姿类型 设为 1,即将机器人当前位姿发送给 Mech-Viz 仿真机器人,可能导致仿真机器人与真实机器人轨迹不一致,发生未预知的碰撞,造成危险。
即仿真机器人将直接从当前位姿移动至 Mech-Viz 中第一个移动步骤中设置的位姿,而真实机器人可能在移动至其他位姿后才移动至上述位姿。
所以应将 机器人位姿类型 参数设为 2。
位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。关节角单位为度(°)。 |
样例
在 Eye In Hand 场景下,指令发送机器人当前关节角和法兰位姿,执行正常的示例如下所示。
TCP send string = 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
TCP received string = 201, 2103
在 Eye To Hand 场景下,指令发送示教点的关节角,执行正常的示例如下所示。
TCP send string = 201, 2, 5.18, 14.52, 4.03, 0.09, 72.44, 5.15
TCP received string = 201, 2103
在下面示例中,指令未发送所需的位姿数据,因此执行异常。
TCP send string = 201, 1
TCP received string = 201, 2013
203 指令——选择 Mech-Viz 分支
当 Mech-Viz 工程中有分支步骤时,该指令可控制 Mech-Viz 工程中的分支步骤走指定的出口。
在执行该指令前请先执行 201 指令——启动 Mech-Viz 工程 。
Mech-Viz 工程运行至分支步骤时,将等待该指令指定出口。
204 指令——设置移动索引
该指令用于设定Mech-Viz步骤的当前索引参数值。带有该参数的步骤包括“按序列移动”、“按阵列移动”、“自定义垛型”、“预设垛型”等。
在执行该指令前,请先执行 201 指令——启动 Mech-Viz 工程 。
205 指令——获取规划路径
在执行 201 指令——启动 Mech-Viz 工程 后,该指令用于获取 Mech-Viz 规划的路径。
在使用默认设置时,该指令每次最多只能获取 20 个规划的路径点,因此,若获取的路径点数多于 20,则可以多次调用该指令。
如果工程中某个移动类步骤的路径点不应发送给机器人,请取消勾选该步骤参数中的“发送路径点”选项。 |
发送的指令参数
205, 路径点类型
路径点类型
该参数用于指定 Mech-Viz 将返回何种形式的路径点。
-
1
:路径点将以机器人关节角(JPs)的形式返回。 -
2
:路径点将以机器人工具位姿(TCP)的形式返回。
返回的数据参数
205, 状态码, 是否发送完成, 路径点数量, “视觉移动”步骤位置, 路径点, 路径点, …, 路径点
状态码
若指令执行正常,则返回 2100 状态码;否则返回对应的错误码。
调用该指令后,如在 10 秒内未收到来自 Mech-Viz 的视觉结果,则将返回超时错误状态码。 |
是否发送完成
-
0
:未发送完路径中的全部路径点。请重复执行该指令,直到该参数值为 1。 -
1
:已发送完路径中全部路径点。
路径点数量
该参数表示返回的路径点个数,取值范围为 0~20。 在使用默认设置时,该指令每次最多只能获取 20 个规划的路径点,因此,若获取的路径点数多于 20,则可以多次调用该指令。
“视觉移动”位置
“视觉移动”路径点在整个路径中的位置。
例如,如果规划路径由以下步骤组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则“视觉移动”位置为 3。
如果路径中无“视觉移动”,则该参数值为 0。
路径点
一个路径点由 8 个数据构成,前 6 个表示位姿,第 7 个表示标签,第 8 个表示速度。
-
位姿:三维坐标(单位为毫米)及欧拉角(单位为度),或 JPs 关节角(单位为度)。类型由 205 指令中的路径点位姿类型决定。
-
标签:位姿对应的整数标签。如果在 Mech-Vision 工程中,标签为字符串,请在“输出”步骤前使用 “标签映射” 步骤将标签映射为整数。如果工程中没有标签,则该参数为默认值 0。
-
速度:移动类步骤参数中的非零速度参数百分数值。
样例
指令执行正常
TCP send string = 205, 1
TCP received string =205, 2100, 1, 2, 2, 8.307755332057372, 15.163476541700463, -142.1778810972881, -2.7756047848536745, -31.44046012182799, -96.94907235126934, 0, 64, 8.2 42574265592342, 12.130080796661591, -141.75872288706663-2.513533225987894, -34.8905853 039525, -97.19108378871277, 0, 32
指令执行异常
TCP send string = 205, 1
TCP received string = 205, 2008
206 指令——获取 DO 信号列表
该指令用于获取规划的 DO 信号列表。DO 信号列表用于控制多个工具或吸盘分区。
执行该指令前,需要先执行 205 指令——获取规划路径 获取 Mech-Viz 规划路径。
请根据模板工程来部署 Mech-Viz 工程,并在工程中设置对应的吸盘配置文件。模板工程位于 梅卡曼德 软件安装目录下 Mech-Center\tool\viz_project\suction_zone
文件夹。
在Mech-Viz“设置多个DO”步骤的参数中:
-
在“接收对象”下勾选“标准接口”
-
勾选“从视觉移动中获取DO列表”
-
在“选择视觉移动”后的下拉框中,选择需要DO信号列表的视觉移动步骤。
返回的数据参数
206, 状态码, DO信号值, DO信号值, …, DO信号值
状态码
若指令执行正常,则返回 2102 状态码;否则返回对应的错误码。
DO信号值
返回的数据参数末尾共有 64 个 DO 信号值,为整数。
DO 信号值范围:0~999。
占位值:-1。
样例
指令执行正常,获得 DO 信号值为 11 和 12。
TCP send string: 206
TCP receive string: 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
指令执行异常,未获得任何 DO 信号。
TCP send string: 206
TCP receive string: 206, 2011, -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, -1, -1
207 指令——读取 Mech-Viz 步骤参数
该指令读取指定步骤的指定参数的值。
请在 Mech-Center 中
的配置文件中指定读取步骤编号和参数名。发送的指令格式
207, 配置编号(config ID)
208 指令——设置 Mech-Viz 步骤参数
该指令设置指定步骤的指定参数的值。
请在 Mech-Center 中
的配置文件中指定步骤编号、参数名和参数值。210 指令——获取单个路径点和视觉规划结果
该指令用于从 Mech-Viz 获取单个路径点。路径点可以是一般移动路径点,也可以是视觉移动路径点。路径点可能包含位姿、速度、工具信息、工件信息等。
执行该指令得到的路径点可以是以下三种之一。
-
除了视觉移动之外的一般移动路径点,其信息包括运动类型(关节运动或直线运动)、工具编号、速度。
-
视觉移动路径点,其信息包括标签、已抓取的工件总数、本次抓取的工件数量、吸盘边角号、TCP 偏移量、工件朝向、工件组尺寸。
-
包含自定义数据的视觉移动路径点,此时 Mech-Vision 工程输出步骤的端口类型需设置为“自定义”。
|
发送的指令参数
210, 预期的返回数据格式
预期的返回数据格式
以下是四种预期的返回数据格式说明。
预期的返回数据格式参数值 | 预期的返回数据说明(每个字段的具体解释参见下文) |
---|---|
1 |
位姿(JPs 形式), 运动类型, 工具编号, 速度, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N |
2 |
位姿(TCP 形式), 运动类型, 工具编号, 速度, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N |
3 |
位姿(JPs 形式), 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N |
4 |
位姿(TCP 形式), 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项 1, …, 自定义数据项 N |
返回的数据参数
210, 状态码, 路径点传输完成状态, 路径点类型, 位姿, 运动类型, 工具编号, 速度, 视觉规划结果, 自定义数据项个数, 自定义数据项
是否有 视觉规划结果 和/或 自定义数据项 取决于执行指令时发送的 预期数据格式 参数值。 |
状态码
如未发生错误,将返回状态码 2100。否则,将返回相应的错误码。
路径点传输完成状态
-
0
:仍有路径点未传输。 -
1
:所有路径点都已传输。
路径点类型
-
0
:不是视觉移动路径点。 -
1
:是视觉移动路径点。
位姿
路径点的位姿可以是机器人关节角(JPs,单位为度)或工具位姿(TCP,其中三维坐标单位为毫米,欧拉角单位为度),其形式取决于发送的指令参数。
运动类型
-
1
:关节运动,MOVEJ -
2
:直线运动,MOVEL
工具编号
路径点的工具编号。 -1 表示不使用工具。
速度
路径点的速度百分比值,其值为 Mech-Viz 工程中该路径点对应移动类步骤的参数中设置的速度乘以 Mech-Viz 中设置的全局速度,单位为 %。
视觉规划结果
路径中的规划结果信息(如果路径点对应移动步骤为视觉移动),通常用于纸箱多拣、卸垛等。信息包括:
-
标签:由 10 个正整数组成,默认为 10 个 0。
-
已抓取的工件总数。
-
本次抓取的工件数量。
-
吸盘边角号:用于指定工件靠近吸盘的哪个边角。在 Mech-Viz 的“工程资源”中双击对应的末端工具名称,然后单击 控制逻辑配置窗口 ,便可查看吸盘边角号。
-
工具位姿(TCP)偏移量:从对应工件中心的 TCP 到 实际 TCP 的偏移量。
-
工件朝向:工件坐标系 X 轴相对于 TCP X 轴的方向。
-
工件组尺寸。
自定义数据项个数
当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口输出的数据个数。
自定义数据项
当 Mech-Vision 工程中输出步骤的端口类型为“自定义”时,除 poses 和 labels 之外其他端口的数据。
各自定义数据项按照端口名称的字母顺序(A—Z)排列。
501 指令——向 Mech-Vision 中传入物体尺寸
502 指令——设置外部位姿
该指令用于向 Mech-Viz 工程动态传入位姿数据,配合 Mech-Viz 软件中的“外部移动”步骤使用。
请基于模板工程部署 Mech-Viz 工程。模板工程位于 梅卡曼德 软件安装目录下 Mech-Center\tool\viz_project\outer_move
文件夹。
请将外部移动步骤放在工作流程中合适的位置。
该指令需在执行 201 指令——启动 Mech-Viz 工程 之前执行。
601 指令——通知
用户不需要发起该指令。
当 Mech-Viz 或 Mech-Vision 工程运行至通知步骤时,Mech-Center 会把“通知”中定义的消息发给客户端。
在 Mech-Vision 中,通知步骤需命名为“Standard Interface Notify”。
在 Mech-Viz 中,在通知步骤的参数中,请勾选“接收对象”下的“标准接口”。
701 指令——标定
该指令用于手眼标定(相机外参标定)。
该指令会与 Mech-Vision 同步标定状态,并从 Mech-Vision 处获得机器人需要到达的标定点。
该指令需要运行多次以完成标定。
发送的指令参数
701, 标定状态, 法兰位姿, JPs 关节角
标定状态
参数范围:0~2。
-
0
:通知 Mech-Vision 开始标定流程。 -
1
:上一标定点已接收,并发给机器人。 -
2
:上一标定点接收失败。
法兰位姿
机器人当前法兰位姿。位姿由位置和姿态组成,其中位置单位为毫米(mm);姿态使用欧拉角表示,单位为度(°)。
JPs 关节角
机器人当前关节角,单位为度(°)。
法兰位姿 与 JPs 关节角 只需指定其中一个参数值即可,另一个参数值使用 6 个 0 填充。 |
返回的数据参数
701, 状态码, 标定状态, 下一标定点法兰位姿, 下一标定点 JPs
状态码
若指令执行正常,返回 7101 状态码,否则返回对应的错误码。
标定状态
-
0
:标定进行中。 -
1
:标定完成。
下一标定点法兰位姿
机器人移动的下一标定点位姿数据。机器人程序端可以选择使用法兰位姿或者 JPs 位姿。
下一标定点关节角
机器人需移动至的下一标定点 JPs。
JPs 与法兰位姿选其一即可。 |
样例
开始标定流程
TCP send string = 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
TCP received string = 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
从 Mech-Vision 获取标定点
TCP send string = 701, 1, 1271.6969, -74.3374, 1334.34094, -3128422, 1792412, -91.11236, 93.28109, -12.0273, -32.8811, -0.37183, -68.41364, 27.02411
TCP received string = 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
该过程需重复多次以获得多个标定点。 |
结束标定
TCP send string = 701, 1, 1371.60876, 25.53615, 1384.45532, -20.82704, 179.22026, -72.77879, 88.88467, -7.42242, -26.68142, -0.2991, -69.95593, 39.26262
TCP received string = 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