Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
954589a1
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,发现更多精彩内容 >>
提交
954589a1
编写于
10月 29, 2018
作者:
J
jmtao
提交者:
Jiangtao Hu
12月 13, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
planning: fix CREEP and PROCEED_WITH_CAUTION
上级
56800ef1
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
37 addition
and
13 deletion
+37
-13
modules/planning/conf/scenario_stop_sign_unprotected_config.pb.txt
...lanning/conf/scenario_stop_sign_unprotected_config.pb.txt
+16
-0
modules/planning/scenarios/stop_sign_unprotected/stop_sign_unprotected_stage.cc
...rios/stop_sign_unprotected/stop_sign_unprotected_stage.cc
+6
-1
modules/planning/toolkits/deciders/decider_creep.cc
modules/planning/toolkits/deciders/decider_creep.cc
+10
-3
modules/planning/toolkits/deciders/decider_creep.h
modules/planning/toolkits/deciders/decider_creep.h
+2
-1
modules/planning/toolkits/optimizers/proceed_with_caution_speed/proceed_with_caution_speed_generator.cc
...ith_caution_speed/proceed_with_caution_speed_generator.cc
+3
-8
未找到文件。
modules/planning/conf/scenario_stop_sign_unprotected_config.pb.txt
浏览文件 @
954589a1
...
...
@@ -52,7 +52,11 @@ stage_config: {
stage_type: STOP_SIGN_UNPROTECTED_CREEP
enabled : true
task_type: DECIDER_CREEP
task_type: DP_POLY_PATH_OPTIMIZER
task_type: PATH_DECIDER
task_type: DP_ST_SPEED_OPTIMIZER
task_type: PROCEED_WITH_CAUTION_SPEED
task_type: QP_SPLINE_ST_SPEED_OPTIMIZER
task_config : {
task_type : DECIDER_CREEP
decider_creep_config : {
...
...
@@ -62,6 +66,18 @@ stage_config: {
min_boundary_t: 6.0
}
}
task_config : {
task_type : DP_POLY_PATH_OPTIMIZER
}
task_config : {
task_type : PATH_DECIDER
}
task_config : {
task_type : DP_ST_SPEED_OPTIMIZER
}
task_config : {
task_type : QP_SPLINE_ST_SPEED_OPTIMIZER
}
task_config : {
task_type : PROCEED_WITH_CAUTION_SPEED
proceed_with_caution_speed_config : {
...
...
modules/planning/scenarios/stop_sign_unprotected/stop_sign_unprotected_stage.cc
浏览文件 @
954589a1
...
...
@@ -55,6 +55,7 @@ using StopSignLaneVehicles =
Stage
::
StageStatus
StopSignUnprotectedPreStop
::
Process
(
const
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
{
ADEBUG
<<
"stage: PreStop"
;
CHECK_NOTNULL
(
frame
);
const
auto
&
reference_line_info
=
frame
->
reference_line_info
().
front
();
...
...
@@ -81,6 +82,7 @@ Stage::StageStatus StopSignUnprotectedPreStop::Process(
Stage
::
StageStatus
StopSignUnprotectedStop
::
Process
(
const
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
{
ADEBUG
<<
"stage: Stop"
;
CHECK_NOTNULL
(
frame
);
auto
start_time
=
GetContext
()
->
stop_start_time
;
...
...
@@ -118,6 +120,7 @@ Stage::StageStatus StopSignUnprotectedStop::Process(
Stage
::
StageStatus
StopSignUnprotectedCreep
::
Process
(
const
common
::
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
{
ADEBUG
<<
"stage: Creep"
;
CHECK_NOTNULL
(
frame
);
if
(
!
config_
.
enabled
())
{
...
...
@@ -136,7 +139,8 @@ Stage::StageStatus StopSignUnprotectedCreep::Process(
// set param for PROCEED_WITH_CAUTION_SPEED
dynamic_cast
<
DeciderCreep
*>
(
FindTask
(
TaskConfig
::
DECIDER_CREEP
))
->
SetProceedWithCautionSpeedParam
(
*
frame
,
reference_line_info
);
->
SetProceedWithCautionSpeedParam
(
*
frame
,
reference_line_info
,
stop_sign_overlap_end_s
);
bool
plan_ok
=
PlanningOnReferenceLine
(
planning_init_point
,
frame
);
if
(
!
plan_ok
)
{
...
...
@@ -147,6 +151,7 @@ Stage::StageStatus StopSignUnprotectedCreep::Process(
Stage
::
StageStatus
StopSignUnprotectedIntersectionCruise
::
Process
(
const
common
::
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
{
ADEBUG
<<
"stage: IntersectionCruise"
;
CHECK_NOTNULL
(
frame
);
if
(
GetContext
()
->
stop_sign_id
!=
...
...
modules/planning/toolkits/deciders/decider_creep.cc
浏览文件 @
954589a1
...
...
@@ -107,6 +107,7 @@ bool DeciderCreep::CheckCreepDone(const Frame& frame,
const
double
stop_sign_overlap_end_s
)
{
const
auto
&
creep_config
=
config_
.
decider_creep_config
();
bool
creep_done
=
false
;
double
creep_stop_s
=
stop_sign_overlap_end_s
+
FindCreepDistance
(
frame
,
reference_line_info
);
const
double
distance
=
...
...
@@ -130,17 +131,23 @@ bool DeciderCreep::CheckCreepDone(const Frame& frame,
}
void
DeciderCreep
::
SetProceedWithCautionSpeedParam
(
const
Frame
&
frame
,
const
ReferenceLineInfo
&
reference_line_info
)
{
const
Frame
&
frame
,
const
ReferenceLineInfo
&
reference_line_info
,
const
double
stop_sign_overlap_end_s
)
{
common
::
SLPoint
adc_center_sl
;
reference_line_info
.
reference_line
().
XYToSL
(
{
frame
.
vehicle_state
().
x
(),
frame
.
vehicle_state
().
y
()},
&
adc_center_sl
);
const
double
creep_distance
=
adc_center_sl
.
s
()
+
FindCreepDistance
(
frame
,
reference_line_info
);
double
creep_stop_s
=
stop_sign_overlap_end_s
+
FindCreepDistance
(
frame
,
reference_line_info
);
const
double
creep_distance
=
creep_stop_s
-
adc_center_sl
.
s
();
PlanningContext
::
GetScenarioInfo
()
->
proceed_with_caution_speed
.
is_fixed_distance
=
true
;
PlanningContext
::
GetScenarioInfo
()
->
proceed_with_caution_speed
.
distance
=
creep_distance
;
ADEBUG
<<
"creep_stop_s["
<<
creep_stop_s
<<
"] adc_s["
<<
adc_center_sl
.
s
()
<<
"] creep distance["
<<
creep_distance
<<
"]"
;
}
}
// namespace planning
...
...
modules/planning/toolkits/deciders/decider_creep.h
浏览文件 @
954589a1
...
...
@@ -45,7 +45,8 @@ class DeciderCreep : public Decider {
void
SetProceedWithCautionSpeedParam
(
const
Frame
&
frame
,
const
ReferenceLineInfo
&
reference_line_info
);
const
ReferenceLineInfo
&
reference_line_info
,
const
double
stop_sign_overlap_end_s
);
private:
double
FindCreepDistance
(
const
Frame
&
frame
,
...
...
modules/planning/toolkits/optimizers/proceed_with_caution_speed/proceed_with_caution_speed_generator.cc
浏览文件 @
954589a1
...
...
@@ -57,14 +57,9 @@ Status ProceedWithCautionSpeedGenerator::Process(
const
bool
is_fixed_distance
=
proceed_param
.
is_fixed_distance
;
double
proceed_distance
=
is_fixed_distance
?
proceed_param
.
distance
:
path_data
.
discretized_path
().
Length
();
const
double
max_distance
=
config_
.
proceed_with_caution_speed_config
().
max_distance
();
if
(
proceed_distance
>
max_distance
)
{
AERROR
<<
"required distance["
<<
proceed_distance
<<
"] is too long. max["
<<
max_distance
<<
"]"
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"required proceed distance is too long"
);
}
proceed_distance
=
std
::
min
(
proceed_distance
,
config_
.
proceed_with_caution_speed_config
().
max_distance
());
*
speed_data
=
SpeedProfileGenerator
::
GenerateFixedDistanceCreepProfile
(
proceed_distance
,
proceeding_speed_
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录