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)

同步位置控制 (将夹爪移动到目标位置,并阻塞直到到达目标位置或超时)

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

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

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

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

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

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

抛出:

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

返回:

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

返回类型:

bool

示例代码

from xensegripper import XenseGripper

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

# 同步设置夹爪位置为 30mm,使用默认参数
success = gripper.set_position_sync(30)

# 同步设置夹爪位置为 70mm,指定参数(符合最新范围)
success = gripper.set_position_sync(
    position=70,          # 在 (0, 85) 范围内
    vmax=250,             # 在 (0, 350) 范围内(高于原示例,体现新上限)
    fmax=50,              # 在 (0, 60) 范围内(高于原示例,体现新上限)
    tolerance=0.02,
    timeout=8.0,
    poll_interval=0.04
)
# 错误示例:力参数超出范围(体现最新上限60N)
try:
    gripper.set_position_sync(40, fmax=70)  # 70N 超过最大 60N 限制
except ValueError as e:
    print(e)