27 #include <unordered_set> 30 #include "modules/perception/proto/traffic_light_detection.pb.h" 31 #include "modules/planning/proto/planning.pb.h" 44 static constexpr
size_t kBufferSize = 40;
45 std::shared_ptr<OSLight> oslight_ =
nullptr;
46 std::shared_ptr<ObuLight> obu_light_ =
nullptr;
47 int intersection_id_ = -1;
48 double change_color_timestamp_ = 0.0;
49 int32_t *remaining_time_ =
nullptr;
50 double *msg_timestamp_ =
nullptr;
60 double distance, ::apollo::v2x::RoadTrafficLight *msg);
64 const std::string &junction_id,
bool flag_u_turn,
65 double distance,
double check_time,
66 std::shared_ptr<OSLight> *os_light);
69 const ::apollo::planning::ADCTrajectory *planning_msg,
71 std::shared_ptr<::apollo::perception::TrafficLightDetection> *res_light);
75 bool FindAllRoadId(
const std::shared_ptr<::apollo::hdmap::HDMap> &hdmap,
78 size_t max_road_count,
79 std::unordered_set<std::string> *result_id_set);
81 bool CheckCarInSet(
const std::shared_ptr<::apollo::hdmap::HDMap> &hdmap,
82 const std::unordered_set<std::string> &id_set,
84 size_t max_lane_count);
86 bool GetRsuInfo(
const std::shared_ptr<::apollo::hdmap::HDMap> &hdmap,
88 const std::set<std::string> &rsu_whitelist,
double distance,
89 double max_heading_difference,
90 std::shared_ptr<::apollo::v2x::CarStatus> *v2x_car_status,
91 std::string *out_junction_id,
double *out_heading);
bool CheckCarInSet(const std::shared_ptr<::apollo::hdmap::HDMap > &hdmap, const std::unordered_set< std::string > &id_set, const ::apollo::hdmap::LaneInfoConstPtr &car_laneinfo, size_t max_lane_count)
bool TrafficLightProc(const std::shared_ptr<::apollo::hdmap::HDMap > &hdmap, double distance, ::apollo::v2x::RoadTrafficLight *msg)
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
::apollo::localization::LocalizationEstimate OSLocation
Definition: proto_adapter.h:58
bool GetRsuInfo(const std::shared_ptr<::apollo::hdmap::HDMap > &hdmap, const OSLocation &os_location, const std::set< std::string > &rsu_whitelist, double distance, double max_heading_difference, std::shared_ptr<::apollo::v2x::CarStatus > *v2x_car_status, std::string *out_junction_id, double *out_heading)
::apollo::v2x::IntersectionTrafficLightData OSLight
Definition: proto_adapter.h:56
const char *const kUnknownJunctionId
Definition: utils.h:40
void UniqueOslight(OSLight *os_light)
bool ProcTrafficlight(const std::shared_ptr<::apollo::hdmap::HDMap > &hdmap, const ObuLight *x2v_traffic_light, const std::string &junction_id, bool flag_u_turn, double distance, double check_time, std::shared_ptr< OSLight > *os_light)
bool ProcPlanningMessage(const ::apollo::planning::ADCTrajectory *planning_msg, const OSLight *last_os_light, std::shared_ptr<::apollo::perception::TrafficLightDetection > *res_light)
::apollo::v2x::obu::ObuTrafficLight ObuLight
Definition: proto_adapter.h:57
std::shared_ptr< const LaneInfo > LaneInfoConstPtr
Definition: hdmap_common.h:125
OSLightColor GetNextColor(OSLightColor color)
bool FindAllRoadId(const std::shared_ptr<::apollo::hdmap::HDMap > &hdmap, const ::apollo::hdmap::LaneInfoConstPtr &start_laneinfo, const ::apollo::hdmap::LaneInfoConstPtr &end_laneinfo, size_t max_road_count, std::unordered_set< std::string > *result_id_set)
::apollo::v2x::SingleTrafficLight_Color OSLightColor
Definition: proto_adapter.h:53