18.3.6
Description
Abstract
When multiple TrafficSignalState are specified in Phase in TrafficSignalController, states except the last one are missing.
This is because TrafficSignalState::evaluate overwrite the state of traffic light every time.
The traffic light state manipulation previously only provided an overwrite operation with set, but by adding clear/add, I have made it possible to perform flexible operations and reset the state only once per frame in this pull-request.
Details
Test with TrafficSignals.yaml
Traffic lights output comparison when traffic signal controller controller-1 is on phase-3.
before this pull-request
---
traffic_lights:
- lanelet_way_id: 34836
traffic_light_bulbs:
- enum_revision: 0
color: 1
shape: 1
status: 2
confidence: 1.0
- lanelet_way_id: 34802
traffic_light_bulbs:
- enum_revision: 0
color: 3
shape: 2
status: 2
confidence: 1.0after this pull-request
---
traffic_lights:
- lanelet_way_id: 34836
traffic_light_bulbs:
- enum_revision: 0
color: 1
shape: 1
status: 2
confidence: 1.0
- lanelet_way_id: 34802
traffic_light_bulbs:
- enum_revision: 0
color: 3
shape: 2
status: 2
confidence: 1.0
- enum_revision: 0 # this bulb is missing before this pull-request
color: 1
shape: 1
status: 2
confidence: 1.0References
Regression Test: OK
Destructive Changes
None
Known Limitations
None