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_DIR | Skill 安装根目录,默认为 ~/.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 中的步骤自动执行:
- 解析
doc.md,拆分为原子功能项 - 生成并校验
function.json - 生成 Lua 脚本、HTTP API、积木配置、UI 页面等脚手架代码
- 提示执行
dpt build完成构建

常见问题
IDE 未识别 Skill
确认 Skill 已正确安装到 ~/.agents/skills/dobot-plus/SKILL.md,并在 IDE 设置中启用 Agent Skills。
缺少 doc.md
Skill 不会自动创建或修改 doc.md。请先在项目根目录准备好完整的设备文档后再调用 /dobot-plus。
相关链接
- @dobot-plus/cli — Dobot+ 插件开发 CLI
- @dobot-plus/template — 插件项目模板
- Dobot+ 开发文档