Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
97dcda91
A
apollo
项目概览
Pinoxchio
/
apollo
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apollo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
97dcda91
编写于
2月 13, 2019
作者:
J
Jiaming Tao
提交者:
Yifei Jiang
2月 13, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
planning: scenario dispatch for traffic-light scenarios
上级
867682e4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
60 addition
and
4 deletion
+60
-4
modules/planning/scenarios/scenario_manager.cc
modules/planning/scenarios/scenario_manager.cc
+60
-4
未找到文件。
modules/planning/scenarios/scenario_manager.cc
浏览文件 @
97dcda91
...
...
@@ -20,6 +20,7 @@
#include <utility>
#include <vector>
#include "modules/common/vehicle_state/vehicle_state_provider.h"
#include "modules/map/pnc_map/path.h"
#include "modules/planning/common/planning_context.h"
#include "modules/planning/common/planning_gflags.h"
...
...
@@ -51,8 +52,8 @@ std::unique_ptr<Scenario> ScenarioManager::CreateScenario(
switch
(
scenario_type
)
{
case
ScenarioConfig
::
LANE_FOLLOW
:
ptr
.
reset
(
new
lane_follow
::
LaneFollowScenario
(
config_map_
[
scenario_type
],
&
scenario_context_
));
ptr
.
reset
(
new
lane_follow
::
LaneFollowScenario
(
config_map_
[
scenario_type
],
&
scenario_context_
));
break
;
case
ScenarioConfig
::
SIDE_PASS
:
ptr
.
reset
(
new
scenario
::
side_pass
::
SidePassScenario
(
...
...
@@ -172,8 +173,63 @@ ScenarioConfig::ScenarioType ScenarioManager::SelectStopSignScenario(
ScenarioConfig
::
ScenarioType
ScenarioManager
::
SelectTrafficLightScenario
(
const
Frame
&
frame
)
{
// TODO(all):
return
ScenarioConfig
::
TRAFFIC_LIGHT_PROTECTED
;
const
auto
&
reference_line_info
=
frame
.
reference_line_info
().
front
();
const
double
adc_front_edge_s
=
reference_line_info
.
AdcSlBoundary
().
end_s
();
const
double
traffic_light_overlap_start_s
=
PlanningContext
::
GetScenarioInfo
()
->
next_traffic_light_overlap
.
start_s
;
const
double
adc_distance_to_stop_line
=
traffic_light_overlap_start_s
-
adc_front_edge_s
;
const
double
adc_speed
=
common
::
VehicleStateProvider
::
Instance
()
->
linear_velocity
();
auto
scenario_config
=
config_map_
[
ScenarioConfig
::
TRAFFIC_LIGHT_PROTECTED
]
.
traffic_light_unprotected_right_turn_config
();
bool
is_stopped_for_traffic_light
=
true
;
if
(
adc_speed
>
scenario_config
.
max_adc_stop_speed
()
||
adc_distance_to_stop_line
>
scenario_config
.
max_valid_stop_distance
())
{
is_stopped_for_traffic_light
=
false
;
ADEBUG
<<
"ADC not stopped: speed["
<<
adc_speed
<<
"] adc_distance_to_stop_line["
<<
adc_distance_to_stop_line
<<
"]"
;
}
bool
right_turn
=
(
reference_line_info
.
GetPathTurnType
()
==
hdmap
::
Lane
::
RIGHT_TURN
);
bool
left_turn
=
(
reference_line_info
.
GetPathTurnType
()
==
hdmap
::
Lane
::
LEFT_TURN
);
switch
(
current_scenario_
->
scenario_type
())
{
case
ScenarioConfig
::
LANE_FOLLOW
:
case
ScenarioConfig
::
CHANGE_LANE
:
case
ScenarioConfig
::
SIDE_PASS
:
case
ScenarioConfig
::
APPROACH
:
if
(
is_stopped_for_traffic_light
)
{
if
(
right_turn
)
{
return
ScenarioConfig
::
TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN
;
}
else
if
(
left_turn
)
{
return
ScenarioConfig
::
TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN
;
}
else
{
return
ScenarioConfig
::
TRAFFIC_LIGHT_PROTECTED
;
}
}
break
;
case
ScenarioConfig
::
STOP_SIGN_PROTECTED
:
case
ScenarioConfig
::
STOP_SIGN_UNPROTECTED
:
break
;
case
ScenarioConfig
::
TRAFFIC_LIGHT_PROTECTED
:
case
ScenarioConfig
::
TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN
:
case
ScenarioConfig
::
TRAFFIC_LIGHT_UNPROTECTED_RIGHT_TURN
:
if
(
current_scenario_
->
GetStatus
()
==
Scenario
::
ScenarioStatus
::
STATUS_DONE
)
{
return
ScenarioConfig
::
LANE_FOLLOW
;
}
break
;
default:
break
;
}
return
current_scenario_
->
scenario_type
();
}
ScenarioConfig
::
ScenarioType
ScenarioManager
::
SelectSidePassScenario
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录