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()
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
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()
def publish_feedback(self, goal_id): feedback = Fibonacci.Feedback() feedback.action_goal_id = goal_id self.feedback_pub.publish(feedback)