Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
ee18c594
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,发现更多精彩内容 >>
提交
ee18c594
编写于
10月 30, 2019
作者:
K
kechxu
提交者:
Kecheng Xu
10月 30, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prediction: framework of posterior processing of short-term trajectory
上级
8ab8b608
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
43 addition
and
15 deletion
+43
-15
modules/prediction/predictor/extrapolation/extrapolation_predictor.cc
...iction/predictor/extrapolation/extrapolation_predictor.cc
+29
-12
modules/prediction/predictor/extrapolation/extrapolation_predictor.h
...diction/predictor/extrapolation/extrapolation_predictor.h
+14
-3
未找到文件。
modules/prediction/predictor/extrapolation/extrapolation_predictor.cc
浏览文件 @
ee18c594
...
...
@@ -33,26 +33,43 @@ void ExtrapolationPredictor::Predict(
obstacle
->
SetPredictorType
(
predictor_type_
);
const
Feature
&
feature
=
obstacle
->
latest_feature
();
Feature
*
feature_ptr
=
obstacle
->
mutable_
latest_feature
();
if
(
!
feature
.
has_lane
()
||
!
feature
.
lane
().
has_lane_graph
())
{
if
(
!
feature
_ptr
->
lane
().
has_lane_graph
())
{
AERROR
<<
"Obstacle ["
<<
obstacle
->
id
()
<<
"] has no lane graph."
;
return
;
}
std
::
vector
<
apollo
::
common
::
TrajectoryPoint
>
trajectory_points
;
DrawShortTermTrajectory
(
feature
,
&
trajectory_points
);
Trajectory
trajectory
=
GenerateTrajectory
(
trajectory_points
);
obstacle
->
mutable_latest_feature
()
->
add_predicted_trajectory
()
->
CopyFrom
(
trajectory
);
for
(
int
i
=
0
;
i
<
feature_ptr
->
predicted_trajectory_size
();
++
i
)
{
Trajectory
*
trajectory_ptr
=
feature_ptr
->
mutable_predicted_trajectory
(
i
);
PostProcess
(
trajectory_ptr
);
}
}
void
ExtrapolationPredictor
::
DrawShortTermTrajectory
(
const
Feature
&
feature
,
std
::
vector
<
apollo
::
common
::
TrajectoryPoint
>*
points
)
{
for
(
const
auto
&
point
:
feature
.
short_term_predicted_trajectory_points
())
{
points
->
push_back
(
point
);
void
ExtrapolationPredictor
::
PostProcess
(
Trajectory
*
trajectory_ptr
)
{
// TODO(kechxu) handle corner cases
auto
lane_search_result
=
SearchExtrapolationLane
(
*
trajectory_ptr
);
if
(
lane_search_result
.
found
)
{
ExtrapolateByLane
(
lane_search_result
.
lane_id
,
trajectory_ptr
);
}
else
{
ExtrapolateByFreeMove
(
trajectory_ptr
);
}
}
ExtrapolationPredictor
::
LaneSearchResult
ExtrapolationPredictor
::
SearchExtrapolationLane
(
const
Trajectory
&
trajectory
)
{
LaneSearchResult
lane_search_result
;
// TODO(kechxu) implement
return
lane_search_result
;
}
void
ExtrapolationPredictor
::
ExtrapolateByLane
(
const
std
::
string
&
lane_id
,
Trajectory
*
trajectory_ptr
)
{
// TODO(kechxu) implement
}
void
ExtrapolationPredictor
::
ExtrapolateByFreeMove
(
Trajectory
*
trajectory_ptr
)
{
// TODO(kechxu) implement
}
}
// namespace prediction
}
// namespace apollo
modules/prediction/predictor/extrapolation/extrapolation_predictor.h
浏览文件 @
ee18c594
...
...
@@ -53,9 +53,20 @@ class ExtrapolationPredictor : public SequencePredictor {
ObstaclesContainer
*
obstacles_container
)
override
;
private:
void
DrawShortTermTrajectory
(
const
Feature
&
feature
,
std
::
vector
<
apollo
::
common
::
TrajectoryPoint
>*
points
);
struct
LaneSearchResult
{
bool
found
=
false
;
std
::
string
lane_id
=
""
;
int
point_index
=
-
1
;
};
void
PostProcess
(
Trajectory
*
trajectory_ptr
);
LaneSearchResult
SearchExtrapolationLane
(
const
Trajectory
&
trajectory
);
void
ExtrapolateByLane
(
const
std
::
string
&
lane_id
,
Trajectory
*
trajectory_ptr
);
void
ExtrapolateByFreeMove
(
Trajectory
*
trajectory_ptr
);
};
}
// namespace prediction
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录