Skip to content

Commit ba72640

Browse files
authored
Merge pull request #6 from kinisi-robotics/hotfix/reduce_wait_until_executed_time_waiting
Hotfix/reduce wait until executed time waiting
2 parents 487e739 + 39c7816 commit ba72640

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

pymoveit2/moveit2.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def __init__(
154154
self.motion_suceeded = False
155155
self.__execution_goal_handle = None
156156
self.__last_error_code = None
157-
self.__wait_until_executed_rate = self._node.create_rate(1000.0)
157+
self.__spin_wait_rate = self._node.create_rate(1000.0)
158158
self.__execution_mutex = threading.Lock()
159159

160160
# Event that enables waiting until async future is done
@@ -530,12 +530,11 @@ def plan(
530530
return None
531531

532532
# 10ms sleep - much faster polling to avoid 1-second delays
533-
rate = self._node.create_rate(100) # 100Hz = 10ms
534533
while not future.done():
535534
rclpy.spin_once(
536535
self._node, timeout_sec=0.01
537536
) # 10ms timeout instead of 1 second
538-
rate.sleep()
537+
self.__spin_wait_rate.sleep()
539538

540539
return self.get_trajectory(
541540
future,
@@ -773,7 +772,8 @@ def wait_until_executed(self) -> bool:
773772
return False
774773

775774
while self.__is_motion_requested or self.__is_executing:
776-
rclpy.spin_once(self._node, timeout_sec=1.0)
775+
rclpy.spin_once(self._node, timeout_sec=0.01)
776+
self.__spin_wait_rate.sleep()
777777

778778
return self.motion_suceeded
779779

@@ -1216,10 +1216,9 @@ def compute_fk(
12161216
if future is None:
12171217
return None
12181218

1219-
# 100ms sleep
1220-
rate = self._node.create_rate(10)
12211219
while not future.done():
1222-
rclpy.spin_once(self._node, timeout_sec=1.0)
1220+
rclpy.spin_once(self._node, timeout_sec=0.01)
1221+
self.__spin_wait_rate.sleep()
12231222

12241223
return self.get_compute_fk_result(future, fk_link_names=fk_link_names)
12251224

@@ -1310,10 +1309,9 @@ def compute_ik(
13101309
if future is None:
13111310
return None
13121311

1313-
# 10ms sleep
1314-
rate = self._node.create_rate(10)
13151312
while not future.done():
1316-
rclpy.spin_once(self._node, timeout_sec=1.0)
1313+
rclpy.spin_once(self._node, timeout_sec=0.01)
1314+
self.__spin_wait_rate.sleep()
13171315

13181316
return self.get_compute_ik_result(future)
13191317

0 commit comments

Comments
 (0)