diff --git a/nav2_lifecycle_manager/src/lifecycle_manager.cpp b/nav2_lifecycle_manager/src/lifecycle_manager.cpp index 7022681e6fa..8474969f8a4 100644 --- a/nav2_lifecycle_manager/src/lifecycle_manager.cpp +++ b/nav2_lifecycle_manager/src/lifecycle_manager.cpp @@ -77,15 +77,20 @@ LifecycleManager::LifecycleManager(const rclcpp::NodeOptions & options) std::string("Shutting down "); init_timer_ = this->create_wall_timer( - std::chrono::nanoseconds(10), + 0s, [this]() -> void { init_timer_->cancel(); createLifecycleServiceClients(); if (autostart_) { - startup(); + init_timer_ = this->create_wall_timer( + 0s, + [this]() -> void { + init_timer_->cancel(); + startup(); + }, + callback_group_); } - }, - callback_group_); + }); auto executor = std::make_shared(); executor->add_callback_group(callback_group_, get_node_base_interface()); service_thread_ = std::make_unique(executor);