set_position_sync方法

XenseGripper.set_position_sync(self, position, vmax=80.0, fmax=27.0, tolerance=0.01, timeout=5.0, poll_interval=0.05)

同步位置控制 (阻塞直到到达目标位置)

Parameters:
  • position (float) – 夹爪的目标位置,单位为毫米(mm)。 必须在 (0, 85) 范围内。 0 mm 表示完全打开,85 mm 表示完全闭合。

  • vmax (float) – 最大运动速度,单位为毫米/秒(mm/s)。 必须在 (0, 350) 范围内。 默认值为 80 mm/s。

  • fmax (float) – 最大输出力,单位为牛顿(N)。 必须在 (0, 40) 范围内。 默认值为 27 N。

  • tolerance (float, 可选) – 判定运动完成的位置误差容忍度,单位为毫米(mm)。 默认值为 0.01 mm。

  • timeout (float, 可选) – 等待目标位置到达的最大时间,单位为秒。 默认值为 5.0 秒。

  • poll_interval (float, 可选) – 位置检查的时间间隔,单位为秒。 默认值为 0.05 秒。

Raises:

ValueError – 当任何输入参数超出其允许的物理限制范围时触发。

Returns:

若夹爪在超时时间内到达目标位置(在允许的误差范围内),则返回 True,否则返回 False。

Return type:

bool

示例代码

from xensesdk import XenseGripper

# 创建夹爪实例
gripper = XenseGripper.create("9a14e81bb832")

# 同步设置夹爪位置为 30mm,使用默认参数
success = gripper.set_position_sync(30)
print(f"位置设置成功: {success}")

# 同步设置夹爪位置为 50mm,指定参数
success = gripper.set_position_sync(
    position=50,
    vmax=120,
    fmax=35,
    tolerance=0.02,
    timeout=10.0,
    poll_interval=0.03
)
print(f"位置设置成功: {success}")

# 错误示例:位置超出范围
try:
    gripper.set_position_sync(90)  # 90mm 超过最大 85mm 限制
except ValueError as e:
    print(e)