Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
aef3b6e4
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,发现更多精彩内容 >>
提交
aef3b6e4
编写于
7月 16, 2019
作者:
S
Shu Jiang
提交者:
Jiaming Tao
7月 17, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
planning: initialized stages in hailing scenario
上级
46692b5a
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
342 addition
and
27 deletion
+342
-27
modules/planning/common/planning_gflags.cc
modules/planning/common/planning_gflags.cc
+6
-3
modules/planning/common/planning_gflags.h
modules/planning/common/planning_gflags.h
+2
-1
modules/planning/conf/scenario/hailing_config.pb.txt
modules/planning/conf/scenario/hailing_config.pb.txt
+0
-1
modules/planning/conf/scenario/park_and_go_config.pb.txt
modules/planning/conf/scenario/park_and_go_config.pb.txt
+13
-0
modules/planning/proto/planning_config.proto
modules/planning/proto/planning_config.proto
+9
-4
modules/planning/scenarios/park_and_go/BUILD
modules/planning/scenarios/park_and_go/BUILD
+69
-0
modules/planning/scenarios/park_and_go/park_and_go_scenario.cc
...es/planning/scenarios/park_and_go/park_and_go_scenario.cc
+83
-0
modules/planning/scenarios/park_and_go/park_and_go_scenario.h
...les/planning/scenarios/park_and_go/park_and_go_scenario.h
+26
-5
modules/planning/scenarios/park_and_go/park_and_go_scenario_test.cc
...anning/scenarios/park_and_go/park_and_go_scenario_test.cc
+7
-7
modules/planning/scenarios/park_and_go/stage_check.cc
modules/planning/scenarios/park_and_go/stage_check.cc
+55
-0
modules/planning/scenarios/park_and_go/stage_check.h
modules/planning/scenarios/park_and_go/stage_check.h
+52
-0
modules/planning/scenarios/park_and_go/stage_check_test.cc
modules/planning/scenarios/park_and_go/stage_check_test.cc
+20
-6
未找到文件。
modules/planning/common/planning_gflags.cc
浏览文件 @
aef3b6e4
...
...
@@ -63,10 +63,10 @@ DEFINE_string(scenario_valet_parking_config_file,
"/apollo/modules/planning/conf/"
"scenario/valet_parking_config.pb.txt"
,
"valet_parking scenario config file"
);
DEFINE_string
(
scenario_
hailing
_config_file
,
DEFINE_string
(
scenario_
park_and_go
_config_file
,
"/apollo/modules/planning/conf/"
"scenario/
hailing
_config.pb.txt"
,
"
hailing
scenario config file"
);
"scenario/
park_and_go
_config.pb.txt"
,
"
park_and_go
scenario config file"
);
DEFINE_bool
(
enable_scenario_bare_intersection
,
false
,
"enable bare_intersection scenarios in planning"
);
...
...
@@ -90,6 +90,9 @@ DEFINE_bool(enable_scenario_traffic_light, true,
DEFINE_bool
(
enable_force_pull_over_open_space_parking_test
,
false
,
"enable force_pull_over_open_space_parking_test"
);
DEFINE_bool
(
enable_scenario_park_and_go
,
false
,
"enable park-and-go scenario in planning"
);
DEFINE_string
(
traffic_rule_config_filename
,
"/apollo/modules/planning/conf/traffic_rule_config.pb.txt"
,
"Traffic rule config filename"
);
...
...
modules/planning/common/planning_gflags.h
浏览文件 @
aef3b6e4
...
...
@@ -29,7 +29,7 @@ DECLARE_string(scenario_lane_follow_config_file);
DECLARE_string
(
scenario_narrow_street_u_turn_config_file
);
DECLARE_string
(
scenario_pull_over_config_file
);
DECLARE_string
(
scenario_stop_sign_unprotected_config_file
);
DECLARE_string
(
scenario_
hailing
_config_file
);
DECLARE_string
(
scenario_
park_and_go
_config_file
);
DECLARE_string
(
scenario_traffic_light_protected_config_file
);
DECLARE_string
(
scenario_traffic_light_unprotected_left_turn_config_file
);
DECLARE_string
(
scenario_traffic_light_unprotected_right_turn_config_file
);
...
...
@@ -38,6 +38,7 @@ DECLARE_string(scenario_valet_parking_config_file);
DECLARE_bool
(
enable_scenario_bare_intersection
);
DECLARE_bool
(
enable_scenario_pull_over
);
DECLARE_bool
(
enable_scenario_park_and_go
);
DECLARE_bool
(
enable_scenario_stop_sign
);
DECLARE_bool
(
enable_scenario_traffic_light
);
DECLARE_bool
(
enable_pull_over_exit
);
...
...
modules/planning/conf/scenario/hailing_config.pb.txt
已删除
100644 → 0
浏览文件 @
46692b5a
scenario_type: HAILING
\ No newline at end of file
modules/planning/conf/scenario/park_and_go_config.pb.txt
0 → 100644
浏览文件 @
aef3b6e4
scenario_type: PARK_AND_GO
park_and_go_config:
{
}
stage_type: PARK_AND_GO_CHECK
stage_type: PARK_AND_GO_ADJUST
stage_type: PARK_AND_GO_CRUISE
stage_config:{
stage_type: PARK_AND_GO_CHECK
enabled: true
}
modules/planning/proto/planning_config.proto
浏览文件 @
aef3b6e4
...
...
@@ -154,7 +154,7 @@ message ScenarioValetParkingConfig {
message
ScenarioNarrowStreetUTurnConfig
{}
message
Scenario
Hailing
Config
{}
message
Scenario
ParkAndGo
Config
{}
// scenario configs
message
ScenarioConfig
{
...
...
@@ -177,7 +177,7 @@ message ScenarioConfig {
// misc
NARROW_STREET_U_TURN
=
12
;
HAILING
=
13
;
PARK_AND_GO
=
13
;
}
// StageType is a superset of stages from all scenarios.
...
...
@@ -219,6 +219,11 @@ message ScenarioConfig {
// valet parking scenario
VALET_PARKING_APPROACHING_PARKING_SPOT
=
510
;
VALET_PARKING_PARKING
=
511
;
// park_and_go scenario
PARK_AND_GO_CHECK
=
601
;
PARK_AND_GO_CRUISE
=
602
;
PARK_AND_GO_ADJUST
=
603
;
};
message
StageConfig
{
...
...
@@ -228,7 +233,7 @@ message ScenarioConfig {
repeated
TaskConfig.TaskType
task_type
=
3
;
// an unordered task configurations
repeated
TaskConfig
task_config
=
4
;
}
}
optional
ScenarioType
scenario_type
=
1
;
oneof
scenario_config
{
...
...
@@ -241,7 +246,7 @@ message ScenarioConfig {
ScenarioPullOverConfig
pull_over_config
=
9
;
ScenarioValetParkingConfig
valet_parking_config
=
10
;
ScenarioNarrowStreetUTurnConfig
narrow_street_u_turn_config
=
11
;
Scenario
HailingConfig
hailing
_config
=
12
;
Scenario
ParkAndGoConfig
park_and_go
_config
=
12
;
}
// a list of stages that are used at runtime. The first one is default stage.
repeated
StageType
stage_type
=
13
;
...
...
modules/planning/scenarios/
hailing
/BUILD
→
modules/planning/scenarios/
park_and_go
/BUILD
浏览文件 @
aef3b6e4
...
...
@@ -3,41 +3,65 @@ load("//tools:cpplint.bzl", "cpplint")
package
(
default_visibility
=
[
"//visibility:public"
])
cc_library
(
name
=
"
hailing
"
,
name
=
"
park_and_go
"
,
copts
=
[
"-DMODULE_NAME=
\\\"
planning
\\\"
"
],
deps
=
[
":
hailing
_scenario"
,
":
park_and_go
_scenario"
,
],
)
cc_library
(
name
=
"
hailing
_scenario"
,
name
=
"
park_and_go
_scenario"
,
srcs
=
[
"hailing_scenario.cc"
,
"park_and_go_scenario.cc"
,
"stage_check.cc"
,
],
hdrs
=
[
"hailing_scenario.h"
,
"park_and_go_scenario.h"
,
"stage_check.h"
,
],
copts
=
[
"-DMODULE_NAME=
\\\"
planning
\\\"
"
],
deps
=
[
"//cyber/common:log"
,
"//external:gflags"
,
"//modules/common"
,
"//modules/common/util:factory"
,
"//modules/common/vehicle_state:vehicle_state_provider"
,
"//modules/planning/common:planning_common"
,
"//modules/planning/common/util:common_lib"
,
"//modules/planning/common/util:util_lib"
,
"//modules/planning/proto:planning_proto"
,
"//modules/planning/scenarios:scenario"
,
"//modules/planning/scenarios/util:scenario_util_lib"
,
],
)
cc_test
(
name
=
"
hailing
_scenario_test"
,
name
=
"
park_and_go
_scenario_test"
,
size
=
"small"
,
srcs
=
[
"
hailing
_scenario_test.cc"
,
"
park_and_go
_scenario_test.cc"
,
],
data
=
[
"//modules/planning:planning_conf"
,
],
deps
=
[
":hailing"
,
":park_and_go"
,
"@gtest//:main"
,
],
)
cc_test
(
name
=
"stage_check_test"
,
size
=
"small"
,
srcs
=
[
"stage_check_test.cc"
,
],
data
=
[
"//modules/planning:planning_conf"
,
],
deps
=
[
":park_and_go"
,
"@gtest//:main"
,
],
)
...
...
modules/planning/scenarios/park_and_go/park_and_go_scenario.cc
0 → 100644
浏览文件 @
aef3b6e4
/******************************************************************************
* Copyright 2019 The Apollo Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
#include "modules/planning/scenarios/park_and_go/park_and_go_scenario.h"
#include "cyber/common/log.h"
#include "modules/planning/scenarios/park_and_go/stage_check.h"
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
park_and_go
{
apollo
::
common
::
util
::
Factory
<
ScenarioConfig
::
StageType
,
Stage
,
Stage
*
(
*
)(
const
ScenarioConfig
::
StageConfig
&
stage_config
)
>
ParkAndGoScenario
::
s_stage_factory_
;
void
ParkAndGoScenario
::
Init
()
{
if
(
init_
)
{
return
;
}
Scenario
::
Init
();
if
(
!
GetScenarioConfig
())
{
AERROR
<<
"fail to get scenario specific config"
;
return
;
}
init_
=
true
;
}
void
ParkAndGoScenario
::
RegisterStages
()
{
if
(
!
s_stage_factory_
.
Empty
())
{
s_stage_factory_
.
Clear
();
}
s_stage_factory_
.
Register
(
ScenarioConfig
::
PARK_AND_GO_CHECK
,
[](
const
ScenarioConfig
::
StageConfig
&
config
)
->
Stage
*
{
return
new
ParkAndGoStageCheck
(
config
);
});
}
std
::
unique_ptr
<
Stage
>
ParkAndGoScenario
::
CreateStage
(
const
ScenarioConfig
::
StageConfig
&
stage_config
)
{
if
(
s_stage_factory_
.
Empty
())
{
RegisterStages
();
}
auto
ptr
=
s_stage_factory_
.
CreateObjectOrNull
(
stage_config
.
stage_type
(),
stage_config
);
if
(
ptr
)
{
ptr
->
SetContext
(
&
context_
);
}
return
ptr
;
}
bool
ParkAndGoScenario
::
GetScenarioConfig
()
{
if
(
!
config_
.
has_park_and_go_config
())
{
AERROR
<<
"miss scenario specific config"
;
return
false
;
}
context_
.
scenario_config
.
CopyFrom
(
config_
.
park_and_go_config
());
return
true
;
}
}
// namespace park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
modules/planning/scenarios/
hailing/hailing
_scenario.h
→
modules/planning/scenarios/
park_and_go/park_and_go
_scenario.h
浏览文件 @
aef3b6e4
...
...
@@ -17,7 +17,6 @@
/**
* @file
**/
#pragma once
#include <memory>
...
...
@@ -27,18 +26,40 @@
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
hailing
{
namespace
park_and_go
{
// stage context
struct
ParkAndGoContext
{
ScenarioParkAndGoConfig
scenario_config
;
};
class
Hailing
Scenario
:
public
Scenario
{
class
ParkAndGo
Scenario
:
public
Scenario
{
public:
HailingScenario
(
const
ScenarioConfig
&
config
,
const
ScenarioContext
*
context
)
ParkAndGoScenario
(
const
ScenarioConfig
&
config
,
const
ScenarioContext
*
context
)
:
Scenario
(
config
,
context
)
{}
void
Init
()
override
;
std
::
unique_ptr
<
Stage
>
CreateStage
(
const
ScenarioConfig
::
StageConfig
&
stage_config
)
override
;
ParkAndGoContext
*
GetContext
()
{
return
&
context_
;
}
private:
static
void
RegisterStages
();
bool
GetScenarioConfig
();
private:
static
apollo
::
common
::
util
::
Factory
<
ScenarioConfig
::
StageType
,
Stage
,
Stage
*
(
*
)(
const
ScenarioConfig
::
StageConfig
&
stage_config
)
>
s_stage_factory_
;
bool
init_
=
false
;
ParkAndGoContext
context_
;
};
}
// namespace
hailing
}
// namespace
park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
modules/planning/scenarios/
hailing/hailing
_scenario_test.cc
→
modules/planning/scenarios/
park_and_go/park_and_go
_scenario_test.cc
浏览文件 @
aef3b6e4
...
...
@@ -18,7 +18,7 @@
* @file
**/
#include "modules/planning/scenarios/
hailing/hailing
_scenario.h"
#include "modules/planning/scenarios/
park_and_go/park_and_go
_scenario.h"
#include "gtest/gtest.h"
...
...
@@ -29,23 +29,23 @@
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
hailing
{
namespace
park_and_go
{
class
Hailing
Test
:
public
::
testing
::
Test
{
class
ParkAndGo
Test
:
public
::
testing
::
Test
{
public:
virtual
void
SetUp
()
{}
protected:
std
::
unique_ptr
<
Hailing
Scenario
>
scenario_
;
std
::
unique_ptr
<
ParkAndGo
Scenario
>
scenario_
;
};
TEST_F
(
Hailing
Test
,
VerifyConf
)
{
TEST_F
(
ParkAndGo
Test
,
VerifyConf
)
{
ScenarioConfig
config
;
EXPECT_TRUE
(
apollo
::
cyber
::
common
::
GetProtoFromFile
(
FLAGS_scenario_
hailing
_config_file
,
&
config
));
FLAGS_scenario_
park_and_go
_config_file
,
&
config
));
}
}
// namespace
hailing
}
// namespace
park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
modules/planning/scenarios/park_and_go/stage_check.cc
0 → 100644
浏览文件 @
aef3b6e4
/******************************************************************************
* Copyright 2019 The Apollo Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
#include "modules/planning/scenarios/park_and_go/stage_check.h"
#include <string>
#include <vector>
#include "cyber/common/log.h"
#include "modules/planning/common/frame.h"
#include "modules/planning/common/planning_context.h"
#include "modules/planning/common/util/common.h"
#include "modules/planning/scenarios/util/util.h"
#include "modules/planning/tasks/deciders/path_bounds_decider/path_bounds_decider.h"
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
park_and_go
{
using
common
::
TrajectoryPoint
;
Stage
::
StageStatus
ParkAndGoStageCheck
::
Process
(
const
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
{
return
FinishStage
(
true
);
}
Stage
::
StageStatus
ParkAndGoStageCheck
::
FinishStage
(
const
bool
success
)
{
if
(
success
)
{
next_stage_
=
ScenarioConfig
::
PARK_AND_GO_CRUISE
;
}
else
{
next_stage_
=
ScenarioConfig
::
PARK_AND_GO_ADJUST
;
}
// TODO(SHU) add implementation
return
Stage
::
FINISHED
;
}
}
// namespace park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
modules/planning/scenarios/park_and_go/stage_check.h
0 → 100644
浏览文件 @
aef3b6e4
/******************************************************************************
* Copyright 2019 The Apollo Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
#pragma once
#include "modules/planning/proto/planning_config.pb.h"
#include "modules/planning/scenarios/park_and_go/park_and_go_scenario.h"
#include "modules/planning/scenarios/stage.h"
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
park_and_go
{
struct
ParkAndGoContext
;
class
ParkAndGoStageCheck
:
public
Stage
{
public:
explicit
ParkAndGoStageCheck
(
const
ScenarioConfig
::
StageConfig
&
config
)
:
Stage
(
config
)
{}
Stage
::
StageStatus
Process
(
const
common
::
TrajectoryPoint
&
planning_init_point
,
Frame
*
frame
)
override
;
ParkAndGoContext
*
GetContext
()
{
return
Stage
::
GetContextAs
<
ParkAndGoContext
>
();
}
Stage
::
StageStatus
FinishStage
(
const
bool
success
);
private:
ScenarioParkAndGoConfig
scenario_config_
;
};
}
// namespace park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
modules/planning/scenarios/
hailing/hailing_scenario
.cc
→
modules/planning/scenarios/
park_and_go/stage_check_test
.cc
浏览文件 @
aef3b6e4
...
...
@@ -17,19 +17,33 @@
/**
* @file
**/
#include "modules/planning/scenarios/hailing/hailing_scenario.h"
#include "modules/planning/scenarios/park_and_go/stage_check.h"
#include "gtest/gtest.h"
#include "modules/planning/proto/planning_config.pb.h"
namespace
apollo
{
namespace
planning
{
namespace
scenario
{
namespace
hailing
{
namespace
park_and_go
{
class
ParkAndGoStageCheckTest
:
public
::
testing
::
Test
{
public:
virtual
void
SetUp
()
{
config_
.
set_stage_type
(
ScenarioConfig
::
PARK_AND_GO_CHECK
);
}
protected:
ScenarioConfig
::
StageConfig
config_
;
};
std
::
unique_ptr
<
Stage
>
HailingScenario
::
CreateStage
(
const
ScenarioConfig
::
StageConfig
&
stage_config
)
{
return
nullptr
;
TEST_F
(
ParkAndGoStageCheckTest
,
Init
)
{
ParkAndGoStageCheck
park_and_go_stage_check
(
config_
);
EXPECT_EQ
(
park_and_go_stage_check
.
Name
(),
ScenarioConfig
::
StageType_Name
(
config_
.
stage_type
()));
}
}
// namespace
hailing
}
// namespace
park_and_go
}
// namespace scenario
}
// namespace planning
}
// namespace apollo
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录