ApexTool 末端夹爪使用与二次开发
文档用途:面向使用 Apex 系统的客户、末端执行器二次开发人员及技术支持人员。
适用范围:OmniGripper(DM)、智元夹爪(ZY)以及 ApexTool 的标准 ROS 2 接入链路。
文档日期:2026-08-07
1. 文档目标
本文说明以下内容:
- ApexTool 在 Apex 系统中的作用及与 Robot、Teleop 模块的关系。
- DM、ZY 夹爪的安装、选择、启动、控制、反馈和复位方法。
- 从 ROS Topic 到物理夹爪的完整通信链路。
- 客户自定义输入设备或上层程序的接入方式。
- 没有完整 Apex 遥操系统时,如何选择机械臂透传、USB 或独立 ROS 示例。
- 常见故障的定位步骤及交付检查项。
本文不将 Wuji 灵巧手作为标准夹爪二开接口。部分 ApexTool 版本中包含 Wuji 启动入口,但其设备序列号、手型配置和控制 Topic 与 DM/ZY 不同,应以对应版本的灵巧手交付包为准。
2. ApexTool 是什么
kernelmind-apex-tool 是 Apex 系统中的独立末端执行器软件包。它负责:
- 根据
APEX_TOOL_TYPE选择末端类型。 - 启 动对应的 DM、ZY 或其他末端驱动。
- 提供统一的夹爪命令 Topic、反馈 Topic 和复位 Service。
- 将 ROS 夹爪命令转换为 CAN 帧并写入
vcan0/vcan1。 - 从
vcan0/vcan1接收末端返回帧并发布 ROS 反馈。
ApexTool 与核心 Apex 包分开发布,但安装版本必须匹配。已核对的发行包使用如下关系:
kernelmind-apex-tool <版本>
依赖 kernelmind-apex (= 完全相同版本)
因此不建议把不同版本的主包和 Tool 包混装。
2.1 模块关系
2.2 ApexTool 与其他模块的边界
| 模块 | 主要职责 | 是否直接控制夹爪电机 |
|---|---|---|
| Apex Backend/UI | 页面、状态管理、启动和停止系统服务 | 否 |
| Teleop | 将头显或操作者输入转换为夹爪目标 | 否 |
| ApexTool | 将夹爪目标转换为厂商协议 CAN 帧,解析反馈 | 是,负责协议和控制参数 |
| Robot Node | 在本地 vcan 与控制器末端通道之间双向转发 | 不解析电机协议 |
| Marvin/Gento SDK | 与机器人控制器通信,传输末端通道数据 | 不负责 ROS 夹爪逻辑 |
3. 先选择正确的接入路线
不同硬件条件应使用不同示例。选错路线时,即使程序能够启动,也可能无法接通物理夹爪。
| 客户条件 | 推荐方式 | 是否需要 ROS | 是否需要 Apex Robot Node | 物理通道 |
|---|---|---|---|---|
| 已安装完整 Apex 系统 | ApexTool | 是 | 是 | vcan 经 Robot Node 转到机械臂内走线 |
| 只购买机械臂和夹爪,夹爪走机械臂内走线 | Marvin SDK 末端透传例程 | 否,可自行封装 | 否 | SDK Terminal A/B |
| 只测试单独夹爪,有 USB-to-CANFD 适配器 | USB Python/C++ 例程 | 否 | 否 | USB-to-CANFD 直连夹爪 |