34
34
#include < utility>
35
35
#include < vector>
36
36
37
+ #undef signals
37
38
namespace rviz_plugins
38
39
{
39
40
TrafficLightPublishPanel::TrafficLightPublishPanel (QWidget * parent) : rviz_common::Panel(parent)
@@ -138,55 +139,55 @@ void TrafficLightPublishPanel::onSetTrafficLightState()
138
139
const auto shape = light_shape_combo_->currentText ();
139
140
const auto status = light_status_combo_->currentText ();
140
141
141
- TrafficLight traffic_light;
142
+ TrafficSignalElement traffic_light;
142
143
traffic_light.confidence = traffic_light_confidence_input_->value ();
143
144
144
145
if (color == " RED" ) {
145
- traffic_light.color = TrafficLight ::RED;
146
+ traffic_light.color = TrafficSignalElement ::RED;
146
147
} else if (color == " AMBER" ) {
147
- traffic_light.color = TrafficLight ::AMBER;
148
+ traffic_light.color = TrafficSignalElement ::AMBER;
148
149
} else if (color == " GREEN" ) {
149
- traffic_light.color = TrafficLight ::GREEN;
150
+ traffic_light.color = TrafficSignalElement ::GREEN;
150
151
} else if (color == " WHITE" ) {
151
- traffic_light.color = TrafficLight ::WHITE;
152
+ traffic_light.color = TrafficSignalElement ::WHITE;
152
153
} else if (color == " UNKNOWN" ) {
153
- traffic_light.color = TrafficLight ::UNKNOWN;
154
+ traffic_light.color = TrafficSignalElement ::UNKNOWN;
154
155
}
155
156
156
157
if (shape == " CIRCLE" ) {
157
- traffic_light.shape = TrafficLight ::CIRCLE;
158
+ traffic_light.shape = TrafficSignalElement ::CIRCLE;
158
159
} else if (shape == " LEFT_ARROW" ) {
159
- traffic_light.shape = TrafficLight ::LEFT_ARROW;
160
+ traffic_light.shape = TrafficSignalElement ::LEFT_ARROW;
160
161
} else if (shape == " RIGHT_ARROW" ) {
161
- traffic_light.shape = TrafficLight ::RIGHT_ARROW;
162
+ traffic_light.shape = TrafficSignalElement ::RIGHT_ARROW;
162
163
} else if (shape == " UP_ARROW" ) {
163
- traffic_light.shape = TrafficLight ::UP_ARROW;
164
+ traffic_light.shape = TrafficSignalElement ::UP_ARROW;
164
165
} else if (shape == " DOWN_ARROW" ) {
165
- traffic_light.shape = TrafficLight ::DOWN_ARROW;
166
+ traffic_light.shape = TrafficSignalElement ::DOWN_ARROW;
166
167
} else if (shape == " DOWN_LEFT_ARROW" ) {
167
- traffic_light.shape = TrafficLight ::DOWN_LEFT_ARROW;
168
+ traffic_light.shape = TrafficSignalElement ::DOWN_LEFT_ARROW;
168
169
} else if (shape == " DOWN_RIGHT_ARROW" ) {
169
- traffic_light.shape = TrafficLight ::DOWN_RIGHT_ARROW;
170
+ traffic_light.shape = TrafficSignalElement ::DOWN_RIGHT_ARROW;
170
171
} else if (shape == " UNKNOWN" ) {
171
- traffic_light.shape = TrafficLight ::UNKNOWN;
172
+ traffic_light.shape = TrafficSignalElement ::UNKNOWN;
172
173
}
173
174
174
175
if (status == " SOLID_OFF" ) {
175
- traffic_light.status = TrafficLight ::SOLID_OFF;
176
+ traffic_light.status = TrafficSignalElement ::SOLID_OFF;
176
177
} else if (status == " SOLID_ON" ) {
177
- traffic_light.status = TrafficLight ::SOLID_ON;
178
+ traffic_light.status = TrafficSignalElement ::SOLID_ON;
178
179
} else if (status == " FLASHING" ) {
179
- traffic_light.status = TrafficLight ::FLASHING;
180
+ traffic_light.status = TrafficSignalElement ::FLASHING;
180
181
} else if (status == " UNKNOWN" ) {
181
- traffic_light.status = TrafficLight ::UNKNOWN;
182
+ traffic_light.status = TrafficSignalElement ::UNKNOWN;
182
183
}
183
184
184
185
TrafficSignal traffic_signal;
185
- traffic_signal.lights .push_back (traffic_light);
186
- traffic_signal.map_primitive_id = traffic_light_id;
186
+ traffic_signal.elements .push_back (traffic_light);
187
+ traffic_signal.traffic_signal_id = traffic_light_id;
187
188
188
189
for (auto & signal : extra_traffic_signals_.signals ) {
189
- if (signal .map_primitive_id == traffic_light_id) {
190
+ if (signal .traffic_signal_id == traffic_light_id) {
190
191
signal = traffic_signal;
191
192
return ;
192
193
}
@@ -247,7 +248,7 @@ void TrafficLightPublishPanel::createWallTimer()
247
248
void TrafficLightPublishPanel::onTimer ()
248
249
{
249
250
if (enable_publish_) {
250
- extra_traffic_signals_.header . stamp = rclcpp::Clock ().now ();
251
+ extra_traffic_signals_.stamp = rclcpp::Clock ().now ();
251
252
pub_traffic_signals_->publish (extra_traffic_signals_);
252
253
}
253
254
@@ -260,35 +261,35 @@ void TrafficLightPublishPanel::onTimer()
260
261
for (size_t i = 0 ; i < extra_traffic_signals_.signals .size (); ++i) {
261
262
const auto & signal = extra_traffic_signals_.signals .at (i);
262
263
263
- if (signal .lights .empty ()) {
264
+ if (signal .elements .empty ()) {
264
265
continue ;
265
266
}
266
267
267
- auto id_label = new QLabel (QString::number (signal .map_primitive_id ));
268
+ auto id_label = new QLabel (QString::number (signal .traffic_signal_id ));
268
269
id_label->setAlignment (Qt::AlignCenter);
269
270
270
271
auto color_label = new QLabel ();
271
272
color_label->setAlignment (Qt::AlignCenter);
272
273
273
- const auto & light = signal .lights .front ();
274
+ const auto & light = signal .elements .front ();
274
275
switch (light.color ) {
275
- case TrafficLight ::RED:
276
+ case TrafficSignalElement ::RED:
276
277
color_label->setText (" RED" );
277
278
color_label->setStyleSheet (" background-color: #FF0000;" );
278
279
break ;
279
- case TrafficLight ::AMBER:
280
+ case TrafficSignalElement ::AMBER:
280
281
color_label->setText (" AMBER" );
281
282
color_label->setStyleSheet (" background-color: #FFBF00;" );
282
283
break ;
283
- case TrafficLight ::GREEN:
284
+ case TrafficSignalElement ::GREEN:
284
285
color_label->setText (" GREEN" );
285
286
color_label->setStyleSheet (" background-color: #7CFC00;" );
286
287
break ;
287
- case TrafficLight ::WHITE:
288
+ case TrafficSignalElement ::WHITE:
288
289
color_label->setText (" WHITE" );
289
290
color_label->setStyleSheet (" background-color: #FFFFFF;" );
290
291
break ;
291
- case TrafficLight ::UNKNOWN:
292
+ case TrafficSignalElement ::UNKNOWN:
292
293
color_label->setText (" UNKNOWN" );
293
294
color_label->setStyleSheet (" background-color: #808080;" );
294
295
break ;
@@ -300,31 +301,28 @@ void TrafficLightPublishPanel::onTimer()
300
301
shape_label->setAlignment (Qt::AlignCenter);
301
302
302
303
switch (light.shape ) {
303
- case TrafficLight ::CIRCLE:
304
+ case TrafficSignalElement ::CIRCLE:
304
305
shape_label->setText (" CIRCLE" );
305
306
break ;
306
- case TrafficLight ::LEFT_ARROW:
307
+ case TrafficSignalElement ::LEFT_ARROW:
307
308
shape_label->setText (" LEFT_ARROW" );
308
309
break ;
309
- case TrafficLight ::RIGHT_ARROW:
310
+ case TrafficSignalElement ::RIGHT_ARROW:
310
311
shape_label->setText (" RIGHT_ARROW" );
311
312
break ;
312
- case TrafficLight ::UP_ARROW:
313
+ case TrafficSignalElement ::UP_ARROW:
313
314
shape_label->setText (" UP_ARROW" );
314
315
break ;
315
- case TrafficLight ::DOWN_ARROW:
316
+ case TrafficSignalElement ::DOWN_ARROW:
316
317
shape_label->setText (" DOWN_ARROW" );
317
318
break ;
318
- case TrafficLight ::DOWN_LEFT_ARROW:
319
+ case TrafficSignalElement ::DOWN_LEFT_ARROW:
319
320
shape_label->setText (" DOWN_LEFT_ARROW" );
320
321
break ;
321
- case TrafficLight ::DOWN_RIGHT_ARROW:
322
+ case TrafficSignalElement ::DOWN_RIGHT_ARROW:
322
323
shape_label->setText (" DOWN_RIGHT_ARROW" );
323
324
break ;
324
- case TrafficLight::FLASHING:
325
- shape_label->setText (" FLASHING" );
326
- break ;
327
- case TrafficLight::UNKNOWN:
325
+ case TrafficSignalElement::UNKNOWN:
328
326
shape_label->setText (" UNKNOWN" );
329
327
break ;
330
328
default :
@@ -335,16 +333,16 @@ void TrafficLightPublishPanel::onTimer()
335
333
status_label->setAlignment (Qt::AlignCenter);
336
334
337
335
switch (light.status ) {
338
- case TrafficLight ::SOLID_OFF:
336
+ case TrafficSignalElement ::SOLID_OFF:
339
337
status_label->setText (" SOLID_OFF" );
340
338
break ;
341
- case TrafficLight ::SOLID_ON:
339
+ case TrafficSignalElement ::SOLID_ON:
342
340
status_label->setText (" SOLID_ON" );
343
341
break ;
344
- case TrafficLight ::FLASHING:
342
+ case TrafficSignalElement ::FLASHING:
345
343
status_label->setText (" FLASHING" );
346
344
break ;
347
- case TrafficLight ::UNKNOWN:
345
+ case TrafficSignalElement ::UNKNOWN:
348
346
status_label->setText (" UNKNOWN" );
349
347
break ;
350
348
default :
@@ -375,11 +373,9 @@ void TrafficLightPublishPanel::onVectorMap(const HADMapBin::ConstSharedPtr msg)
375
373
std::string info = " Fetching traffic lights :" ;
376
374
std::string delim = " " ;
377
375
for (auto && tl_reg_elem_ptr : tl_reg_elems) {
378
- for (auto && traffic_light : tl_reg_elem_ptr->trafficLights ()) {
379
- auto id = static_cast <int >(traffic_light.id ());
380
- info += (std::exchange (delim, " , " ) + std::to_string (id));
381
- traffic_light_ids_.insert (id);
382
- }
376
+ auto id = static_cast <int >(tl_reg_elem_ptr->id ());
377
+ info += (std::exchange (delim, " , " ) + std::to_string (id));
378
+ traffic_light_ids_.insert (id);
383
379
}
384
380
RCLCPP_INFO_STREAM (raw_node_->get_logger (), info);
385
381
received_vector_map_ = true ;
0 commit comments