@@ -674,6 +674,61 @@ def set_vision_mode(self, flag):
674674 self .calibration_parameters (class_name = self .__class__ .__name__ , flag = flag )
675675 return self ._mesg (ProtocolCode .SET_VISION_MODE , flag )
676676
677+ def is_torque_gripper (self ):
678+ """Whether it is a force-controlled gripper
679+
680+ Return:
681+ 1 - Force control
682+ 0 - Non-force control
683+ """
684+ return self .get_servo_data (7 , 1 )
685+
686+ def set_gripper_state (self , flag , speed , _type_1 = None , is_torque = None ):
687+ """Set gripper switch state
688+
689+ Args:
690+ flag (int): 0 - open, 1 - close, 254 - release
691+ speed (int): 1 ~ 100
692+ _type_1 (int): default 1
693+ 1 : Adaptive gripper. default to adaptive gripper
694+ 2 : 5 finger dexterous hand
695+ 3 : Parallel gripper, this parameter can be omitted
696+ 4 : Flexible gripper
697+ is_torque (int): When there is no type parameter, this parameter can be omitted.
698+ 1: Force control
699+ 0: Non-force control
700+ """
701+ self .calibration_parameters (class_name = self .__class__ .__name__ , flag = flag , speed = speed , _type_1 = _type_1 , is_torque = is_torque )
702+ args = [flag , speed ]
703+ if _type_1 is not None :
704+ args .append (_type_1 )
705+ if is_torque is not None :
706+ args .append (is_torque )
707+ return self ._mesg (ProtocolCode .SET_GRIPPER_STATE , * args )
708+
709+ def set_gripper_value (self , gripper_value , speed , gripper_type = None , is_torque = None ):
710+ """Set gripper value
711+
712+ Args:
713+ gripper_value (int): 0 ~ 100
714+ speed (int): 1 ~ 100
715+ gripper_type (int): default 1
716+ 1: Adaptive gripper
717+ 3: Parallel gripper, this parameter can be omitted
718+ 4: Flexible gripper
719+ is_torque (int): When there is no type parameter, this parameter can be omitted.
720+ 1: Force control
721+ 0: Non-force control
722+ """
723+ self .calibration_parameters (class_name = self .__class__ .__name__ , gripper_value = gripper_value , speed = speed ,
724+ gripper_type = gripper_type , is_torque = is_torque )
725+ args = [gripper_value , speed ]
726+ if gripper_type is not None :
727+ args .append (gripper_type )
728+ if is_torque is not None :
729+ args .append (is_torque )
730+ return self ._mesg (ProtocolCode .SET_GRIPPER_VALUE , * args , has_reply = True )
731+
677732 # Other
678733 def wait (self , t ):
679734 time .sleep (t )
0 commit comments