Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
db5d4959
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,发现更多精彩内容 >>
提交
db5d4959
编写于
7月 25, 2017
作者:
Z
Zhang Liangliang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added Init functions for planning optimizers.
上级
0375ee48
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
49 addition
and
24 deletion
+49
-24
modules/planning/optimizer/dp_poly_path/dp_poly_path_optimizer.h
.../planning/optimizer/dp_poly_path/dp_poly_path_optimizer.h
+1
-1
modules/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.cc
...s/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.cc
+5
-0
modules/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.h
...es/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.h
+3
-0
modules/planning/optimizer/qp_spline_path/qp_spline_path_optimizer.cc
...ning/optimizer/qp_spline_path/qp_spline_path_optimizer.cc
+10
-4
modules/planning/optimizer/qp_spline_path/qp_spline_path_optimizer.h
...nning/optimizer/qp_spline_path/qp_spline_path_optimizer.h
+1
-0
modules/planning/optimizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.cc
...imizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.cc
+24
-18
modules/planning/optimizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.h
...timizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.h
+5
-1
未找到文件。
modules/planning/optimizer/dp_poly_path/dp_poly_path_optimizer.h
浏览文件 @
db5d4959
...
...
@@ -34,7 +34,7 @@ class DpPolyPathOptimizer : public PathOptimizer {
public:
explicit
DpPolyPathOptimizer
(
const
std
::
string
&
name
);
virtual
bool
Init
();
virtual
bool
Init
()
override
;
private:
apollo
::
common
::
Status
Process
(
const
SpeedData
&
speed_data
,
...
...
modules/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.cc
浏览文件 @
db5d4959
...
...
@@ -41,6 +41,11 @@ using ::apollo::localization::LocalizationEstimate;
DpStSpeedOptimizer
::
DpStSpeedOptimizer
(
const
std
::
string
&
name
)
:
SpeedOptimizer
(
name
)
{}
bool
DpStSpeedOptimizer
::
Init
()
{
// TOOD: complete this function.
return
true
;
}
Status
DpStSpeedOptimizer
::
Process
(
const
PathData
&
path_data
,
const
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
...
...
modules/planning/optimizer/dp_st_speed/dp_st_speed_optimizer.h
浏览文件 @
db5d4959
...
...
@@ -32,6 +32,9 @@ class DpStSpeedOptimizer : public SpeedOptimizer {
public:
explicit
DpStSpeedOptimizer
(
const
std
::
string
&
name
);
virtual
bool
Init
()
override
;
private:
virtual
apollo
::
common
::
Status
Process
(
const
PathData
&
path_data
,
const
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
...
...
modules/planning/optimizer/qp_spline_path/qp_spline_path_optimizer.cc
浏览文件 @
db5d4959
...
...
@@ -30,10 +30,16 @@ using apollo::common::Status;
QPSplinePathOptimizer
::
QPSplinePathOptimizer
(
const
std
::
string
&
name
)
:
PathOptimizer
(
name
)
{}
Status
QPSplinePathOptimizer
::
Process
(
const
SpeedData
&
speed_data
,
const
ReferenceLine
&
reference_line
,
const
common
::
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
PathData
*
const
path_data
)
{
bool
QPSplinePathOptimizer
::
Init
()
{
is_init_
=
true
;
return
true
;
}
Status
QPSplinePathOptimizer
::
Process
(
const
SpeedData
&
speed_data
,
const
ReferenceLine
&
reference_line
,
const
common
::
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
PathData
*
const
path_data
)
{
_path_generator
.
SetConfig
(
FLAGS_qp_spline_path_config_file
);
if
(
!
_path_generator
.
generate
(
reference_line
,
*
decision_data
,
speed_data
,
init_point
,
path_data
))
{
...
...
modules/planning/optimizer/qp_spline_path/qp_spline_path_optimizer.h
浏览文件 @
db5d4959
...
...
@@ -31,6 +31,7 @@ namespace planning {
class
QPSplinePathOptimizer
:
public
PathOptimizer
{
public:
explicit
QPSplinePathOptimizer
(
const
std
::
string
&
name
);
virtual
bool
Init
()
override
;
private:
apollo
::
common
::
Status
Process
(
const
SpeedData
&
speed_data
,
...
...
modules/planning/optimizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.cc
浏览文件 @
db5d4959
...
...
@@ -39,39 +39,45 @@ using TrajectoryPoint = apollo::common::TrajectoryPoint;
QpSplineStSpeedOptimizer
::
QpSplineStSpeedOptimizer
(
const
std
::
string
&
name
)
:
SpeedOptimizer
(
name
)
{}
Status
QpSplineStSpeedOptimizer
::
process
(
const
PathData
&
path_data
,
const
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
SpeedData
*
const
speed_data
)
const
{
bool
QpSplineStSpeedOptimizer
::
Init
()
{
// load boundary mapper
StBoundaryConfig
st_boundary_config
;
if
(
!
common
::
util
::
GetProtoFromFile
(
FLAGS_st_boundary_config_file
,
&
st_boundary_config
))
{
&
st_boundary_config
_
))
{
AERROR
<<
"Failed to load config file: "
<<
FLAGS_st_boundary_config_file
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"Failed to load config file."
)
;
return
false
;
}
// load qp_spline_st_speed_config
QpSplineStSpeedConfig
qp_spline_st_speed_config
;
// load qp_spline_st_speed_config_
if
(
!
common
::
util
::
GetProtoFromFile
(
FLAGS_qp_spline_st_speed_config_file
,
&
qp_spline_st_speed_config
))
{
&
qp_spline_st_speed_config
_
))
{
AERROR
<<
"Failed to load config file: "
<<
FLAGS_qp_spline_st_speed_config_file
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"Failed to load config file."
)
;
return
false
;
}
is_init_
=
true
;
return
true
;
}
double
total_length
=
std
::
min
(
qp_spline_st_speed_config
.
total_path_length
(),
Status
QpSplineStSpeedOptimizer
::
process
(
const
PathData
&
path_data
,
const
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
SpeedData
*
const
speed_data
)
const
{
if
(
!
is_init_
)
{
AERROR
<<
"Please call Init() before Process."
;
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"Not init."
);
}
double
total_length
=
std
::
min
(
qp_spline_st_speed_config_
.
total_path_length
(),
path_data
.
path
().
param_length
());
// step 1 get boundaries
const
auto
&
veh_param
=
common
::
config
::
VehicleConfigHelper
::
GetConfig
().
vehicle_param
();
QpSplineStBoundaryMapper
st_mapper
(
st_boundary_config
,
veh_param
);
QpSplineStBoundaryMapper
st_mapper
(
st_boundary_config
_
,
veh_param
);
std
::
vector
<
StGraphBoundary
>
boundaries
;
if
(
st_mapper
.
get_graph_boundary
(
init_point
,
*
decision_data
,
path_data
,
qp_spline_st_speed_config
.
total_path_length
(),
qp_spline_st_speed_config
.
total_time
(),
qp_spline_st_speed_config
_
.
total_path_length
(),
qp_spline_st_speed_config
_
.
total_time
(),
&
boundaries
)
!=
Status
::
OK
())
{
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"Mapping obstacle for dp st speed optimizer failed!"
);
...
...
@@ -82,15 +88,15 @@ Status QpSplineStSpeedOptimizer::process(const PathData& path_data,
apollo
::
common
::
vehicle_state
::
VehicleState
::
instance
()
->
pose
();
const
auto
&
hdmap
=
apollo
::
planning
::
DataCenter
::
instance
()
->
map
();
if
(
st_mapper
.
get_speed_limits
(
pose
,
hdmap
,
path_data
,
total_length
,
qp_spline_st_speed_config
.
total_time
(),
qp_spline_st_speed_config
.
max_speed
(),
qp_spline_st_speed_config
_
.
total_time
(),
qp_spline_st_speed_config
_
.
max_speed
(),
&
speed_limits
)
!=
Status
::
OK
())
{
return
Status
(
ErrorCode
::
PLANNING_ERROR
,
"Mapping obstacle for dp st speed optimizer failed!"
);
}
// step 2 perform graph search
QpSplineStGraph
st_graph
(
qp_spline_st_speed_config
,
veh_param
);
QpSplineStGraph
st_graph
(
qp_spline_st_speed_config
_
,
veh_param
);
StGraphData
st_graph_data
(
boundaries
,
init_point
,
speed_limits
,
path_data
.
path
().
param_length
());
...
...
modules/planning/optimizer/qp_spline_st_speed/qp_spline_st_speed_optimizer.h
浏览文件 @
db5d4959
...
...
@@ -24,8 +24,8 @@
#include "modules/planning/optimizer/speed_optimizer.h"
#include "modules/common/configs/proto/vehicle_config.pb.h"
#include "modules/localization/proto/pose.pb.h"
#include "modules/planning/proto/qp_spline_st_speed_config.pb.h"
#include "modules/planning/proto/st_boundary_config.pb.h"
#include "modules/map/hdmap/hdmap.h"
...
...
@@ -36,11 +36,15 @@ class QpSplineStSpeedOptimizer : public SpeedOptimizer {
public:
explicit
QpSplineStSpeedOptimizer
(
const
std
::
string
&
name
);
virtual
bool
Init
()
override
;
private:
virtual
common
::
Status
process
(
const
PathData
&
path_data
,
const
apollo
::
common
::
TrajectoryPoint
&
init_point
,
DecisionData
*
const
decision_data
,
SpeedData
*
const
speed_data
)
const
;
StBoundaryConfig
st_boundary_config_
;
QpSplineStSpeedConfig
qp_spline_st_speed_config_
;
};
}
// namespace planning
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录