Skip to content

Commit 16fccb3

Browse files
authored
perf(road_user_stop): reduce the number of published debug markers (#11865)
Signed-off-by: Maxime CLEMENT <maxime.clement@tier4.jp>
1 parent 573c5bd commit 16fccb3

File tree

1 file changed

+44
-57
lines changed
  • planning/motion_velocity_planner/autoware_motion_velocity_road_user_stop_module/src

1 file changed

+44
-57
lines changed

planning/motion_velocity_planner/autoware_motion_velocity_road_user_stop_module/src/debug.cpp

Lines changed: 44 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,16 @@ using autoware::universe_utils::createDefaultMarker;
3333

3434
void add_polygon_to_marker(Marker & marker, const Polygon2d & polygon, const double z = 0.0)
3535
{
36-
for (const auto & point : polygon.outer()) {
37-
Point p;
38-
p.x = point.x();
39-
p.y = point.y();
40-
p.z = z;
36+
Point p;
37+
p.z = z;
38+
boost::geometry::for_each_segment(polygon, [&](const auto & segment) {
39+
p.x = segment.first.x();
40+
p.y = segment.first.y();
4141
marker.points.push_back(p);
42-
}
43-
44-
// Close the polygon
45-
if (!marker.points.empty()) {
46-
marker.points.push_back(marker.points.front());
47-
}
42+
p.x = segment.second.x();
43+
p.y = segment.second.y();
44+
marker.points.push_back(p);
45+
});
4846
}
4947

5048
} // namespace
@@ -80,91 +78,80 @@ MarkerArray RoadUserStopModule::create_debug_marker_array() const
8078
if (!debug_data_.trajectory_polygons.empty()) {
8179
autoware_utils_debug::ScopedTimeTrack st_debug_marker(
8280
"create_debug_marker_array/trajectory_polygons", *time_keeper_);
83-
int traj_poly_id = 0;
84-
for (const auto & polygon : debug_data_.trajectory_polygons) {
85-
Marker traj_poly_marker = createDefaultMarker(
86-
"map", clock_->now(), "trajectory_polygons", traj_poly_id++, Marker::LINE_STRIP,
87-
autoware::universe_utils::createMarkerScale(0.1, 0, 0),
88-
autoware::universe_utils::createMarkerColor(1.0, 1.0, 0.0, 0.5)); // Yellow color
89-
90-
traj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
81+
Marker traj_poly_marker = createDefaultMarker(
82+
"map", clock_->now(), "trajectory_polygons", 0, Marker::LINE_LIST,
83+
autoware::universe_utils::createMarkerScale(0.1, 0, 0),
84+
autoware::universe_utils::createMarkerColor(1.0, 1.0, 0.0, 0.5)); // Yellow color
9185

86+
traj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
87+
for (const auto & polygon : debug_data_.trajectory_polygons) {
9288
add_polygon_to_marker(traj_poly_marker, polygon);
93-
94-
debug_marker_array.markers.push_back(traj_poly_marker);
9589
}
90+
debug_marker_array.markers.push_back(traj_poly_marker);
9691
}
9792

9893
if (!debug_data_.trajectory_polygons_no_margin.empty()) {
9994
autoware_utils_debug::ScopedTimeTrack st_debug_marker(
10095
"create_debug_marker_array/trajectory_polygons_no_margin", *time_keeper_);
101-
int traj_poly_id = 0;
102-
for (const auto & polygon : debug_data_.trajectory_polygons_no_margin) {
103-
Marker traj_poly_marker = createDefaultMarker(
104-
"map", clock_->now(), "trajectory_polygons_no_margin", traj_poly_id++, Marker::LINE_STRIP,
105-
autoware::universe_utils::createMarkerScale(0.1, 0, 0),
106-
autoware::universe_utils::createMarkerColor(1.0, 0.5, 0.0, 0.5)); // Orange color
96+
Marker traj_poly_marker = createDefaultMarker(
97+
"map", clock_->now(), "trajectory_polygons_no_margin", 0, Marker::LINE_LIST,
98+
autoware::universe_utils::createMarkerScale(0.1, 0, 0),
99+
autoware::universe_utils::createMarkerColor(1.0, 0.5, 0.0, 0.5)); // Orange color
107100

108-
traj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
101+
traj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
109102

103+
for (const auto & polygon : debug_data_.trajectory_polygons_no_margin) {
110104
add_polygon_to_marker(traj_poly_marker, polygon);
111-
112-
debug_marker_array.markers.push_back(traj_poly_marker);
113105
}
106+
debug_marker_array.markers.push_back(traj_poly_marker);
114107
}
115108

116109
if (!debug_data_.object_polygons.empty()) {
117110
autoware_utils_debug::ScopedTimeTrack st_debug_marker(
118111
"create_debug_marker_array/object_polygons", *time_keeper_);
119-
int obj_poly_id = 0;
120-
for (const auto & polygon : debug_data_.object_polygons) {
121-
Marker obj_poly_marker = createDefaultMarker(
122-
"map", clock_->now(), "object_polygons", obj_poly_id++, Marker::LINE_STRIP,
123-
autoware::universe_utils::createMarkerScale(0.15, 0, 0),
124-
autoware::universe_utils::createMarkerColor(0.8, 0.0, 0.8, 0.9));
112+
Marker obj_poly_marker = createDefaultMarker(
113+
"map", clock_->now(), "object_polygons", 0, Marker::LINE_LIST,
114+
autoware::universe_utils::createMarkerScale(0.15, 0, 0),
115+
autoware::universe_utils::createMarkerColor(0.8, 0.0, 0.8, 0.9));
125116

126-
obj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
117+
obj_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
127118

119+
for (const auto & polygon : debug_data_.object_polygons) {
128120
add_polygon_to_marker(obj_poly_marker, polygon);
129-
130-
debug_marker_array.markers.push_back(obj_poly_marker);
131121
}
122+
debug_marker_array.markers.push_back(obj_poly_marker);
132123
}
133124

134125
if (!debug_data_.polygons_for_vru.empty()) {
135126
autoware_utils_debug::ScopedTimeTrack st_debug_marker(
136127
"create_debug_marker_array/polygons_for_vru", *time_keeper_);
137-
int vru_poly_id = 0;
138-
for (const auto & polygon : debug_data_.polygons_for_vru) {
139-
Marker vru_poly_marker = createDefaultMarker(
140-
"map", clock_->now(), "polygons_for_vru", vru_poly_id++, Marker::LINE_STRIP,
141-
autoware::universe_utils::createMarkerScale(0.15, 0, 0),
142-
autoware::universe_utils::createMarkerColor(0.5, 1.0, 0.5, 0.6));
128+
Marker vru_poly_marker = createDefaultMarker(
129+
"map", clock_->now(), "polygons_for_vru", 0, Marker::LINE_LIST,
130+
autoware::universe_utils::createMarkerScale(0.15, 0, 0),
131+
autoware::universe_utils::createMarkerColor(0.5, 1.0, 0.5, 0.6));
143132

144-
vru_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
133+
vru_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
145134

135+
for (const auto & polygon : debug_data_.polygons_for_vru) {
146136
add_polygon_to_marker(vru_poly_marker, polygon);
147-
148-
debug_marker_array.markers.push_back(vru_poly_marker);
149137
}
138+
debug_marker_array.markers.push_back(vru_poly_marker);
150139
}
151140

152141
if (!debug_data_.polygons_for_opposing_traffic.empty()) {
153142
autoware_utils_debug::ScopedTimeTrack st_debug_marker(
154143
"create_debug_marker_array/polygons_for_opposing_traffic", *time_keeper_);
155-
int opposing_poly_id = 0;
156-
for (const auto & polygon : debug_data_.polygons_for_opposing_traffic) {
157-
Marker opposing_poly_marker = createDefaultMarker(
158-
"map", clock_->now(), "polygons_for_opposing_traffic", opposing_poly_id++,
159-
Marker::LINE_STRIP, autoware::universe_utils::createMarkerScale(0.15, 0, 0),
160-
autoware::universe_utils::createMarkerColor(1.0, 0.5, 0.5, 0.6));
144+
Marker opposing_poly_marker = createDefaultMarker(
145+
"map", clock_->now(), "polygons_for_opposing_traffic", 0, Marker::LINE_LIST,
146+
autoware::universe_utils::createMarkerScale(0.15, 0, 0),
147+
autoware::universe_utils::createMarkerColor(1.0, 0.5, 0.5, 0.6));
161148

162-
opposing_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
149+
opposing_poly_marker.lifetime = rclcpp::Duration::from_seconds(0.3);
163150

151+
for (const auto & polygon : debug_data_.polygons_for_opposing_traffic) {
164152
add_polygon_to_marker(opposing_poly_marker, polygon);
165-
166-
debug_marker_array.markers.push_back(opposing_poly_marker);
167153
}
154+
debug_marker_array.markers.push_back(opposing_poly_marker);
168155
}
169156

170157
return debug_marker_array;

0 commit comments

Comments
 (0)