Skip to content

AuboCaps
示教器插件开发指导

AuboCaps 为 AUBO 机器人的 ARCS 软件提供插件开发需要的所有接口与配置。用户可根据本手册提供的信息进行插件开发,加载到 ARCS 软件中,配合 AUBO 机器人,扩展机器人的功能。

ARCS 工作流程

插件最终都是在示教器上运行,因此插件的部分功能(主要在程序节点中)需要配合示教器软件进行。

在 ARCS 软件架构中,主要有示教器和控制器两个部分。ARCS 软件与机械臂通过脚本进行沟通,其流程大体如下:

  1. 用户在线编程或者进行配置相关参数;
  2. 将程序或配置的参数记录至示教器中;
  3. 示教器产生脚本文件;
  4. 示教器将所有脚本文件一同发送给控制器;
  5. 控制器生成机器人控制语言,然后下发给机械臂,机械臂执行相关操作。

(插入流程图)

插件开发的主体任务

由 ARCS 工作流程可知,插件开发的实质是为机械臂控制器提供来自插件的脚本。在示教器中,脚本源自安装节点和程序节点,因此插件开发的主体任务是完成插件的安装节点与程序节点模块。

安装节点

安装节点主要负责配置该插件的各类参数,并保存这些配置。类似在使用相机时,需要配置相机的基本参数,如曝光时间、相机内参等,安装节点就负责设置这些参数。

需要注意的是,安装节点在程序中只实例化一次,这类似安装其他软件时,只需要安装一次。因为参数是一个全局的概念,之后的实体机操作均基于该参数,因此只需要实例化一次。此外,该特性也可以大大优化运行效率。

程序节点

程序节点主要根据参数生成脚本,执行具体功能。比如机械臂移动到某一点的时候,在该点设置一个程序节点负责打开抓手;机械臂移动到另一个节点的时候,设置一个程序节点负责关闭抓手。

插件模板结构

API

ARCS 提供 API 接口,用户可以在插件开发过程中直接调用,缩短开发时间。根据不同 API 在安装节点和程序节点中的使用限制,可以将 API 分为两大类:domain_api 和 aubo_cpa_api。其中 domain_api 中的 system_api、user_interface_api、application_api 均既可用于安装节点,又可用于程序节点。aubo_cpa_api 中的 program_api 仅可用于程序节点,installation_api 则仅可用于安装节点。domain_api 和 aubo_cpa_api 的具体描述请参考下图。

注意:各接口的详细信息请参见《附录:aubo_caps API》

API 使用概述

在模板中,安装节点和程序节点中均包含 service、contribution 和 view 三个类。其中service 类是节点的服务,可以创建 contribution 和 view 类;contribution 类中包含与数据相关的内容,view 类则包含与界面相关的内容,具体信息如下所示:

  1. 安装节点 service 类的接口:

    getTitlegetIconcreateViewconfigureContributioncreateInstallationNode

  2. 程序节点 service 类的接口:

    getTitlegetIcongetIdcreateViewconfigureContributioncreateNode

  3. 安装节点 contribution 类中的 api_provider_ 接口:

    systemApiuserInterfaceApiinstallationApi

  4. 程序节点 contribution 类中的 api_provider_ 接口:

    systemApiuserInterfaceApiprogramApi

  5. 安装节点和程序节点 view 类中 view_api_ 接口:

    systemApiuserInterfaceApi

  6. DataModel 存取数据:

    1. 配置数据一般保存在【/root/arcs_ws/program】文件夹下,当 aubo_scope 启动时,保存的配置数据会加载到 DataModel 中。
    2. 接口 DataModelPtr model_{ nullptr } 在 installation 和 program 中分别提供了一个。该接口可以将该项数据存放到 DataModel 中(但目前只提供部分数据类型,详情请参见《附录:aubo_caps API》)。
    3. 接口 DataModelPtr model_{ nullptr } 使用方式:
      1. 添加头文件 #include "aubo_caps++/meta_type.h"
      2. 在 contribution 类的 private 区域添加 DECLARE_ATTR(名称,类型,初始值)