Appearance
AuboCaps
示教器插件开发指导
AuboCaps 为 AUBO 机器人的 ARCS 软件提供插件开发需要的所有接口与配置。用户可根据本手册提供的信息进行插件开发,加载到 ARCS 软件中,配合 AUBO 机器人,扩展机器人的功能。
ARCS 工作流程
插件最终都是在示教器上运行,因此插件的部分功能(主要在程序节点中)需要配合示教器软件进行。
在 ARCS 软件架构中,主要有示教器和控制器两个部分。ARCS 软件与机械臂通过脚本进行沟通,其流程大体如下:
- 用户在线编程或者进行配置相关参数;
- 将程序或配置的参数记录至示教器中;
- 示教器产生脚本文件;
- 示教器将所有脚本文件一同发送给控制器;
- 控制器生成机器人控制语言,然后下发给机械臂,机械臂执行相关操作。
(插入流程图)
插件开发的主体任务
由 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 类则包含与界面相关的内容,具体信息如下所示:
安装节点 service 类的接口:
getTitle
、getIcon
、createView
、configureContribution
、createInstallationNode
程序节点 service 类的接口:
getTitle
、getIcon
、getId
、createView
、configureContribution
、createNode
安装节点 contribution 类中的 api_provider_ 接口:
systemApi
、userInterfaceApi
、installationApi
程序节点 contribution 类中的 api_provider_ 接口:
systemApi
、userInterfaceApi
、programApi
安装节点和程序节点 view 类中 view_api_ 接口:
systemApi
、userInterfaceApi
DataModel 存取数据:
- 配置数据一般保存在【/root/arcs_ws/program】文件夹下,当 aubo_scope 启动时,保存的配置数据会加载到 DataModel 中。
- 接口 DataModelPtr model_{ nullptr } 在 installation 和 program 中分别提供了一个。该接口可以将该项数据存放到 DataModel 中(但目前只提供部分数据类型,详情请参见《附录:aubo_caps API》)。
- 接口 DataModelPtr model_{ nullptr } 使用方式:
- 添加头文件
#include "aubo_caps++/meta_type.h"
。 - 在 contribution 类的 private 区域添加
DECLARE_ATTR(名称,类型,初始值)
。
- 添加头文件