16.5.1
Description
Abstract
This PR introduces changes to render traffic light markers that do not have LightBulb information.
Background
Traffic light information is stored in Lanelet, but in some cases (such as some Lanelet at TIER IV), LightBulb information may be omitted because Autoware does not use it.
When this information is missing, traffic light markers are not displayed in RViz.
Traffic lights are rendered in two places: traffic_simulator and autoware_lanelet2_extension.
Details
- Adds functionality to the getTrafficLightBulbPosition function in HdMapUtils to infer the position of omitted LightBulbs.
- This feature can be enabled via an optional argument, allowing developers to choose whether to infer the position of missing LightBulbs (default behavior remains unchanged).
- Previously, only LightBulbs with a defined state were rendered (in case of
red solidOn, only red bulb is rendered). Now, if at least one LightBulb has a state, all LightBulbs in that traffic light will be rendered (in case ofred solidOn, all of red / yellow / green bulb are rendered). - Fixes a bug where green lights were always rendered for traffic light bulbs.
Destructive Changes
- A new argument was added to the getTrafficLightBulbPosition function in HdMapUtils, but a default value is provided, so existing code remains unaffected.
Known Limitations
The inference logic for LightBulbs assumes a horizontal three-light arrangement. Vertical arrangements may not be rendered correctly.