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:
@@ -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])
|
||||
|
||||
Reference in New Issue
Block a user