Adapter 生成器手册

本节介绍 Adapter 生成器以及如何使用 Adapter 生成器快速生成 Adapter 程序。

Adapter 生成器介绍

Adapter 生成器是集成在 Mech-Center 中的一个小组件。Adapter 生成器仅适用于采用 TCP/IP Socket 通信方式且只使用 Mech-Vision 提供视觉点的场景。

Adapter 生成器可以帮助您:

  • 快速生成 Adapter 程序,并搭建 Adapter 工程。

  • 快速学习 Adapter 的编程开发,以满足复杂的需求。

您可以通过选择 工具 ‣ Adapter 生成器 ,启动 Adapter 生成器以进行相关设置,如下图所示。

../../../../_images/adapter_generator01.png

注意

Adapter 生成器仅在管理员模式下可用。

使用 Adapter 生成器快速生成 Adapter 程序

提示

为方便配置,对应组件处有其详细描述,可把鼠标光标悬浮到组件处查看。

网络配置 - 服务端或客户端

在此步骤,设置参数 Adapter 名字Adapter 作为通信格式,然后点击 下一步 ,如下图所示。

../../../../_images/adapter_generator02.png

参数说明:

  • Adapter 名字:指定 Adapter 程序的名称。

  • Adapter 作为:指定 Adapter 作为 TCP/IP Socket 通信的服务端(Server)或客户端(Client)。如果 Adapter 作为客户端并且服务端对客户端有端口限制,需要勾选 绑定端口 复选框。

    提示

    为了保证与对端的正常通信,在 Adapter 工程部署时需要指定正确的主机IP地址和端口。详细信息,请参见“Adapter 工程的部署”章节的内容。

  • 通信格式:指定通信的传输格式,支持 ASCII 字符串或 HEX (十六进制)。当 通信格式 格式设为“HEX”时,还需指定字节顺序(endianness)为“大端”或“小端”。

Mech-Viz/Mech-Vision 配置 - 位姿和关节角度

提示

  • 在执行此步骤前,请先准备好 Mech-Vision 工程和用于进行碰撞检测的 Mech-Viz 工程,并启用自动加载选项,确保工程已经在 Mech-Center 中加载。

  • Mech-Center 提供了碰撞检测的 Mech-Viz 示例工程 “check_collision”,请从 Mech-Center 安装路径下的 “tool\viz_project” 目录下获取。

注意

如“check_collision”示例工程所示,工程由 视觉识别 触发拍照,且必须包含非移动类的任务,任务名称不可更改,包括 notify_1、notify_2 和 vision_look_1。

在此步骤,设置 Mech-Viz 和 Mech-Vision 工程相关的参数,然后点击 下一步

../../../../_images/adapter_generator03.png

Mech-Vision 相关参数说明:

  • Mech-Vision 工程名:指定 Mech-Vision 工程的名称。从下拉列表中选择与 Adapter 交互的的 Mech-Vision 工程。

  • 位姿数量:选择发送给对端的位姿个数。

  • 位姿形式:可以选择四元数或欧拉角。

  • 位姿单位:一般情况下选择使用毫米和度。

  • 相机:选择相机安装方式,分为 ETH 和 EIH 两种情况。

  • 位姿坐标系:确定发送的位姿基于的坐标系。一般情况下,位姿都是基于机器人基坐标系。在 EIH 场景下,当机器人不能给出机器人末端位姿的情况下,位姿只能基于工具坐标系。

  • 保留小数位数:确定发送的位姿的小数位数。最大位数为 10。

Mech-Viz 相关参数说明:

  • 使用 Mech-Viz 检测碰撞:勾选后,视觉点经过 Mech-Viz 工程的碰撞检测,过滤规划失败的点,筛选出过程无碰撞的抓取位姿。

  • Mech-Viz 配置。勾选 使用 Mech-Viz 检测碰撞 后,该按钮可用。点击该按钮弹出 生成器 Mech-Viz 配置 界面,设置相应参数后,点击 保存 按钮,如下图所示。保存

    ../../../../_images/adapter_generator04.png
    • 需要区分抓取点位和放置点位:抓取点位是 视觉移动 之前的所有点位(包含视觉移动),放置点位是 视觉移动 之后的所有点位。在某些场景下,机器人根据任务可能需要区分抓取动作和放置动作。

    • 需要发送抓取点位和放置点位数量:若点位数量比较多,可带上数量字段,勾选后默认点位数量大于 1 个才会带上此字段。

    • 需要发送每个点位的运动方式:Mech-Viz 中移动类任务的运动方式,分为关节运动或直线运动。

    • 更新数值:默认关节运动对应码是 1,直线运动对应码是 2,可自定义码,更改后点击 更新数值 按钮生效。

    • Jps 或位姿:发送位姿的形式,默认使用 Jps。若选择位姿,需要在 Mech-Viz 中的 其他 面板中勾选 发送工具位姿 复选框,如下图所示。

      ../../../../_images/adapter_generator05.png
    • Jps 单位/位姿单位:当发送位姿形式为 Jps 时,设置 Jps 单位,一般使用度。当发送位姿形式为 Pose 时,设置位姿单位,一般使用毫米。

    • 机器人名字:指定机器人服务的名称。使用 Mech-Viz 模拟机器人运动需要一个真实的机器人服务,生成的 Adapter 会模拟这个服务,机器人名字即该服务的名字,需要和 Mech-Viz 中机器人名字一致。单击 获取机器人名称 即可自动添加机器人名称。

    • 原点关节角度(单位:弧度):设置 Mech-Viz 中开始运动的参考原点,单位是弧度,以逗号分隔。可以从 Mech-Viz 中编辑一个 移动 作为原点,复制该原点的关节位置。

接收数据格式配置 - 接收字段

在此步骤,设置接收字段的格式,包括拍照指令、多个工程(指令码)以及总字段个数、字段类型、字段中的分隔符和嵌套分隔符,然后点击 下一步 ,如下图所示。

../../../../_images/adapter_generator06.png
  • 总字段个数:与需要设置的参数个数有关,其取值范围为 1~10。字段中必须存在拍照指令。

  • 拍照指令:外部通信设备向 Mech-Mind 软件系统发送的拍照指令,使相机进行拍照采集。当通信格式为 ASCII 码时,建议使用字母表示,例如字母 p 并且字段位置默认为1。当通信格式为十六进制时(HEX),需要使用十六进制形式的整数,例如 0xffff

  • 字段分隔符嵌套字段分隔符:当通信格式为 ASCII 时需要设置。如果字段超过 2 个,需填写字段分隔符;如果额外信息里又需要另外的分隔符,嵌套字段分隔符也是必须的,可指定嵌套字段的起止范围。

  • 字段类型字段描述:当通信格式为十六进制(HEX)时需要设置。可选的字段类型有 CHAR、SHORT、INT、FLOAT 和 DOUBLE。 字段描述 用于描述字段的功能或含义。

  • 多个工程(指令码):可选项,当一个项目中存在多个 Mech-Vision 工程,需要根据外部的指令来调用不同的 Mech-Vision 工程,指令码可配置。

    注意

    每个工程对应的指令码唯一,并且字段位置唯一,不可与其他字段重叠。

机器人配置 - Eye In Hand

提示

在“Mech-Viz/Mech-Vision 配置 - 位姿和关节角度”步骤中,如果 相机 参数设置为 Eye In Hand 时,该步骤可用。

在此步骤,设置机器人拍照时的位姿格式,然后点击 下一步 ,如下图所示。

../../../../_images/adapter_generator09.png

参数说明:

  • 需要机器人给 Adapter 反馈拍照时的关节角或法兰位姿:如果对端需要基于机器人基坐标系下的物体位姿,则需要机器人提供拍照时的关节角或法兰位姿,请勾选该复选框。勾选后,指定位姿的形式,可以选择关节角或法兰位姿。

  • 关节角单位:指定关节角单位,可以选择度或弧度。

  • 法兰位姿单位:指定法兰位姿单位,可以选择四元数或欧拉角。当使用四元数时,单位可以选择米或毫米;当使用欧拉角时,单位可以选择度或弧度。

  • 关节角/法兰姿态字段位置:指定关节角或位姿的起始和结束字段在总字段中的位置。

    注意

    索引位置从 1 开始计数,不可与其他字段重叠,例如索引位置 1 为拍照指令!

  • 机器人名字:用来标识机器人服务的名字,需要和 Mech-Viz 中机器人名字一致。

  • 机器人自由度:当前支持 4 轴和 6 轴机器人,按工程实际情况选择对应的机器人自由度。

发送数据格式配置 - 发送字段

在此步骤,设置发送位姿的格式,然后点击 下一步 ,如下图所示。

../../../../_images/adapter_generator10.png

参数说明:

  • 字段分隔符嵌套字段分隔符:设置分隔符形式。当通信格式为 ASCII 时需要设置。如果字段超过 2 个,需填写字段分隔符;如果额外信息里又需要另外的分隔符,嵌套字段分隔符也是必须的,可指定嵌套字段的起止范围。

  • 状态码:设置发送状态,每一种状态对应的状态码唯一。

  • 需要检查点云:勾选后,Adapter 会检查点云,若点云不存在则会输出对应的状态码。

  • 需要发送物体标签:发送物体标签是指根据 Mech-Vision 识别的标签发给对端,每个标签是接在位姿后面;当对端不方便解析标签字符串时,也可以指定对应标签的码,需要加载包含所有标签字符串的标签文件。注意:标签文件格式必须是 json 数组格式。

  • 需要发送数量:发送时包含当次发送的位姿数量。

  • 需要固定包体:当视觉识别失败时,给对端发送消息(错误码后面的消息)。

  • 需要固定尾部:勾选后会在发送的数据后面添加固定尾部标识。

注意

当通信格式为十六进制(HEX)时,需要设置状态码、位姿个数和位姿字段的数值类型。

完成以上全部配置后,单击 完成工程另存为 保存 Adapter 工程。保存 Adapter 工程后,您可以参照“Adapter 工程的部署” 章节部署和使用Adapter工程。

关于 Adapter 编程开发的更多信息,请阅读: