fix(vision_grasp): 修正 tcp_to_base 旋转矩阵 Y 坐标符号

问题:
- 相机坐标 (10, -5, 100) → 基坐标 (299.6, 10, 15)
- 期望:(299.6, -10, 15)
- Y 坐标符号相反

根因:
- 旋转矩阵第二行:TCP X → 基坐标 Y
- 应该是:TCP X → 基坐标 -Y

修复:
- 第二行从 [cos(phi), 0, sin(phi)]
- 改为 [-cos(phi), 0, -sin(phi)]

验证(phi=0):
- TCP (10, -5, 100) + TCP位置(199.6, 0, 10)
- = 基坐标 (299.6, -10, 15) ✓
This commit is contained in:
2026-06-16 20:15:56 +08:00
parent 3f4dfe02a7
commit aa1bc2bf75

View File

@@ -71,10 +71,14 @@ def tcp_to_base(
"""TCP 坐标系 → 机械臂基坐标系(水平相机版本)"""
phi = math.radians(tcp_phi_deg)
# 旋转矩阵TCP → 基坐标系
# TCP X → 基坐标 -Y
# TCP Y → 基坐标 -Z
# TCP Z → 基坐标 X
R_tcp_to_base = np.array([
[-math.sin(phi), 0, math.cos(phi)],
[ math.cos(phi), 0, math.sin(phi)],
[0, -1, 0]
[-math.sin(phi), 0, math.cos(phi)], # X_base
[-math.cos(phi), 0, -math.sin(phi)], # Y_base (修正:添加负号)
[0, -1, 0] # Z_base
])
P_tcp = np.array([xt, yt, zt])