1
1
# coding=utf-8
2
+ from re import I
2
3
from pymycobot .common import ProtocolCode
3
4
from pymycobot .generate import MyCobotCommandGenerator
4
5
@@ -136,8 +137,8 @@ def set_fresh_mode(self, id, mode):
136
137
Args:
137
138
id: 1/2 (L/R).\n
138
139
mode: int
139
- 0 - Always execute the latest command first.
140
- 1 - Execute instructions sequentially in the form of a queue.
140
+ 1 - Always execute the latest command first.
141
+ 0 - Execute instructions sequentially in the form of a queue.
141
142
"""
142
143
return self ._mesg (ProtocolCode .SET_FRESH_MODE , id , mode )
143
144
@@ -157,7 +158,8 @@ def is_free_mode(self, id):
157
158
id: 0/1/2/3 (ALL/L/R/W)
158
159
159
160
Return:
160
- 0/1
161
+ 0 - No
162
+ 1 - Yes
161
163
"""
162
164
return self ._process_single (
163
165
self ._mesg (ProtocolCode .IS_FREE_MODE , id , has_reply = True )
@@ -293,12 +295,12 @@ def stop(self, id):
293
295
"""
294
296
return self ._mesg (ProtocolCode .STOP , id )
295
297
296
- def is_in_position (self , id , data , mode ): # TODO 通信协议可能有问题,待完善
298
+ def is_in_position (self , id , data : list , mode ): # TODO 通信协议可能有问题,待完善
297
299
"""Judge whether in the position.
298
300
299
301
Args:
300
302
id: 0/1/2/3 (ALL/L/R/W).
301
- data: A data list, angles or coords. If id is 1/2. data length is 6. If id is 0. data len 13. if id is 3. data len 1
303
+ data: A data list, angles or coords. If id is 1/2. data length is 6. If id is 0. data len 13 (data==[[left_angles/left_coords],[right_angles/right_coords],[waist_angle/waist_coord]]) . if id is 3. data len 1
302
304
mode: 1 - coords, 0 - angles
303
305
304
306
@@ -307,20 +309,45 @@ def is_in_position(self, id, data, mode): # TODO 通信协议可能有问题,
307
309
0 - False
308
310
-1 - Error
309
311
"""
312
+ # TODO 22-8-2 need test
313
+ data_list = []
310
314
if mode == 1 :
311
- # self.calibration_parameters(coords=data)
312
- data_list = []
313
- for idx in range (3 ):
314
- data_list .append (self ._coord2int (data [idx ]))
315
- for idx in range (3 , 6 ):
316
- data_list .append (self ._angle2int (data [idx ]))
315
+ if len (data ) == 3 :
316
+ for i in data :
317
+ # if isinstance(i, list):
318
+ if len (i ) == 6 :
319
+ for idx in range (3 ):
320
+ data_list .append (self ._coord2int (i [idx ]))
321
+ for idx in range (3 , 6 ):
322
+ data_list .append (self ._angle2int (i [idx ]))
323
+ elif len (i ) == 1 :
324
+ data_list .append (self ._coord2int (i [0 ]))
325
+ elif len (data ) == 6 :
326
+ for idx in range (3 ):
327
+ data_list .append (self ._coord2int (data [idx ]))
328
+ for idx in range (3 , 6 ):
329
+ data_list .append (self ._angle2int (data [idx ]))
330
+ elif len (data ) == 1 :
331
+ data_list .append (self ._coord2int (data [0 ]))
317
332
elif mode == 0 :
318
333
# self.calibration_parameters(degrees=data)
319
- data_list = [self ._angle2int (i ) for i in data ]
334
+ if len (data ) == 3 :
335
+ for i in data :
336
+ # if isinstance(i, list):
337
+ if len (i ) == 6 :
338
+ for idx in range (6 ):
339
+ data_list .append (self ._angle2int (i [idx ]))
340
+ elif len (i ) == 1 :
341
+ data_list .append (self ._angle2int (i [0 ]))
342
+ elif len (data ) == 6 :
343
+ for idx in range (6 ):
344
+ data_list .append (self ._angle2int (data [idx ]))
345
+ elif len (data ) == 1 :
346
+ data_list .append (self ._angle2int (data [0 ]))
320
347
else :
321
348
raise Exception ("id is not right, please input 0 or 1" )
322
349
323
- return self ._mesg (ProtocolCode .IS_IN_POSITION , data_list , id , has_reply = True )
350
+ return self ._mesg (ProtocolCode .IS_IN_POSITION , id , data_list , mode , has_reply = True )
324
351
325
352
def is_moving (self , id ):
326
353
"""Detect if the robot is moving
@@ -462,7 +489,7 @@ def get_acceleration(self, id):
462
489
return self ._mesg (ProtocolCode .GET_ACCELERATION , id , has_reply = True )
463
490
464
491
def set_acceleration (self , id , acc ):
465
- """Read acceleration during all moves
492
+ """Set acceleration during all moves
466
493
467
494
Args:
468
495
id: 1/2/3 (L/R/W)
@@ -865,7 +892,7 @@ def get_plan_acceleration(self, id = 0):
865
892
id: 0/1/2/3 (ALL/L/R/W)
866
893
867
894
Return:
868
- [movel planning acceleration, movej planning acceleration] .
895
+ acceleration value .
869
896
"""
870
897
return self ._mesg (ProtocolCode .GET_PLAN_ACCELERATION , id , has_reply = True )
871
898
@@ -1038,7 +1065,12 @@ def collision_switch(self, state):
1038
1065
return self ._mesg (ProtocolCode .COLLISION_SWITCH , state )
1039
1066
1040
1067
def is_collision_on (self ):
1041
- """Get collision detection status"""
1068
+ """Get collision detection status
1069
+
1070
+ Args:
1071
+ 0 - close
1072
+ 1 - open
1073
+ """
1042
1074
return self ._mesg (ProtocolCode .IS_COLLISION_ON , 0 , has_reply = True )
1043
1075
1044
1076
0 commit comments