Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
1fef8967
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,发现更多精彩内容 >>
提交
1fef8967
编写于
11月 06, 2018
作者:
H
Hongyi
提交者:
Jiangtao Hu
12月 13, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prediction: finish trajectory after exit junction
上级
36c988c6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
38 addition
and
6 deletion
+38
-6
modules/prediction/predictor/junction/junction_predictor.cc
modules/prediction/predictor/junction/junction_predictor.cc
+38
-6
未找到文件。
modules/prediction/predictor/junction/junction_predictor.cc
浏览文件 @
1fef8967
...
...
@@ -55,7 +55,6 @@ void JunctionPredictor::DrawJunctionTrajectoryPoints(
const
Feature
&
feature
,
const
JunctionExit
&
junction_exit
,
const
double
total_time
,
const
double
period
,
std
::
vector
<
TrajectoryPoint
>*
trajectory_points
)
{
// TODO(all) implement
double
speed
=
feature
.
speed
();
const
std
::
array
<
double
,
2
>
start_x
=
{
feature
.
position
().
x
(),
feature
.
raw_velocity
().
x
()};
...
...
@@ -71,25 +70,58 @@ void JunctionPredictor::DrawJunctionTrajectoryPoints(
std
::
array
<
double
,
4
>
y_coeffs
=
ComputePolynomial
<
3
>
(
start_y
,
end_y
,
exit_time
);
double
t
=
0.0
;
// Trajectory in junction
while
(
t
<=
exit_time
)
{
PathPoint
path_point
;
path_point
.
set_x
(
EvaluateCubicPolynomial
(
x_coeffs
,
t
,
0
));
path_point
.
set_y
(
EvaluateCubicPolynomial
(
y_coeffs
,
t
,
0
));
path_point
.
set_z
(
0.0
);
path_point
.
set_theta
(
std
::
atan2
(
EvaluateCubicPolynomial
(
y_coeffs
,
t
,
1
),
EvaluateCubicPolynomial
(
x_coeffs
,
t
,
1
)));
EvaluateCubicPolynomial
(
x_coeffs
,
t
,
1
)));
TrajectoryPoint
trajectory_point
;
trajectory_point
.
mutable_path_point
()
->
CopyFrom
(
path_point
);
trajectory_point
.
set_v
(
std
::
hypot
(
EvaluateCubicPolynomial
(
x_coeffs
,
t
,
1
),
EvaluateCubicPolynomial
(
y_coeffs
,
t
,
1
)));
trajectory_point
.
set_relative_time
(
t
);
trajectory_points
->
emplace_back
(
std
::
move
(
trajectory_point
));
t
+=
period
;
}
std
::
string
exit_lane_id
=
junction_exit
.
exit_lane_id
();
std
::
shared_ptr
<
const
LaneInfo
>
exit_lane_info
=
PredictionMap
::
LaneById
(
exit_lane_id
);
std
::
string
lane_id
=
junction_exit
.
exit_lane_id
();
std
::
shared_ptr
<
const
LaneInfo
>
lane_info
=
PredictionMap
::
LaneById
(
lane_id
);
Eigen
::
Vector2d
pos
(
junction_exit
.
exit_position
().
x
(),
junction_exit
.
exit_position
().
y
());
double
lane_s
=
0.0
;
double
lane_l
=
0.0
;
double
theta
=
M_PI
;
PredictionMap
::
GetProjection
(
pos
,
lane_info
,
&
lane_s
,
&
lane_l
);
// Trajectory after junction
while
(
t
<=
total_time
)
{
// TODO(hongyi) implement after junction
if
(
!
PredictionMap
::
SmoothPointFromLane
(
lane_id
,
lane_s
,
0.0
,
&
pos
,
&
theta
))
{
AERROR
<<
"Unable to get smooth point from lane ["
<<
lane_id
<<
"] with s ["
<<
lane_s
<<
"] and l ["
<<
0.0
<<
"]"
;
return
;
}
TrajectoryPoint
trajectory_point
;
PathPoint
path_point
;
path_point
.
set_x
(
pos
.
x
());
path_point
.
set_y
(
pos
.
y
());
path_point
.
set_z
(
0.0
);
path_point
.
set_theta
(
theta
);
path_point
.
set_lane_id
(
lane_id
);
trajectory_point
.
mutable_path_point
()
->
CopyFrom
(
path_point
);
trajectory_point
.
set_v
(
speed
);
trajectory_point
.
set_a
(
0.0
);
trajectory_point
.
set_relative_time
(
t
);
trajectory_points
->
emplace_back
(
std
::
move
(
trajectory_point
));
lane_s
+=
speed
*
period
;
while
(
lane_s
>
PredictionMap
::
LaneById
(
lane_id
)
->
total_length
())
{
lane_s
=
lane_s
-
PredictionMap
::
LaneById
(
lane_id
)
->
total_length
();
if
(
PredictionMap
::
LaneById
(
lane_id
)
->
lane
().
successor_id_size
()
<
1
)
{
return
;
}
lane_id
=
PredictionMap
::
LaneById
(
lane_id
)
->
lane
().
successor_id
(
0
).
id
();
}
t
+=
period
;
}
return
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录