Files
ros_contorl/devices/grippers/README.md
T
arm_dev 6edb8d39ab chore: 框架科学优化前的完整基线
在开始'设备契约层 + 目录重构 + 通止规装配'改造之前,先钉住当前可运行状态,
使后续任何删除/重构都可回退。

本基线包含:
- 现有 ROS 2 工作区全部源码(arm_application / arm_control / arm_bringup 等)
- 官方 flexiv_ros2 栈(含 flexiv_hardware / flexiv_controllers 等符号链接)
- 设备契约层 src/arm_interfaces(新增,46 项单测通过)
- devices/ 设备选型与品牌清单(新增)
- scripts/gen_site_example.py 与由它生成的 config/site.example.yaml

按 .gitignore 排除:build/ / install/ / log/ / config/site.yaml / 模型权重二进制。
2026-09-23 10:53:06 +08:00

2.4 KiB
Raw Blame History

devices/grippers/ —— 夹爪

厂商物料放置要求

项 要求
格式 厂商原始发布的驱动/SDK/协议文档,不要转换
命名 保持原文件名。若厂商只提供 PDF 协议手册,把它放进来即可(适配器按手册实现)
通讯参数 不要写在这里。串口、波特率、从站号、行程全部在 config/site.yaml
生效 放好物料 → 改 devices/registry.yaml 选型 → 改 site.yaml 里的串口与行程 → 重启 scripts/run_gripper.sh

目录结构

grippers/
├── README.md
├── dh_pgea/                     # 大寰(当前在用)
│   ├── manifest.yaml
│   ├── protocol/                # 厂商协议手册 / 寄存器表
│   └── driver/
└── <新品牌>/

适配器必须实现的接口契约

夹爪的接口刻意做成和机械臂对称 —— 上层只调接口,不关心是哪个品牌、走 Modbus 还是走 RDK。

能力 用途
open 张开
close 夹紧(可带力/速度参数)
move 移动到指定开度
rotate 旋转到指定角度(旋转爪)
get_status 读开度、力、是否夹持到位

关键设计:rotate 与 open/close 解耦。 通止规装配的 S08 循环是 「转 180° → 松爪 → 快回转 → 夹紧」四步反复,这四步必须是四个独立可调用的原语, 不能封装成一个「拧螺丝」复合动作 —— 否则中途掉件时无法精确恢复。

当前状态(迁移参考)

大寰现有实现有两套互不复用的 Modbus 栈,P1 之后会合并到 dh_pgea/driver/ 下:

文件 内容 处置
src/arm_application/arm_application/dh_pgea.py PGEA Modbus 客户端 + 自带 CRC 表 + CLI 保留,收敛为驱动
src/arm_application/arm_application/dh_official.py 另一份寄存器级客户端(含 RGI 旋转寄存器) 合并进来,消除重复
src/arm_application/arm_application/dual_gripper.py PGEA/RGI 统一抽象 改为调用新驱动接口
src/arm_application/arm_application/dh_pgea_node.py ROS 节点封装 改为通用夹爪节点的品牌无关实现

注意:site.yaml 里 gripper.backend: rdk 这条路径已被 run_gripper.sh 明确拒绝, scripts/rdk_gripper.py 是孤儿脚本。这条「走控制器 RS485」的分支在 P2 会被清理。