15 #ifndef TRAFFIC_SIMULATOR__TRAFFIC_LIGHTS__TRAFFIC_LIGHTS_BASE_HPP_
16 #define TRAFFIC_SIMULATOR__TRAFFIC_LIGHTS__TRAFFIC_LIGHTS_BASE_HPP_
18 #include <simulation_interface/simulation_api_schema.pb.h>
22 #include <rclcpp/rclcpp.hpp>
28 #include <unordered_map>
35 std::vector<std::pair<rclcpp::Time, std::vector<simulation_api_schema::TrafficLight>>>>;
56 template <
typename NodeTypePo
inter>
58 const NodeTypePointer & node_ptr,
const std::shared_ptr<hdmap_utils::HdMapUtils> &
hdmap_utils)
94 const lanelet::Ids & route_lanelets, const
math::geometry::CatmullRomSplineInterface & spline)
95 ->
std::optional<
double>;
98 -> simulation_api_schema::UpdateTrafficLightsRequest;
108 const lanelet::Id lanelet_id, const
std::
string & state,
StateChangeType change_type) ->
void;
Definition: configurable_rate_updater.hpp:24
Definition: traffic_light_marker_publisher.hpp:24
Definition: traffic_lights_base.hpp:44
auto getDistanceToActiveTrafficLightStopLine(const lanelet::Ids &route_lanelets, const math::geometry::CatmullRomSplineInterface &spline) -> std::optional< double >
Definition: traffic_lights_base.cpp:182
StateChangeType
Definition: traffic_lights_base.hpp:47
TrafficLightsBase(const NodeTypePointer &node_ptr, const std::shared_ptr< hdmap_utils::HdMapUtils > &hdmap_utils)
Definition: traffic_lights_base.hpp:57
auto resetUpdate(const double update_rate) -> void
Definition: traffic_lights_base.cpp:26
auto setTrafficLightsState(const lanelet::Id lanelet_id, const std::string &state) -> void
Definition: traffic_lights_base.cpp:70
auto isAnyTrafficLightChanged() const -> bool
Definition: traffic_lights_base.cpp:32
auto generateUpdateTrafficLightsRequest() const -> simulation_api_schema::UpdateTrafficLightsRequest
Definition: traffic_lights_base.cpp:114
auto addTrafficLight(const lanelet::Id traffic_light_id) -> void
Definition: traffic_lights_base.cpp:131
ConfigurableRateUpdater rate_updater_
Definition: traffic_lights_base.hpp:122
virtual auto update() const -> void=0
auto isRequiredStopTrafficLightState(const lanelet::Id traffic_light_id) -> bool
Definition: traffic_lights_base.cpp:34
const rclcpp::Clock::SharedPtr clock_ptr_
Definition: traffic_lights_base.hpp:118
std::vector< StateChangeCallback > state_change_callbacks_
Definition: traffic_lights_base.hpp:124
auto clearTrafficLightsState(const lanelet::Id lanelet_id) -> void
Definition: traffic_lights_base.cpp:78
auto registerStateChangeCallback(StateChangeCallback callback) -> void
Definition: traffic_lights_base.cpp:147
auto setTrafficLightsConfidence(const lanelet::Id lanelet_id, const double confidence) -> void
Definition: traffic_lights_base.cpp:95
auto notifyStateChange(const lanelet::Id lanelet_id, const std::string &state, StateChangeType change_type) -> void
Definition: traffic_lights_base.cpp:152
auto startUpdate(const double update_rate) -> void
Definition: traffic_lights_base.cpp:21
auto addTrafficLightsState(const lanelet::Id lanelet_id, const std::string &state) -> void
Definition: traffic_lights_base.cpp:86
const std::unique_ptr< TrafficLightMarkerPublisher > marker_publisher_ptr_
Definition: traffic_lights_base.hpp:121
const std::shared_ptr< hdmap_utils::HdMapUtils > hdmap_utils_
Definition: traffic_lights_base.hpp:117
auto isTrafficLightAdded(const lanelet::Id traffic_light_id) const -> bool
Definition: traffic_lights_base.cpp:126
auto getTrafficLight(const lanelet::Id traffic_light_id) -> TrafficLight &
Definition: traffic_lights_base.cpp:139
auto setTrafficLightsColor(const lanelet::Id lanelet_id, const traffic_simulator::TrafficLight::Color &color) -> void
Definition: traffic_lights_base.cpp:62
virtual ~TrafficLightsBase()=default
auto getTrafficLightsComposedState(const lanelet::Id lanelet_id) -> std::string
Definition: traffic_lights_base.cpp:103
std::function< void(lanelet::Id lanelet_id, const std::string &state, StateChangeType change_type)> StateChangeCallback
Definition: traffic_lights_base.hpp:54
auto getTrafficLights(const lanelet::Id lanelet_id) -> std::vector< std::reference_wrapper< TrafficLight >>
Definition: traffic_lights_base.cpp:162
auto compareTrafficLightsState(const lanelet::Id lanelet_id, const std::string &state) -> bool
Definition: traffic_lights_base.cpp:45
std::unordered_map< lanelet::Id, TrafficLight > traffic_lights_map_
Definition: traffic_lights_base.hpp:120
Definition: bounding_box.hpp:32
Definition: lanelet_wrapper.hpp:43
std::unordered_map< lanelet::Id, std::vector< std::pair< rclcpp::Time, std::vector< simulation_api_schema::TrafficLight > >> > TrafficLightStatePredictions
Definition: traffic_lights_base.hpp:35
std::string string
Definition: junit5.hpp:26
Definition: traffic_light.hpp:44
Definition: traffic_light.hpp:42