From 7c1b64a971dc3cf06817b1e4f979cdb20671df2b Mon Sep 17 00:00:00 2001 From: lunarifish Date: Sun, 31 May 2026 14:57:29 +0800 Subject: [PATCH 1/2] fix: solution sent by "Execute solution" button on Motion Planning Tasks panel is missing execution info --- .../include/moveit/visualization_tools/display_solution.h | 5 +++++ visualization/visualization_tools/src/display_solution.cpp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h b/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h index 7f8cd2980..38f5d6c46 100644 --- a/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h +++ b/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h @@ -37,6 +37,7 @@ #pragma once #include +#include #include namespace moveit { @@ -82,6 +83,10 @@ class DisplaySolution std::string comment_; /// id of creating stage uint32_t creator_id_; + /// solution info (stage_id, markers, etc.) + moveit_task_constructor_msgs::msg::SolutionInfo info_; + /// trajectory execution info (controller_names, etc.) + moveit_task_constructor_msgs::msg::TrajectoryExecutionInfo execution_info_; /// rviz markers MarkerVisualizationPtr markers_; }; diff --git a/visualization/visualization_tools/src/display_solution.cpp b/visualization/visualization_tools/src/display_solution.cpp index b9f2994f5..2b0940ef8 100644 --- a/visualization/visualization_tools/src/display_solution.cpp +++ b/visualization/visualization_tools/src/display_solution.cpp @@ -112,6 +112,8 @@ void DisplaySolution::setFromMessage(const planning_scene::PlanningScenePtr& sta sub.trajectory.multi_dof_joint_trajectory.joint_names.end()); data_[i].comment_ = sub.info.comment; data_[i].creator_id_ = sub.info.stage_id; + data_[i].info_ = sub.info; + data_[i].execution_info_ = sub.execution_info; steps_ += data_[i].trajectory_->getWayPointCount(); ref_scene->setPlanningSceneDiffMsg(sub.scene_diff); @@ -133,6 +135,8 @@ void DisplaySolution::fillMessage(moveit_task_constructor_msgs::msg::Solution& m msg.sub_trajectory.resize(data_.size()); auto traj_it = msg.sub_trajectory.begin(); for (const auto& sub : data_) { + traj_it->info = sub.info_; + traj_it->execution_info = sub.execution_info_; sub.scene_->getPlanningSceneDiffMsg(traj_it->scene_diff); sub.trajectory_->getRobotTrajectoryMsg(traj_it->trajectory, sub.joints_); ++traj_it; From 6fc5b057fec6741c192646c39c393f2f74371847 Mon Sep 17 00:00:00 2001 From: lunarifish Date: Tue, 9 Jun 2026 22:43:10 +0800 Subject: [PATCH 2/2] Remove SolutionInfo field from DisplaySolution to reduce memory footprint --- .../include/moveit/visualization_tools/display_solution.h | 2 -- visualization/visualization_tools/src/display_solution.cpp | 2 -- 2 files changed, 4 deletions(-) diff --git a/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h b/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h index 38f5d6c46..f4f9fc29d 100644 --- a/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h +++ b/visualization/visualization_tools/include/moveit/visualization_tools/display_solution.h @@ -83,8 +83,6 @@ class DisplaySolution std::string comment_; /// id of creating stage uint32_t creator_id_; - /// solution info (stage_id, markers, etc.) - moveit_task_constructor_msgs::msg::SolutionInfo info_; /// trajectory execution info (controller_names, etc.) moveit_task_constructor_msgs::msg::TrajectoryExecutionInfo execution_info_; /// rviz markers diff --git a/visualization/visualization_tools/src/display_solution.cpp b/visualization/visualization_tools/src/display_solution.cpp index 2b0940ef8..6c639faee 100644 --- a/visualization/visualization_tools/src/display_solution.cpp +++ b/visualization/visualization_tools/src/display_solution.cpp @@ -112,7 +112,6 @@ void DisplaySolution::setFromMessage(const planning_scene::PlanningScenePtr& sta sub.trajectory.multi_dof_joint_trajectory.joint_names.end()); data_[i].comment_ = sub.info.comment; data_[i].creator_id_ = sub.info.stage_id; - data_[i].info_ = sub.info; data_[i].execution_info_ = sub.execution_info; steps_ += data_[i].trajectory_->getWayPointCount(); @@ -135,7 +134,6 @@ void DisplaySolution::fillMessage(moveit_task_constructor_msgs::msg::Solution& m msg.sub_trajectory.resize(data_.size()); auto traj_it = msg.sub_trajectory.begin(); for (const auto& sub : data_) { - traj_it->info = sub.info_; traj_it->execution_info = sub.execution_info_; sub.scene_->getPlanningSceneDiffMsg(traj_it->scene_diff); sub.trajectory_->getRobotTrajectoryMsg(traj_it->trajectory, sub.joints_);