Adapter生成器手册

您正在查看旧版本的文档。点击页面右上角可切换到最新版本的文档。

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

Adapter生成器介绍

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

Adapter生成器可以完成以下事项:

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

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

依次单击 工具  Adapter生成器,启动 Adapter 生成器以进行相关设置。

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

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

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

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

在此步骤,设置参数 Adapter 名字Adapter 作为通信格式

adapter generator02

参数说明:

  • 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 和 visual_look_1。

在此步骤,设置Mech-Viz和Mech-Vision工程相关的参数。

adapter generator03

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 配置 界面,设置相应参数后,点击 保存 按钮,如下图所示。

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

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

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

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

  • Jps 或位姿:发送位姿的形式,默认使用Jps。

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

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

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

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

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

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

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

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

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

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

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

机器人配置 —— Eye In Hand

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

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

adapter generator09

参数说明:

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

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

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

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

    索引位置从1开始计数,不可与其他字段重叠,例如索引位置1为拍照指令!
  • 机器人名字:用来标识机器人服务的名字,需要和Mech-Viz中机器人名字一致。

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

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

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

adapter generator10

参数说明:

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

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

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

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

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

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

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

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

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

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

我们重视您的隐私

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