Files
ros_contorl/docs/GRIPPER.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.9 KiB
Raw Blame History

大寰夹爪(PGEA + RGI)

两只爪都走工控机 USB–RS485 + 官方 Modbus RTU,不走 Flexiv Gripper / Studio GripperDahuanModbus。示教器里关掉对应设备,避免抢总线。run_real.sh 保持 load_gripper:=false。

臂 型号 串口 脚本
左 89 PGEA-100-20-W 平行 /dev/ttyUSB0 run_gripper.sh --arm 89
右 91 RGI-100-30-O-S-M1 旋转 /dev/ttyUSB1 run_gripper.sh --arm 91

端口、行程、力/速写在 site.yaml:robots[].gripper(每臂)+ 全局 gripper / gripper.parallel / gripper.rotary。双爪 ROS 节点读 robots[] 两侧。不要改包内 Python 默认值。

源码:src/arm_application/arm_application/dh_official.py、dual_gripper.py、dh_pgea.py。消息:arm_msgs(不要往官方 flexiv_msgs 塞自定义夹爪类型)。

命令行

# 左臂平行爪
bash ~/ros2/scripts/run_gripper.sh --arm 89 --cli probe
bash ~/ros2/scripts/run_gripper.sh --arm 89 --cli init    # 上电第一次
bash ~/ros2/scripts/run_gripper.sh --arm 89 --cli open
bash ~/ros2/scripts/run_gripper.sh --arm 89 --cli close
bash ~/ros2/scripts/run_gripper.sh --arm 89 --cli pos 500 # 0=合 1000=开(‰)

# 右臂旋转爪
bash ~/ros2/scripts/run_gripper.sh --arm 91 --cli open
bash ~/ros2/scripts/run_gripper.sh --arm 91 --cli close
bash ~/ros2/scripts/run_gripper.sh --arm 91 --cli rotate 90
bash ~/ros2/scripts/run_gripper.sh --arm 91 --cli revolutions 2

PGEA 力/速:gripper.force_pct(最低 20)speed_pct open_position close_position。RGI 不要 auto_init: true(robots[] 里已关)。

ROS 节点

单爪:

bash ~/ros2/scripts/run_gripper.sh --arm 89    # /gripper/open /gripper/close
bash ~/ros2/scripts/run_gripper.sh --arm 91    # dual_gripper 仅 right

双爪同时:

bash ~/ros2/scripts/run_dual_gripper.sh
名称 类型
/dual_gripper_driver/left/command arm_msgs/msg/GripperCommand
/dual_gripper_driver/right/command 同上
/dual_gripper_driver/left/status arm_msgs/msg/GripperStatus
/dual_gripper_driver/right/status 同上
/dual_gripper_driver/left/execute arm_msgs/srv/GripperExecute
/dual_gripper_driver/right/execute 同上

command 字段:init open close move;右爪另有 rotate rotate_by rotate_revolutions home_rotation。

ros2 service call /dual_gripper_driver/left/execute arm_msgs/srv/GripperExecute \
  "{command: {command: 'open', wait_complete: true, timeout: 10.0}}"
ros2 service call /dual_gripper_driver/right/execute arm_msgs/srv/GripperExecute \
  "{command: {command: 'rotate', position: 90.0, wait_complete: true, timeout: 10.0}}"

USB 未插齐时节点仍可起来(allow_offline:=true),对应侧 status.error_msg 会写连接失败。

用户需在 dialout:sudo usermod -aG dialout $USER。