Adapter 生成器

Adapter 生成器是集成在 Mech-Center 中的一个组件。 使用 Adapter 生成器,通过一系列的设置,得到只发送位姿的 Adapter。 可简单修改生成的代码以符合复杂的实际需求。

依次单击 工具 ‣ Adapter生成器 启动 Adapter 生成器,如下图所示。

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

提示

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

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

此步骤要设置 Adapter 的名称,客户端或服务端,以及通信格式。界面如下图所示。完成后单击右下角 下一步

../../../_images/adapter_generator02.png
  • 选择 Server 或 Client:需要在 部署设置 中配置相应的适配器主机 IP 和端口。

  • 绑定端口:仅在 Client 模式下生效,若 Server 端对 Client 端有端口限制,需勾选此项。

  • 选择通讯格式:可选为 ASCII 字符串或 HEX (十六进制),HEX 需指定大小端。

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

此步骤要设置位姿的个数和形式。界面如下图所示。完成后单击右下角 下一步

../../../_images/adapter_generator03.png
  • Mech-Vision 工程:需提前在 部署设置 中配置 Mech-Vision 程序路径与 Mech-Vision 工程路径。

  • 位姿个数:选择要发给对方的位姿个数。

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

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

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

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

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

  • 使用 Mech-Viz 检测碰撞:勾选后,视觉点经过 Mech-Viz 检测计算,过滤规划失败的点,筛选出过程无碰撞的抓取位姿。此选项需要 Mech-Viz 建立一个工程,Mech-Viz 工程至少需要从 home 点到 视觉移动 ,可参考 Mech-Center 安装路径下 /tool/viz_project 的示例工程 check_collision 。

注意

如示例工程所示,拍照由 视觉识别 触发,且非移动类的任务是必须存在的,且名字不可更改为其他,包括:notify_1,notify_2,visual_look_1。

  • Viz 配置。勾选 使用Viz检测碰撞 后,单击 Viz配置 弹出界面如下图所示。完成后单击右下角 保存

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

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

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

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

    5. Jps 或位姿:发送位姿的方式,默认使用 Jps。若选择位姿,需要在 Mech-Viz 中的“其他”选项卡中勾选 发送工具位姿 。如图:

      ../../../_images/adapter_generator05.png
    6. Jps 单位,位姿单位:根据所选的发送格式,设置相应的单位。一般为度和毫米。

    7. 机器人名字:使用 Mech-Viz 模拟机器人运动需要一个真实的机器人服务,生成的 Adapter 会模拟这个服务,机器人名字即该服务的名字,需要和 Viz 中机器人名字一致。可以在 Mech-Viz 中加载工程,并勾选 自动加载当前工程 ,再返回到设置中单击 获取机器人名称 即可成功添加机器人名称。

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

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

此步骤要设置接收字段的格式。界面如下图所示。需要设置的有:拍照指令、多个工程(指令码)、需要动态切换模板(模板指令码)、以及总字段个数、字段类型、字段中的分隔符和嵌套分隔符。完成后单击右下角 下一步

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

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

注意

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

  • 需要动态切换模板(模板指令码):该设置为可选项,动态切换模板是指要识别的物体有多个型号,运行时需要动态切换当前型号的模板文件。

注意

字段位置唯一,不可与其他字段重叠。

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

  • 字段类型:当通信格式为十六进制(HEX)时需要设置。可选的类型有 CHAR、SHORT、INT、FLOAT、DOUBLE。

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

模板配置 - Mech-Vision模板切换

当上一步勾选了 需要动态切换模板 选项,需要设置此配置。完成后单击右下角 下一步

  • 模板文件夹:根据类型存放模板的文件夹,文件夹层次如下图所示。

../../../_images/adapter_generator07.png
  • 类型和类型码:加载完模板文件夹后,会解析文件夹下面所有类型到类型下拉框中,若需要对应的类型码,请根据规则:code_type 来命名模板子文件夹,如下图所示:

../../../_images/adapter_generator08.png
  • 界面上切换模板:选中后启动 Adapter,会生成一个子界面,可手动切换模板。

  • 步骤名称:需要设置模板的步骤的名称,即 Mech-Vision 中对应步骤的步骤名称。

  • 步骤类型:表示对应步骤的类型,目前仅支持 “3D Coarse Matching”,”3D Fine Matching”,”Coarse Registration Multi Template”,”Fine Registration Multi Template”,”Map to Multi Pick Points”,”Read Object Sizes”,”Read Poses”,”Add Labels to Poses”,每种步骤类型都有对应的属性,可根据需要选择属性。

  • 选择完属性,可单击 +- 来增加或删除步骤。

注意

为了统一命名,请以这些属性名字来命名模板文件,比如点云模板文件,请命名为 modelfile.ply,抓取点请命名为 pickpointfilepath.json,不区分大小写。

机器人配置 - Eye In Hand

当 Eye In Hand 情况下如果客户需要我们提供基于机器人基坐标系下的 位姿,则需要机器人提供拍照时的关节角或法兰姿态。此步骤将设置机器人拍照时的位姿格式。界面如下图所示。完成后单击右下角 下一步

../../../_images/adapter_generator09.png
  • 位姿形式:可以选择关节角或法兰位姿。

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

  • 法兰位姿单位:位置可以选择米或毫米,姿态(旋转)可选四元数或欧拉角,欧拉角单位可选度或弧度。

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

注意

索引位置从 1 开始计数,索引位置 1 为拍照指令!

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

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

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

此步骤要设置发送位姿的格式。界面如下图所示。完成后单击右下角 下一步

../../../_images/adapter_generator10.png
  • 字段分隔符和嵌套字段分隔符:设置分隔符形式。

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

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

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

  • 需要发送数量:发送此次发送的位姿数量。

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

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

注意

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

以上,全部配置好后单击 完成工程另存为 对 Adapter 进行保存。