Пример, приведенный в учебнике , показывает добавление к узлу одного действия:
import rclpy
from rclpy.action import ActionServer
from rclpy.node import Node
from action_tutorials.action import Fibonacci
class FibonacciActionServer(Node):
def __init__(self):
super().__init__('fibonacci_action_server')
self._action_server = ActionServer(self, Fibonacci, 'fibonacci', self.execute_callback)
def execute_callback(self, goal_handle):
self.get_logger().info('Executing goal...')
return Fibonacci.Result()
Как создать узел, который предлагает несколько действий, например, fibonacci
и add integers
?
Это легко, если я использую службы, например:
self.create_service(Fibonacci, 'fibonacci', self.fibonacci_callback)
self.create_service(AddInts, 'add_integers', self.add_integers_callback)
Добавит службы fibonacci
и add_integers
к узлу. Как бы я это сделал, если бы хотел, чтобы их можно было отменить и запросить ход выполнения? (т.е. действия)