mode 方法

XenseGripper 支持三种控制模式,可通过 mode 方法(上下文管理器)或 enable_mode/disable_mode 方法切换:

  • POSITION: 位置控制模式 (默认),精确控制夹爪到达指定位置

  • SPEED: 速度控制模式,按设定速度驱动夹爪运动

  • SAFE: 安全控制模式 (需要传感器),结合力反馈实现安全操作

XenseGripper.mode(self, control_mode, serial_number=None)

上下文管理器,用于临时切换夹爪控制模式,退出上下文时自动恢复原模式(推荐使用)。 通过 with 语句使用该方法,可确保模式在代码块执行完毕后自动重置,避免模式残留导致的异常。

参数:
  • control_mode (XenseGripper.ControlMode) -- 控制模式枚举值 XenseGripper.ControlMode.POSITION: 位置控制模式 XenseGripper.ControlMode.SPEED: 速度控制模式 XenseGripper.ControlMode.SAFE: 安全控制模式

  • serial_number (str) -- 传感器序列号(仅安全模式需要,默认使用第一个扫描到的传感器)

返回:

上下文管理器对象,用于 with 语句块中临时切换模式

返回类型:

context manager

XenseGripper.enable_mode(self, control_mode, serial_number=None)

手动启用指定的控制模式

参数:
  • control_mode (XenseGripper.ControlMode) -- 控制模式枚举值(同 mode 方法)

  • serial_number (str) -- 传感器序列号(仅安全模式需要)

返回:

操作是否成功

返回类型:

bool

XenseGripper.disable_mode(self)

手动禁用当前控制模式,自动恢复到默认模式并停止动作

返回:

操作是否成功

返回类型:

bool

示例代码

  1. 位置控制模式(默认模式,无需手动切换)

from xensegripper import XenseGripper

gripper = XenseGripper.create(mac_addr="9a14e81bb832")
gripper.set_position(30)  # 直接设置位置(默认在 POSITION 模式)
  1. 速度控制模式

# 使用上下文管理器 (推荐)
with gripper.mode(XenseGripper.ControlMode.SPEED):
    gripper.set_speed(50)   # 设置速度 50 mm/s
    time.sleep(2)
    gripper.set_speed(0)    # 停止

# 手动模式切换
gripper.enable_mode(XenseGripper.ControlMode.SPEED)
gripper.set_speed(30)
gripper.disable_mode()  # 自动停止并恢复原模式
  1. 安全控制模式 (需要传感器)

# 使用上下文管理器 (推荐)
# 可指定传感器序列号,默认使用扫描到的第一个传感器
with gripper.mode(XenseGripper.ControlMode.SAFE, serial_number=None):
    # 设置控制参数 (可选,刚度范围 0.1~0.6)
    gripper.set_control_param(stiffness=0.35)

    # 位置控制 (带力反馈保护)
    gripper.set_position(20)

# 手动模式切换
gripper.enable_mode(XenseGripper.ControlMode.SAFE, serial_number="OG000285")
gripper.set_control_param(stiffness=0.4)
gripper.set_position(15)
gripper.disable_mode()  # 自动停止并恢复原模式