@@ -71,9 +71,7 @@ def _is_out_of_joint_range(self, angle, i):
71
71
return True
72
72
return False
73
73
74
- def __wait_sync (self , relative = False ):
75
- if not relative :
76
- return 0
74
+ def __wait_sync (self ):
77
75
while not self ._is_sync or self ._need_sync :
78
76
if not self .connected :
79
77
return APIState .NOT_CONNECTED
@@ -195,9 +193,6 @@ def _set_position_relative(self, x=None, y=None, z=None, roll=None, pitch=None,
195
193
self .__update_tcp_motion_params (spd , acc , mvt )
196
194
return ret [0 ]
197
195
else :
198
- code = self .__wait_sync (True )
199
- if code != 0 :
200
- return code
201
196
# use absolute api
202
197
tcp_pos = [
203
198
self ._last_position [0 ] if x is None else (self ._last_position [0 ] + float (x )),
@@ -219,6 +214,9 @@ def set_position(self, x=None, y=None, z=None, roll=None, pitch=None, yaw=None,
219
214
only_check_type = kwargs .get ('only_check_type' , self ._only_check_type )
220
215
if only_check_type > 0 and wait :
221
216
self .wait_move (timeout = timeout )
217
+ code = self .__wait_sync ()
218
+ if code != 0 :
219
+ return code
222
220
if relative :
223
221
return self ._set_position_relative (x = x , y = y , z = z , roll = roll , pitch = pitch , yaw = yaw , radius = radius ,
224
222
speed = speed , mvacc = mvacc , mvtime = mvtime , is_radian = is_radian ,
@@ -396,9 +394,6 @@ def _set_servo_angle_relative(self, angles, speed=None, mvacc=None, mvtime=None,
396
394
self .__update_joint_motion_params (spd , acc , mvt )
397
395
return ret [0 ]
398
396
else :
399
- code = self .__wait_sync (True )
400
- if code != 0 :
401
- return code
402
397
# use absolute api
403
398
joints = self ._last_angles .copy ()
404
399
for i in range (min (len (self ._last_angles ), len (angles ))):
@@ -428,6 +423,9 @@ def set_servo_angle(self, servo_id=None, angle=None, speed=None, mvacc=None, mvt
428
423
only_check_type = kwargs .get ('only_check_type' , self ._only_check_type )
429
424
if only_check_type > 0 and wait :
430
425
self .wait_move (timeout = timeout )
426
+ code = self .__wait_sync ()
427
+ if code != 0 :
428
+ return code
431
429
if relative :
432
430
return self ._set_servo_angle_relative (angles , speed = speed , mvacc = mvacc , mvtime = mvtime , is_radian = is_radian ,
433
431
wait = wait , timeout = timeout , radius = radius , ** kwargs )
0 commit comments