diff --git a/task_manager/params/task_manager_defaults.yaml b/task_manager/params/task_manager_defaults.yaml index b8e10d9..d1508b4 100644 --- a/task_manager/params/task_manager_defaults.yaml +++ b/task_manager/params/task_manager_defaults.yaml @@ -2,3 +2,4 @@ task_manager: ros__parameters: tasks: [] enable_task_servers: False + default_task_timeout: 5.0 diff --git a/task_manager/task_manager/task_manager_node.py b/task_manager/task_manager/task_manager_node.py index f4671e0..c2c066e 100755 --- a/task_manager/task_manager/task_manager_node.py +++ b/task_manager/task_manager/task_manager_node.py @@ -59,6 +59,7 @@ class TaskManager(Node): def __init__(self, active_tasks: ActiveTasks, parameter_overrides=None) -> None: super().__init__("task_manager", parameter_overrides=parameter_overrides) + self._default_cancel_timeout = self.declare_parameter("default_cancel_timeout", 5.0).value qos = QoSProfile( depth=10, reliability=QoSReliabilityPolicy.RELIABLE, durability=QoSDurabilityPolicy.TRANSIENT_LOCAL ) @@ -122,7 +123,7 @@ def declare_tasks(self): msg_interface=msg_interface, task_server_type=detect_task_server_type(msg_interface), service_success_field=service_success_field, - cancel_timeout=self.declare_parameter(f"{task}.cancel_timeout", 5.0).value, + cancel_timeout=self.declare_parameter(f"{task}.cancel_timeout", self._default_cancel_timeout).value, ) self.known_tasks[task_specs.task_name] = task_specs diff --git a/task_manager/task_manager/task_registrator.py b/task_manager/task_manager/task_registrator.py index 032efe4..e3112f3 100644 --- a/task_manager/task_manager/task_registrator.py +++ b/task_manager/task_manager/task_registrator.py @@ -151,7 +151,7 @@ def _cancel_task_of_same_type(self, task_name: str) -> None: try: task_client.cancel_task() except CancelTaskFailedError as e: - raise TaskStartError("Failed to cancel previous task of same type.") from e + raise TaskStartError(f"Failed to cancel previous task of same type ({task_name}).") from e def _cancel_active_blocking_task(self) -> None: """Cancels the active blocking task if one is running.