feat(arm_control): 实现动态 z4 自动适配机制

问题根源:
- udp_control.py 使用动态 z4(根据目标 z 自动选择)
- arm_control.py 使用固定 z4=80
- 导致相同目标位姿在两个工具中行为不一致

解决方案:
- 添加 resolve_j5_from_z(): 根据目标 z 自动选择 J5
- 添加 resolve_z4_from_j5(): 根据 J5 确定 z4 值
- 更新正/逆运动学接受动态 z4 参数
- 自动适配规则:
  * z > -55mm: J5=-100, z4=-100 (闭合, 工作范围 [-190, 110])
  * z ≤ -55mm: J5=81, z4=55 (张开, 工作范围 [-345, -55])

现在 arm_control 与 udp_control.py 行为一致!
This commit is contained in:
2026-06-16 19:37:42 +08:00
parent df436a9a31
commit 33f1a31c59
2 changed files with 64 additions and 12 deletions

View File

@@ -23,6 +23,9 @@ CRAIC 项目的 ROS 2 机械臂控制和视觉抓取系统。
**功能**
- 关节空间和笛卡尔空间运动控制
- 完整的逆运动学和正运动学
- **自动 z4 适配**:根据目标 z 坐标自动选择夹爪状态
- `z > -55mm`: J5=-100闭合z4=-100mm工作范围 z ∈ [-190, 110]mm
- `z ≤ -55mm`: J5=81张开z4=55mm工作范围 z ∈ [-345, -55]mm
- UDP 通信(与 ESP32
- 状态发布10Hz