100 const std::vector<geometry_msgs::msg::PoseStamped> & poses,
101 const std::string & ns =
"trajectory")
106 getLogger(),
"[CpTrajectoryVisualizer] Setting trajectory with %lu poses", poses.size());
112 RCLCPP_WARN(
getLogger(),
"[CpTrajectoryVisualizer] Empty trajectory provided");
118 for (
size_t i = 0; i < poses.size(); ++i)
120 visualization_msgs::msg::Marker marker;
121 marker.header = poses[i].header;
123 marker.id =
static_cast<int>(i);
124 marker.type = visualization_msgs::msg::Marker::SPHERE;
125 marker.action = visualization_msgs::msg::Marker::ADD;
127 marker.pose = poses[i].pose;
142 if (poses.size() > 1)
144 visualization_msgs::msg::Marker lineMarker;
145 lineMarker.header = poses[0].header;
146 lineMarker.ns = ns +
"_path";
147 lineMarker.id =
static_cast<int>(poses.size());
148 lineMarker.type = visualization_msgs::msg::Marker::LINE_STRIP;
149 lineMarker.action = visualization_msgs::msg::Marker::ADD;
158 for (
const auto & pose : poses)
160 lineMarker.points.push_back(pose.pose.position);
163 markers_.markers.push_back(lineMarker);
170 getLogger(),
"[CpTrajectoryVisualizer] Created %lu markers",
markers_.markers.size());