@@ -33,6 +33,7 @@ using apollo::hdmap::CrosswalkInfoConstPtr;
3333using apollo::hdmap::JunctionInfoConstPtr;
3434using apollo::hdmap::PNCJunctionInfoConstPtr;
3535using apollo::hdmap::SignalInfoConstPtr;
36+ using apollo::hdmap::StopSignInfoConstPtr;
3637
3738using apollo::planning::ADCTrajectory;
3839
@@ -101,6 +102,23 @@ bool GetSignal(const PathPoint& point, std::string* signal_id) {
101102 return false ;
102103}
103104
105+ bool GetStopSign (const PathPoint& point, std::string* stop_sign_id) {
106+ common::PointENU hdmap_point;
107+ hdmap_point.set_x (point.x ());
108+ hdmap_point.set_y (point.y ());
109+ std::vector<StopSignInfoConstPtr> stop_signs;
110+ if (HDMapUtil::BaseMap ().GetStopSigns (hdmap_point,
111+ FLAGS_search_radius,
112+ &stop_signs) == 0 ) {
113+ if (stop_signs.size () > 0 ) {
114+ *stop_sign_id = stop_signs.front ()->id ().id ();
115+ return true ;
116+ }
117+ }
118+ return false ;
119+ }
120+
121+
104122} // namespace
105123
106124/* *
@@ -166,6 +184,15 @@ void CloseToJunctionTeller::GetOverlaps(const ADCTrajectory& adc_trajectory) {
166184 signal_distance_ = path_point.s () - s_start;
167185 }
168186 }
187+
188+ // stop_sign
189+ if (stop_sign_id_.empty () || stop_sign_distance_ < 0 ) {
190+ std::string stop_sign_id;
191+ if (GetStopSign (path_point, &stop_sign_id)) {
192+ stop_sign_id_ = stop_sign_id;
193+ stop_sign_distance_ = path_point.s () - s_start;
194+ }
195+ }
169196 }
170197}
171198
@@ -225,6 +252,20 @@ void CloseToJunctionTeller::Update(Stories* stories) {
225252 AINFO << " Exit CloseToSignal story" ;
226253 stories->clear_close_to_signal ();
227254 }
255+
256+ // CloseToStopSign
257+ if (!stop_sign_id_.empty () && stop_sign_distance_ >= 0 ) {
258+ if (!stories->has_close_to_stop_sign ()) {
259+ AINFO << " Enter CloseToStopSign story" ;
260+ }
261+ auto * story = stories->mutable_close_to_stop_sign ();
262+ story->set_id (stop_sign_id_);
263+ story->set_distance (stop_sign_distance_);
264+ } else if (stories->has_close_to_stop_sign ()) {
265+ AINFO << " Exit CloseToStopSign story" ;
266+ stories->clear_close_to_stop_sign ();
267+ }
268+
228269}
229270
230271} // namespace storytelling
0 commit comments