Skip to content

Commit 2c78552

Browse files
authored
Merge pull request #116 from elephantrobotics/mycobot_280_refactor
Mycobot 280 refactor
2 parents 9764f4b + 8c3950f commit 2c78552

File tree

4 files changed

+92
-26
lines changed

4 files changed

+92
-26
lines changed

pymycobot/common.py

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,32 +30,33 @@ class MyHandGripper(object):
3030
GET_HAND_MINOR_FIRMWARE_VERSION = 2
3131
SET_HAND_GRIPPER_ID = 3
3232
GET_HAND_GRIPPER_ID = 4
33-
SET_HAND_GRIPPER_ENABLED = 10
34-
SET_HAND_GRIPPER_ANGLE = 11
35-
GET_HAND_GRIPPER_ANGLE = 12
36-
SET_HAND_GRIPPER_CALIBRATION = 13
37-
GET_HAND_GRIPPER_STATUS = 14
38-
SET_HAND_GRIPPER_P = 15
39-
GET_HAND_GRIPPER_P = 16
40-
SET_HAND_GRIPPER_D = 17
41-
GET_HAND_GRIPPER_D = 18
42-
SET_HAND_GRIPPER_I = 19
43-
GET_HAND_GRIPPER_I = 20
44-
SET_HAND_GRIPPER_CLOCKWISE = 21
45-
GET_HAND_GRIPPER_CLOCKWISE = 22
46-
SET_HAND_GRIPPER_COUNTERCLOCKWISE = 23
47-
GET_HAND_GRIPPER_COUNTERCLOCKWISE = 24
48-
SET_HAND_GRIPPER_MIN_PRESSURE = 25
49-
GET_HAND_GRIPPER_MIN_PRESSURE = 26
50-
SET_HAND_GRIPPER_TORQUE = 27
51-
GET_HAND_GRIPPER_TORQUE = 28
52-
SET_HAND_GRIPPER_SPEED = 32
53-
GET_HAND_GRIPPER_DEFAULT_SPEED = 33
54-
SET_HAND_GRIPPER_ANGLES = 45
55-
GET_HAND_SINGLE_PRESSURE_SENSOR = 46
56-
GET_HAND_ALL_PRESSURE_SENSOR = 47
57-
GET_HAND_ALL_ANGLES = 50
58-
SET_HAND_GRIPPER_PINCH_ACTION = 51
33+
SET_HAND_GRIPPER_ENABLED = 0x0A
34+
SET_HAND_GRIPPER_ANGLE = 0x0B
35+
GET_HAND_GRIPPER_ANGLE = 0x0C
36+
SET_HAND_GRIPPER_CALIBRATION = 0x0D
37+
GET_HAND_GRIPPER_STATUS = 0x0E
38+
SET_HAND_GRIPPER_P = 0x0F
39+
GET_HAND_GRIPPER_P = 0x10
40+
SET_HAND_GRIPPER_D = 0x11
41+
GET_HAND_GRIPPER_D = 0x12
42+
SET_HAND_GRIPPER_I = 0x13
43+
GET_HAND_GRIPPER_I = 0x14
44+
SET_HAND_GRIPPER_CLOCKWISE = 0x15
45+
GET_HAND_GRIPPER_CLOCKWISE = 0x16
46+
SET_HAND_GRIPPER_COUNTERCLOCKWISE = 0x17
47+
GET_HAND_GRIPPER_COUNTERCLOCKWISE = 0x18
48+
SET_HAND_GRIPPER_MIN_PRESSURE = 0x19
49+
GET_HAND_GRIPPER_MIN_PRESSURE = 0x1A
50+
SET_HAND_GRIPPER_TORQUE = 0x1B
51+
GET_HAND_GRIPPER_TORQUE = 0x1C
52+
SET_HAND_GRIPPER_SPEED = 0x20
53+
GET_HAND_GRIPPER_DEFAULT_SPEED = 0x21
54+
SET_HAND_GRIPPER_ANGLES = 0x2D
55+
GET_HAND_SINGLE_PRESSURE_SENSOR = 0x2E
56+
GET_HAND_ALL_PRESSURE_SENSOR = 0x2F
57+
GET_HAND_ALL_ANGLES = 0x32
58+
SET_HAND_GRIPPER_PINCH_ACTION = 0x33
59+
SET_HAND_GRIPPER_PINCH_ACTION_SPEED_CONSORT = 0x34
5960

6061

6162
class ProtocolCode(object):

pymycobot/error.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,15 @@ def calibration_parameters(**kwargs):
949949
raise MyCobot320DataException(
950950
"The range of 'value' in {} is 0 ~ 150, but the received value is {}".format(parameter,
951951
value))
952+
elif parameter == 'pinch_pose':
953+
check_0_or_1(parameter, value, [0, 1, 2, 3, 4], value_type, MyCobot320DataException, int)
954+
955+
elif parameter == 'rank_mode':
956+
check_0_or_1(parameter, value, [0, 1, 2, 3, 4, 5], value_type, MyCobot320DataException, int)
957+
958+
elif parameter == 'idle_flag':
959+
check_0_or_1(parameter, value, [0, 1, 2, 3, 4], value_type, MyCobot320DataException, int)
960+
952961
elif class_name in ["MechArm", "MechArmSocket"]:
953962
public_check(parameter_list, kwargs, robot_limit, class_name, MechArmDataException)
954963
elif class_name in ["MechArm270", "MechArmSocket"]:

pymycobot/mycobot320.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,34 @@ def get_reboot_count(self):
12141214
"""
12151215
return self._mesg(ProtocolCode.GET_REBOOT_COUNT, has_reply=True)
12161216

1217+
def set_hand_gripper_pinch_action_speed_consort(self, gripper_id, pinch_pose, rank_mode, idle_flag=None):
1218+
""" Setting the gripper pinching action-speed coordination
1219+
1220+
Args:
1221+
gripper_id (int): 1 ~ 254
1222+
pinch_pose (int): 0 ~ 4
1223+
0: All joints return to zero
1224+
1: Index finger and thumb pinch together
1225+
2: Middle finger and thumb pinch together
1226+
3: Index finger and middle finger pinch together
1227+
4: Three fingers together
1228+
rank_mode (int): 0 ~ 5
1229+
The degree of closure,the higher the level, the more closed
1230+
idle_flag (int): default None, 0 ~ 4
1231+
Idle flag. By default, there is no such byte. When this byte is 1, the idle finger can be freely manipulated.
1232+
1233+
"""
1234+
if idle_flag is None:
1235+
self.calibration_parameters(class_name=self.__class__.__name__, gripper_id=gripper_id,
1236+
pinch_pose=pinch_pose, rank_mode=rank_mode)
1237+
return self._mesg(ProtocolCode.SET_TOQUE_GRIPPER, gripper_id,
1238+
[MyHandGripper.SET_HAND_GRIPPER_PINCH_ACTION_SPEED_CONSORT], pinch_pose, rank_mode)
1239+
else:
1240+
self.calibration_parameters(class_name=self.__class__.__name__, gripper_id=gripper_id,
1241+
pinch_pose=pinch_pose, rank_mode=rank_mode, idle_flag=idle_flag)
1242+
return self._mesg(ProtocolCode.SET_TOQUE_GRIPPER, gripper_id,
1243+
[MyHandGripper.SET_HAND_GRIPPER_PINCH_ACTION_SPEED_CONSORT], pinch_pose, rank_mode, idle_flag)
1244+
12171245
# Other
12181246
def wait(self, t):
12191247
time.sleep(t)

pymycobot/mycobot320socket.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,6 +1244,34 @@ def get_reboot_count(self):
12441244
"""
12451245
return self._mesg(ProtocolCode.GET_REBOOT_COUNT, has_reply=True)
12461246

1247+
def set_hand_gripper_pinch_action_speed_consort(self, gripper_id, pinch_pose, rank_mode, idle_flag=None):
1248+
""" Setting the gripper pinching action-speed coordination
1249+
1250+
Args:
1251+
gripper_id (int): 1 ~ 254
1252+
pinch_pose (int): 0 ~ 4
1253+
0: All joints return to zero
1254+
1: Index finger and thumb pinch together
1255+
2: Middle finger and thumb pinch together
1256+
3: Index finger and middle finger pinch together
1257+
4: Three fingers together
1258+
rank_mode (int): 0 ~ 5
1259+
The degree of closure,the higher the level, the more closed
1260+
idle_flag (int): default None, 0 ~ 4
1261+
Idle flag. By default, there is no such byte. When this byte is 1, the idle finger can be freely manipulated.
1262+
1263+
"""
1264+
if idle_flag is None:
1265+
self.calibration_parameters(class_name=self.__class__.__name__, gripper_id=gripper_id,
1266+
pinch_pose=pinch_pose, rank_mode=rank_mode)
1267+
return self._mesg(ProtocolCode.SET_TOQUE_GRIPPER, gripper_id,
1268+
[MyHandGripper.SET_HAND_GRIPPER_PINCH_ACTION_SPEED_CONSORT], pinch_pose, rank_mode)
1269+
else:
1270+
self.calibration_parameters(class_name=self.__class__.__name__, gripper_id=gripper_id,
1271+
pinch_pose=pinch_pose, rank_mode=rank_mode, idle_flag=idle_flag)
1272+
return self._mesg(ProtocolCode.SET_TOQUE_GRIPPER, gripper_id,
1273+
[MyHandGripper.SET_HAND_GRIPPER_PINCH_ACTION_SPEED_CONSORT], pinch_pose, rank_mode, idle_flag)
1274+
12471275
# Other
12481276
def wait(self, t):
12491277
time.sleep(t)

0 commit comments

Comments
 (0)