Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
10b5fb16
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,发现更多精彩内容 >>
提交
10b5fb16
编写于
10月 16, 2019
作者:
P
panjiacheng
提交者:
PAN Jiacheng
10月 16, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Planning: eliminated all CHECK in run-time functions.
上级
a563d319
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
12 deletion
+24
-12
modules/planning/tasks/deciders/st_bounds_decider/st_obstacles_processor.cc
...asks/deciders/st_bounds_decider/st_obstacles_processor.cc
+24
-12
未找到文件。
modules/planning/tasks/deciders/st_bounds_decider/st_obstacles_processor.cc
浏览文件 @
10b5fb16
...
...
@@ -67,10 +67,22 @@ STObstaclesProcessor::STObstaclesProcessor(const double planning_distance,
Status
STObstaclesProcessor
::
MapObstaclesToSTBoundaries
(
PathDecision
*
const
path_decision
)
{
// Sanity checks.
CHECK_NOTNULL
(
path_decision
);
CHECK_GT
(
planning_time_
,
0.0
);
CHECK_GT
(
planning_distance_
,
0.0
);
CHECK_GT
(
path_data_
.
discretized_path
().
size
(),
1
);
if
(
path_decision
==
nullptr
)
{
const
std
::
string
msg
=
"path_decision is nullptr"
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
msg
);
}
if
(
planning_time_
<
0.0
)
{
const
std
::
string
msg
=
"Negative planning time."
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
msg
);
}
if
(
planning_distance_
<
0.0
)
{
const
std
::
string
msg
=
"Negative planning distance."
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
msg
);
}
if
(
path_data_
.
discretized_path
().
size
()
<=
1
)
{
const
std
::
string
msg
=
"Number of path points is too few."
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
msg
);
}
obs_id_to_st_boundary_
.
clear
();
// Map obstacles into ST-graph.
...
...
@@ -79,7 +91,10 @@ Status STObstaclesProcessor::MapObstaclesToSTBoundaries(
std
::
get
<
0
>
(
closest_stop_obstacle
)
=
"NULL"
;
for
(
const
auto
*
obs_item_ptr
:
path_decision
->
obstacles
().
Items
())
{
Obstacle
*
obs_ptr
=
path_decision
->
Find
(
obs_item_ptr
->
Id
());
CHECK_NOTNULL
(
obs_ptr
);
if
(
obs_ptr
==
nullptr
)
{
const
std
::
string
msg
=
"Null obstacle pointer."
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
msg
);
}
std
::
vector
<
STPoint
>
lower_points
;
std
::
vector
<
STPoint
>
upper_points
;
...
...
@@ -87,10 +102,8 @@ Status STObstaclesProcessor::MapObstaclesToSTBoundaries(
// Obstacle doesn't appear on ST-Graph.
continue
;
}
CHECK_GT
(
lower_points
.
size
(),
1
);
CHECK_GT
(
upper_points
.
size
(),
1
);
auto
boundary
=
STBoundary
::
CreateInstanceAccurate
(
lower_points
,
upper_points
);
auto
boundary
=
STBoundary
::
CreateInstanceAccurate
(
lower_points
,
upper_points
);
boundary
.
set_id
(
obs_ptr
->
Id
());
if
(
obs_ptr
->
Trajectory
().
trajectory_point
().
empty
())
{
// Obstacle is static.
...
...
@@ -340,7 +353,8 @@ bool STObstaclesProcessor::GetOverlappingS(
if
(
pt_after_idx
==
-
1
)
{
pt_after_idx
=
static_cast
<
int
>
(
adc_path_points
.
size
())
-
2
;
}
CHECK
(
pt_before_idx
<
pt_after_idx
);
if
(
pt_before_idx
>=
pt_after_idx
)
return
false
;
// Detailed searching.
bool
has_overlapping
=
false
;
...
...
@@ -499,10 +513,8 @@ ObjectDecisionType STObstaclesProcessor::DetermineObstacleDecision(
ObjectDecisionType
decision
;
if
(
s
<=
obs_s_min
)
{
decision
.
mutable_yield
();
CHECK
(
decision
.
has_yield
());
}
else
if
(
s
>=
obs_s_max
)
{
decision
.
mutable_overtake
();
CHECK
(
decision
.
has_overtake
());
}
return
decision
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录