Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
c5798275
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,发现更多精彩内容 >>
提交
c5798275
编写于
1月 01, 2018
作者:
D
Dong Li
提交者:
Liangliang Zhang
1月 02, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
planning: added engage advice
上级
db2a0c36
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
134 addition
and
3 deletion
+134
-3
modules/planning/common/reference_line_info.cc
modules/planning/common/reference_line_info.cc
+66
-2
modules/planning/common/reference_line_info.h
modules/planning/common/reference_line_info.h
+3
-0
modules/planning/planning.cc
modules/planning/planning.cc
+4
-0
modules/planning/proto/BUILD
modules/planning/proto/BUILD
+1
-0
modules/planning/proto/planning.proto
modules/planning/proto/planning.proto
+6
-1
modules/planning/testdata/garage_test/result_follow_0.pb.txt
modules/planning/testdata/garage_test/result_follow_0.pb.txt
+3
-0
modules/planning/testdata/garage_test/result_stop_dest_0.pb.txt
...s/planning/testdata/garage_test/result_stop_dest_0.pb.txt
+3
-0
modules/planning/testdata/garage_test/result_stop_obstacle_0.pb.txt
...anning/testdata/garage_test/result_stop_obstacle_0.pb.txt
+4
-0
modules/planning/testdata/garage_test/result_stop_over_line_0.pb.txt
...nning/testdata/garage_test/result_stop_over_line_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_avoid_change_left_0.pb.txt
...ata/sunnyvale_loop_test/result_avoid_change_left_0.pb.txt
+4
-0
modules/planning/testdata/sunnyvale_loop_test/result_change_lane_0.pb.txt
.../testdata/sunnyvale_loop_test/result_change_lane_0.pb.txt
+4
-0
modules/planning/testdata/sunnyvale_loop_test/result_cruise_0.pb.txt
...nning/testdata/sunnyvale_loop_test/result_cruise_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_follow_01_0.pb.txt
...ng/testdata/sunnyvale_loop_test/result_follow_01_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_follow_02_0.pb.txt
...ng/testdata/sunnyvale_loop_test/result_follow_02_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_follow_03_0.pb.txt
...ng/testdata/sunnyvale_loop_test/result_follow_03_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_mission_complete_0.pb.txt
...data/sunnyvale_loop_test/result_mission_complete_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_nudge_0.pb.txt
...anning/testdata/sunnyvale_loop_test/result_nudge_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_qp_path_failure_0.pb.txt
...tdata/sunnyvale_loop_test/result_qp_path_failure_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_rightturn_01_0.pb.txt
...testdata/sunnyvale_loop_test/result_rightturn_01_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_rightturn_with_red_light_0.pb.txt
...nyvale_loop_test/result_rightturn_with_red_light_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_slowdown_01_0.pb.txt
.../testdata/sunnyvale_loop_test/result_slowdown_01_0.pb.txt
+3
-0
modules/planning/testdata/sunnyvale_loop_test/result_stop_0.pb.txt
...lanning/testdata/sunnyvale_loop_test/result_stop_0.pb.txt
+3
-0
未找到文件。
modules/planning/common/reference_line_info.cc
浏览文件 @
c5798275
...
...
@@ -38,12 +38,15 @@
namespace
apollo
{
namespace
planning
{
using
apollo
::
common
::
math
::
Vec2d
;
using
apollo
::
common
::
math
::
Box2d
;
using
apollo
::
common
::
EngageAdvice
;
using
apollo
::
common
::
SLPoint
;
using
apollo
::
common
::
TrajectoryPoint
;
using
apollo
::
common
::
VehicleConfigHelper
;
using
apollo
::
common
::
VehicleSignal
;
using
apollo
::
common
::
math
::
Box2d
;
using
apollo
::
common
::
math
::
Vec2d
;
using
apollo
::
canbus
::
Chassis
;
using
apollo
::
common
::
util
::
Dropbox
;
ReferenceLineInfo
::
ReferenceLineInfo
(
const
common
::
VehicleState
&
vehicle_state
,
const
TrajectoryPoint
&
adc_planning_point
,
...
...
@@ -535,6 +538,67 @@ void ReferenceLineInfo::SetObjectDecisions(
}
}
void
ReferenceLineInfo
::
ExportEngageAdvice
(
EngageAdvice
*
engage_advice
)
const
{
constexpr
char
kPrevAdvice
[]
=
"PlanningPreviousAdvice"
;
constexpr
double
kMaxAngleDiff
=
M_PI
/
6.0
;
auto
*
prev_advice
=
Dropbox
<
EngageAdvice
>::
Open
()
->
Get
(
kPrevAdvice
);
if
(
!
prev_advice
)
{
EngageAdvice
advice
;
Dropbox
<
EngageAdvice
>::
Open
()
->
Set
(
kPrevAdvice
,
advice
);
prev_advice
=
Dropbox
<
EngageAdvice
>::
Open
()
->
Get
(
kPrevAdvice
);
}
if
(
!
IsDrivable
())
{
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
DISALLOW_ENGAGE
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
DISALLOW_ENGAGE
);
}
else
{
engage_advice
->
set_advice
(
EngageAdvice
::
PREPARE_DISENGAGE
);
}
engage_advice
->
set_reason
(
"Reference line not drivable"
);
}
else
if
(
!
is_on_reference_line_
)
{
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
DISALLOW_ENGAGE
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
DISALLOW_ENGAGE
);
}
else
{
engage_advice
->
set_advice
(
EngageAdvice
::
PREPARE_DISENGAGE
);
}
engage_advice
->
set_reason
(
"Not on reference line"
);
}
else
{
// check heading
auto
ref_point
=
reference_line_
.
GetReferencePoint
(
adc_sl_boundary_
.
end_s
());
if
(
common
::
math
::
AngleDiff
(
vehicle_state_
.
heading
(),
ref_point
.
heading
())
>
kMaxAngleDiff
)
{
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
DISALLOW_ENGAGE
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
DISALLOW_ENGAGE
);
}
else
{
engage_advice
->
set_advice
(
EngageAdvice
::
PREPARE_DISENGAGE
);
}
engage_advice
->
set_reason
(
"Vehicle heading is not aligned"
);
}
else
{
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
DISALLOW_ENGAGE
||
prev_advice
->
advice
()
==
EngageAdvice
::
UNKNOWN
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
READY_TO_ENGAGE
);
}
else
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
READY_TO_ENGAGE
)
{
if
(
vehicle_state_
.
driving_mode
()
!=
Chassis
::
DrivingMode
::
Chassis_DrivingMode_COMPLETE_AUTO_DRIVE
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
READY_TO_ENGAGE
);
}
else
{
engage_advice
->
set_advice
(
EngageAdvice
::
KEEP_ENGAGED
);
}
}
else
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
PREPARE_DISENGAGE
)
{
if
(
vehicle_state_
.
driving_mode
()
!=
Chassis
::
DrivingMode
::
Chassis_DrivingMode_COMPLETE_AUTO_DRIVE
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
READY_TO_ENGAGE
);
}
else
{
engage_advice
->
set_advice
(
EngageAdvice
::
KEEP_ENGAGED
);
}
}
else
if
(
prev_advice
->
advice
()
==
EngageAdvice
::
KEEP_ENGAGED
)
{
engage_advice
->
set_advice
(
EngageAdvice
::
KEEP_ENGAGED
);
}
}
}
*
prev_advice
=
*
engage_advice
;
}
void
ReferenceLineInfo
::
MakeEStopDecision
(
DecisionResult
*
decision_result
)
const
{
decision_result
->
Clear
();
...
...
modules/planning/common/reference_line_info.h
浏览文件 @
c5798275
...
...
@@ -28,6 +28,7 @@
#include <unordered_set>
#include <vector>
#include "modules/common/proto/drive_state.pb.h"
#include "modules/common/proto/pnc_point.pb.h"
#include "modules/common/proto/vehicle_state.pb.h"
#include "modules/planning/proto/planning.pb.h"
...
...
@@ -113,6 +114,8 @@ class ReferenceLineInfo {
void
SetDrivable
(
bool
drivable
);
bool
IsDrivable
()
const
;
void
ExportEngageAdvice
(
common
::
EngageAdvice
*
engage_advice
)
const
;
const
hdmap
::
RouteSegments
&
Lanes
()
const
;
const
std
::
list
<
hdmap
::
Id
>
TargetLaneId
()
const
;
...
...
modules/planning/planning.cc
浏览文件 @
c5798275
...
...
@@ -452,6 +452,10 @@ Status Planning::Plan(const double current_time_stamp,
}
last_publishable_trajectory_
->
PopulateTrajectoryProtobuf
(
trajectory_pb
);
best_reference_line
->
ExportEngageAdvice
(
trajectory_pb
->
mutable_engage_advice
());
return
status
;
}
...
...
modules/planning/proto/BUILD
浏览文件 @
c5798275
...
...
@@ -19,6 +19,7 @@ proto_library(
":planning_internal_proto_lib"
,
"//modules/canbus/proto:canbus_proto_lib"
,
"//modules/common/proto:common_proto_lib"
,
"//modules/common/proto:drive_state_proto_lib"
,
"//modules/common/proto:error_code_proto_lib"
,
"//modules/common/proto:header_proto_lib"
,
"//modules/common/proto:pnc_point_proto_lib"
,
...
...
modules/planning/proto/planning.proto
浏览文件 @
c5798275
...
...
@@ -4,6 +4,7 @@ package apollo.planning;
import
"modules/common/proto/header.proto"
;
import
"modules/common/proto/vehicle_signal.proto"
;
import
"modules/common/proto/drive_state.proto"
;
import
"modules/common/proto/pnc_point.proto"
;
import
"modules/canbus/proto/chassis.proto"
;
import
"modules/map/proto/map_id.proto"
;
...
...
@@ -71,7 +72,7 @@ message LatencyStats {
optional
double
init_frame_time_ms
=
3
;
}
// next id:
19
// next id:
20
message
ADCTrajectory
{
optional
apollo.common.Header
header
=
1
;
...
...
@@ -113,4 +114,8 @@ message ADCTrajectory {
// lane id along reference line
repeated
apollo.hdmap.Id
lane_id
=
18
;
// set the engage advice for based on current planning result.
optional
apollo.common.EngageAdvice
engage_advice
=
19
;
}
modules/planning/testdata/garage_test/result_follow_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1744,3 +1744,6 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "1_-1"
}
engage_advice {
advice: READY_TO_ENGAGE
}
modules/planning/testdata/garage_test/result_stop_dest_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1744,3 +1744,6 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "1_-1"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/garage_test/result_stop_obstacle_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1758,3 +1758,7 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "1_-1"
}
engage_advice {
advice: DISALLOW_ENGAGE
reason: "Not on reference line"
}
modules/planning/testdata/garage_test/result_stop_over_line_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -906,3 +906,6 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "1_-1"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_avoid_change_left_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1580,3 +1580,7 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "40_1_-2"
}
engage_advice {
advice: PREPARE_DISENGAGE
reason: "Not on reference line"
}
modules/planning/testdata/sunnyvale_loop_test/result_change_lane_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1721,3 +1721,7 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "57_1_-1"
}
engage_advice {
advice: PREPARE_DISENGAGE
reason: "Not on reference line"
}
modules/planning/testdata/sunnyvale_loop_test/result_cruise_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1362,3 +1362,6 @@ lane_id {
lane_id {
id: "6_1_-2"
}
engage_advice {
advice: READY_TO_ENGAGE
}
modules/planning/testdata/sunnyvale_loop_test/result_follow_01_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1747,3 +1747,6 @@ lane_id {
lane_id {
id: "9_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_follow_02_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1323,3 +1323,6 @@ lane_id {
lane_id {
id: "58_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_follow_03_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1751,3 +1751,6 @@ lane_id {
lane_id {
id: "9_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_mission_complete_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1743,3 +1743,6 @@ right_of_way_status: UNPROTECTED
lane_id {
id: "57_1_-1"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_nudge_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1595,3 +1595,6 @@ lane_id {
lane_id {
id: "140_1_-1"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_qp_path_failure_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1690,3 +1690,6 @@ lane_id {
lane_id {
id: "22_1_-1"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_rightturn_01_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1747,3 +1747,6 @@ lane_id {
lane_id {
id: "58_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_rightturn_with_red_light_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1747,3 +1747,6 @@ lane_id {
lane_id {
id: "58_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_slowdown_01_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1748,3 +1748,6 @@ lane_id {
lane_id {
id: "9_1_-2"
}
engage_advice {
advice: KEEP_ENGAGED
}
modules/planning/testdata/sunnyvale_loop_test/result_stop_0.pb.txt
浏览文件 @
c5798275
...
...
@@ -1887,3 +1887,6 @@ lane_id {
lane_id {
id: "160_1_-3"
}
engage_advice {
advice: READY_TO_ENGAGE
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录