ROS2 action execute callback never exits
Hello, I am trying to implement ROS2 action client and server as given in the example repo: https://github.com/ros2/examples/tree... (server.py and client.py). Everything seems working but on the client side 'get_result_callback' is never getting called. On the server side, I am using the following function which does not exit execute callback.
async def execute_callback(self, goal_handle):
"""Executes a goal."""
self.get_logger().info('Executing goal...')
# Append the seeds for the Fibonacci sequence
feedback_msg = Fibonacci.Feedback()
feedback_msg.sequence = [0, 1]
# Start executing the action
for i in range(1, goal_handle.request.order):
if goal_handle.is_cancel_requested:
goal_handle.canceled()
self.get_logger().info('Goal canceled')
return Fibonacci.Result()
# Update Fibonacci sequence
feedback_msg.sequence.append(feedback_msg.sequence[i] + feedback_msg.sequence[i-1])
self.get_logger().info('Publishing feedback: {0}'.format(feedback_msg.sequence))
# Publish the feedback
goal_handle.publish_feedback(feedback_msg)
# Sleep for demonstration purposes
time.sleep(1)
print('before success')
goal_handle.succeed()
print('after success')
# Populate result message
result = Fibonacci.Result()
result.sequence = feedback_msg.sequence
self.get_logger().info('Returning result: {0}'.format(result.sequence))`
#Result
[INFO] [minimal_action_server]: Received goal request
[INFO] [minimal_action_server]: Executing goal...
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5, 8]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5, 8, 13]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5, 8, 13, 21]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
[INFO] [minimal_action_server]: Publishing feedback: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
before success
I have not changed anything in the code**
What could be the problem here?