提交 fe788f91 编写于 作者: J Jiaming Tao 提交者: Jiangtao Hu

planning: enable pnc_junction, mainly for keep-clear inside junction

上级 06978875
......@@ -49,7 +49,7 @@ config: {
enabled: true
keep_clear {
enable_keep_clear_zone: true
enable_junction: false
enable_junction: true
min_pass_s_distance: 2.0
}
}
......
......@@ -60,18 +60,20 @@ Status KeepClear::ApplyRule(Frame* const frame,
// junction
if (config_.keep_clear().enable_junction()) {
const std::vector<PathOverlap>& junction_overlaps =
reference_line_info->reference_line().map_path().junction_overlaps();
for (const auto& junction_overlap : junction_overlaps) {
const std::vector<PathOverlap>& pnc_junction_overlaps =
reference_line_info->reference_line()
.map_path().pnc_junction_overlaps();
for (const auto& pnc_junction_overlap : pnc_junction_overlaps) {
const auto obstacle_id =
KEEP_CLEAR_JUNCTION_VO_ID_PREFIX + junction_overlap.object_id;
if (BuildKeepClearObstacle(frame, reference_line_info,
const_cast<PathOverlap*>(&junction_overlap),
obstacle_id)) {
ADEBUG << "KEEP_CLAER for junction[" << junction_overlap.object_id
<< "] s[" << junction_overlap.start_s << ", "
<< junction_overlap.end_s << "] BUILD";
KEEP_CLEAR_JUNCTION_VO_ID_PREFIX + pnc_junction_overlap.object_id;
if (BuildKeepClearObstacle(
frame, reference_line_info,
const_cast<PathOverlap*>(&pnc_junction_overlap),
obstacle_id)) {
ADEBUG << "KEEP_CLAER for junction[" << pnc_junction_overlap.object_id
<< "] s[" << pnc_junction_overlap.start_s << ", "
<< pnc_junction_overlap.end_s << "] BUILD";
}
}
}
......
......@@ -256,14 +256,15 @@ bool PullOver::OnOverlap(const double start_s, const double end_s) {
}
// junction
const std::vector<PathOverlap>& junction_overlaps =
reference_line.map_path().junction_overlaps();
for (const auto& junction_overlap : junction_overlaps) {
if (start_s <= junction_overlap.end_s &&
end_s >= junction_overlap.start_s) {
ADEBUG << "s[" << start_s << ", " << end_s << "] on junction_overlap["
<< junction_overlap.object_id << "] s[" << junction_overlap.start_s
<< ", " << junction_overlap.end_s << "]";
const std::vector<PathOverlap>& pnc_junction_overlaps =
reference_line.map_path().pnc_junction_overlaps();
for (const auto& pnc_junction_overlap : pnc_junction_overlaps) {
if (start_s <= pnc_junction_overlap.end_s &&
end_s >= pnc_junction_overlap.start_s) {
ADEBUG << "s[" << start_s << ", " << end_s << "] on pnc_junction_overlap["
<< pnc_junction_overlap.object_id << "] s["
<< pnc_junction_overlap.start_s
<< ", " << pnc_junction_overlap.end_s << "]";
return true;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册