跳到主要内容

Agent Skill

@dobot-plus/skill 是一个 Agent Skill,可将项目根目录下的 doc.md 设备文档转换为可运行的 Dobot+ 插件代码,包括 Lua 逻辑、UI 页面、积木/脚本配置等。

配合 @dobot-plus/cli 使用,可显著加速 Dobot+ 插件开发。

依赖

  • Node.js v20+
  • IDE(支持 Agent Skills)
  • @dobot-plus/cli(全局安装 dpt 命令,用于项目构建)

安装

npm install -g @dobot-plus/skill@latest

安装完成后,Skill 会自动部署到以下目录 ~/.agents/skills/dobot-plus

可通过环境变量自定义:

环境变量说明
DOBOT_SKILL_INSTALL_DIRSkill 安装根目录,默认为 ~/.agents/skills
SKIP_DOBOT_SKILL_INSTALL设为 1 时跳过 postinstall 部署步骤

使用

1. 准备 Dobot+ 插件项目

使用 @dobot-plus/cli 创建或打开一个已有的 Dobot+ 插件项目:

npm install -g @dobot-plus/cli
dpt create

2. 编写设备文档

在项目根目录创建 doc.md,描述设备的通信协议、寄存器地址、功能定义等信息。文档需包含:

  • 通信协议参数(如 Modbus RTU 波特率、校验位等)
  • 寄存器地址与位域说明
  • 设备功能列表

一个可用的示例如下:

# VG10 / VGC10 开发手册

## 1. 设备概述

VG10/VGC10 是 OnRobot 的真空夹持器系列。本文档基于 Connectivity Guide v1.23.0,描述其底层 Modbus 通信接口。

> **注意:** 此接口为保密信息,仅供有经验的集成用户使用。不当使用可能导致设备损坏并失去保修。OnRobot 不提供进一步支持。

## 2. 通信协议

VG10/VGC10 支持 **Modbus RTU** 协议,物理层使用 RS485。

### 2.1 Modbus RTU 设置

| 设置项 ||
| ---------- | -------------------- |
| 波特率 | 1000000 bit/s |
| 起始位 | 1 |
| 数据位 | 8 |
| 校验位 | Even |
| 停止位 | 1 |
| CRC 校验 | 16 bit (Modbus 默认) |
| CRC 多项式 | 0xA001 (Modbus 默认) |

### 2.2 设备地址

| 连接方式 | 设备地址 |
| -------------------------------- | --------- |
| 通过 Quick Changer | 65 (0x41) |
| 通过 HEX-E/H QC | 65 (0x41) |
| 通过 Dual Quick Changer(主侧1) | 66 (0x42) |
| 通过 Dual Quick Changer(副侧2) | 67 (0x43) |

## 3. 产品识别

可以通过公共寄存器确认当前连接的是 VG10/VGC10:

| 地址 | 寄存器名称 | VG10/VGC10 对应值 |
| ------------ | ---------- | ------------------------ |
| 1536 (0x600) | 产品代码 | VG10: 0x10 / VGC10: 0x11 |

## 4. 支持的 Modbus 功能码

| 功能码 | 名称 | 用途 |
| --------- | --------------- | -------------------------------- |
| 3 (0x03) | 读保持寄存器 | 读取单个或多个连续寄存器 |
| 6 (0x06) | 写单个寄存器 | 设置单个寄存器的值 |
| 16 (0x10) | 写多个寄存器 | 设置多个连续寄存器的值 |
| 23 (0x17) | 读/写多个寄存器 | 同时读取和设置寄存器(先写后读) |

## 5. 寄存器映射

### 5.1 寄存器总览

| 地址 | 寄存器名称 | 访问权限 |
| ------------ | ----------------------- | ------------ |
| 0 (0x0000) | Channel A Control | Read + Write |
| 1 (0x0001) | Channel B Control | Read + Write |
| 2 (0x0002) | Current Limit | Read + Write |
| 258 (0x0102) | Channel A Actual Vacuum | Read only |
| 259 (0x0103) | Channel B Actual Vacuum | Read only |

### 5.2 公共寄存器

以下寄存器适用于所有 OnRobot 设备:

| 地址 | 内容 |
| ------------- | ------------------------------------------ |
| 0x600 | 产品代码(VG10: 0x10, VGC10: 0x11) |
| 0x604 | 固件版本(高8位主版本,低8位次版本) |
| 0x605 | 固件构建号 |
| 0x609 - 0x618 | 序列号(32字节,每寄存器含2个 ASCII 字符) |

---

## 6. 寄存器详细说明

### 6.1 Channel A Control (0x0000) - 读写

控制通道 A 的真空操作。

**寄存器值组成:**

- 低位字节(Bit 0-7):控制模式
- 高位字节(Bit 8-15):目标真空度(仅在 Grip 模式下使用)

**控制模式:**

| 寄存器值 | 名称 | 说明 |
| ---------- | ------- | ---------------------------------- |
| 0 (0x0000) | Release | 释放工件,如另一通道无需求则停止泵 |
| 1 (0x0001) | Grip | 建立并维持真空 |
| 2 (0x0002) | Idle | 空闲模式,不释放也不抓取,功耗稍低 |

**目标真空度设置示例:**

| 目标真空度 | 寄存器值 |
| ---------- | ------------ |
| 释放 | 0 (0x0000) |
| 20% | 276 (0x0114) |
| 40% | 296 (0x0128) |
| 75% | 331 (0x014B) |
| 空闲 | 512 (0x0200) |

> **注意:** 目标真空度不应超过 80%。

---

### 6.2 Channel B Control (0x0001) - 读写

控制通道 B 的真空操作。功能与 Channel A Control 完全相同,请参考上节。

---

### 6.3 Current Limit (0x0002) - 读写

设置和读取电流限制。

| 参数 ||
| ---------- | ---------- |
| 单位 | mA(毫安) |
| 默认值 | 500 mA |
| 最大允许值 | 1000 mA |

> **警告:** 切勿将该值设置超过 1000 mA。

---

### 6.4 Channel A Actual Vacuum (0x0102) - 只读

读取通道 A 当前实际真空度。

| 参数 | 说明 |
| ---- | -------------------------------------------------------------- |
| 单位 | 1/1000 相对真空度 |
| 注意 | 与设定值(百分比)精度单位不同,此处为千分之一,以提供更高精度 |

---

### 6.5 Channel B Actual Vacuum (0x0103) - 只读

读取通道 B 当前实际真空度。

参数规格与 Channel A Actual Vacuum 相同。

---

## 7. 操作流程

### 7.1 基本控制流程

1. **配置电流限制(可选)**
- 向寄存器 0x0002 写入电流限制值(mA)

2. **设置并启动真空抓取**
- 向寄存器 0x0000(通道 A)或 0x0001(通道 B)写入带目标真空度的 Grip 命令
- 例如:`0x0114` = 20% 真空度抓取,**其中01高8位表示模式;14低8位表示参数**

3. **监控实际真空度**
- 读取寄存器 0x0102(通道 A)或 0x0103(通道 B)
- 获取实际真空度(千分之一单位)

4. **释放工件**
- 向相应通道控制寄存器写入 `0x0000`

5. **空闲状态**
- 向相应通道控制寄存器写入 `0x0200`

### 7.2 双通道使用

VG10/VGC10 的两个通道可独立控制:

- 通道 A 由寄存器 0x0000 控制
- 通道 B 由寄存器 0x0001 控制
- 一个通道释放时,若另一通道仍需要真空,泵会继续运行

---

## 8. 版本信息

| 项目 | 内容 |
| -------------------------- | -------------------------- |
| 基于文档版本 | Connectivity Guide v1.23.0 |
| 适用设备 | VG10, VGC10 |
| 最低固件版本(115200 bps) | v2.0.3 |
| 通信协议 | Modbus RTU (RS485) |

---

## 9. 安全注意事项

- 目标真空度切勿超过 80%
- 电流限制切勿超过 1000 mA
- 仅在有充分集成经验的情况下使用此接口
- 使用前请务必阅读设备的操作说明
- 不当使用可能导致设备损坏并使保修失效

3. 在 IDE 中调用 Skill

在 IDE Chat 中输入:

/dobot-plus

Agent 会按 SKILL.md 中的步骤自动执行:

  1. 解析 doc.md,拆分为原子功能项
  2. 生成并校验 function.json
  3. 生成 Lua 脚本、HTTP API、积木配置、UI 页面等脚手架代码
  4. 提示执行 dpt build 完成构建

skill demo

常见问题

IDE 未识别 Skill

确认 Skill 已正确安装到 ~/.agents/skills/dobot-plus/SKILL.md,并在 IDE 设置中启用 Agent Skills。

缺少 doc.md

Skill 不会自动创建或修改 doc.md。请先在项目根目录准备好完整的设备文档后再调用 /dobot-plus

相关链接