@1540302317 你好,我尝试了你的方法,确实可以调用成功。我之前尝试是没有在要修改的配置文件中添加<Sequence> 标签,导致文件配置失败。行为树这里我也不是很懂,照猫画虎😥 ,
我这里还有个邪修的方法,路径平滑是一个动作服务端,我就自己写了个动作客户端,在路径那里进行调用,达到优化的目的。

// 创建动作客户端 client_ = rclcpp_action::create_client<SmoothPath>(node_, "smooth_path"); void sendGoal(const nav_msgs::msg::Path &input_path) { RCLCPP_INFO(node_->get_logger(), "发送路径给平滑器..."); auto goal = SmoothPath::Goal(); goal.path = input_path; auto send_goal_options = rclcpp_action::Client<SmoothPath>::SendGoalOptions(); send_goal_options.result_callback = [this](const GoalHandle::WrappedResult &result) { switch (result.code) { case rclcpp_action::ResultCode::SUCCEEDED: RCLCPP_INFO(node_->get_logger(), "路径平滑成功!"); savePath(result.result->path, path_d_data_); break; case rclcpp_action::ResultCode::ABORTED: RCLCPP_ERROR(node_->get_logger(), "路径平滑被中止"); break; case rclcpp_action::ResultCode::CANCELED: RCLCPP_WARN(node_->get_logger(), "路径平滑被取消"); break; default: RCLCPP_ERROR(node_->get_logger(), "未知错误"); break; } }; client_->async_send_goal(goal, send_goal_options); }

期待继续交流!