#pragma once #include #include "device/motor_rm.h" namespace arm { enum class GripperState : uint8_t { OPENING = 0, OPEN_HOLD, CLOSING, PRELOAD, CLOSE_HOLD, FAULT, }; // 调试变量与可调参数,保留为全局便于Watch实时观察/修改。 extern GripperState gripper_state_dbg; extern bool gripper_target_close; extern float gripper_output_dbg; // 夹爪输出(MOTOR_RM_SetOutput 归一化范围:[-1, 1]) extern float gripper_out_open; extern float gripper_out_close_fast; extern float gripper_out_preload; extern float gripper_out_hold; extern float gripper_out_boost; // 接触/防滑判据 extern float gripper_contact_current_th; extern float gripper_contact_speed_th; extern float gripper_slip_speed_th; extern uint16_t gripper_contact_debounce_ms; extern uint16_t gripper_preload_ms; extern uint16_t gripper_boost_ms; extern uint16_t gripper_open_timeout_ms; extern uint16_t gripper_close_timeout_ms; int8_t Gripper_Init(const MOTOR_RM_Param_t& param); void Gripper_Step(bool target_close); } // namespace arm