Example #1
0
 def execute_with_feedback(goal_handle):
     try:
         goal_handle.publish_feedback('different feedback type')
     except TypeError:
         feedback = Fibonacci.Feedback()
         feedback.sequence = [1, 1, 2, 3]
         goal_handle.publish_feedback(feedback)
     goal_handle.succeed()
     return Fibonacci.Result()
Example #2
0
    def execute_callback(self, goal_handle):
        feedback = Fibonacci.Feedback()
        feedback.sequence = [0, 1]

        for i in range(1, goal_handle.request.order):
            feedback.sequence.append(feedback.sequence[i] + feedback.sequence[i-1])
            goal_handle.publish_feedback(feedback)

        goal_handle.succeed()

        result = Fibonacci.Result()
        result.sequence = feedback.sequence
        return result
    def execute_goal(goal_handle):
        goal = goal_handle.request

        feedback = Fibonacci.Feedback()
        feedback.sequence = [0, 1]

        for i in range(1, goal.order):
            if not rclpy.ok():
                goal_handle.set_aborted()
                return Fibonacci.Result()

            # Check if the goal was canceled
            if goal_handle.is_cancel_requested:
                goal_handle.set_canceled()
                result = Fibonacci.Result()
                result.sequence = feedback.sequence
                print('Goal was canceled')
                return result

            # Update the sequence.
            feedback.sequence.append(feedback.sequence[i] +
                                     feedback.sequence[i - 1])

            # Publish feedback
            goal_handle.publish_feedback(feedback)
            print('Publishing feedback')

            # 10 Hz update rate
            time.sleep(0.1)

        # Send final result
        result = Fibonacci.Result()
        result.sequence = feedback.sequence
        goal_handle.set_succeeded()
        print('Goal succeeded')
        return result
Example #4
0
 def execute_with_feedback(goal_handle):
     feedback = Fibonacci.Feedback()
     feedback.sequence = [1, 1, 2, 3]
     goal_handle.publish_feedback(feedback)
     goal_handle.succeed()
     return Fibonacci.Result()
Example #5
0
 def publish_feedback(self, goal_id):
     feedback = Fibonacci.Feedback()
     feedback.action_goal_id = goal_id
     self.feedback_pub.publish(feedback)