ROS2 action execute callback never exits

asked 2019-05-20 04:11:55 -0500

SkandaNR gravatar image

updated 2019-05-20 06:44:05 -0500

gvdhoorn gravatar image

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?

edit retag flag offensive close merge delete