Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Pinoxchio
apollo
提交
37deb369
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,发现更多精彩内容 >>
提交
37deb369
编写于
7月 24, 2017
作者:
C
Calvin Miao
提交者:
lianglia-apollo
7月 24, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added free move trajectory
上级
4524d4e7
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
104 addition
and
9 deletion
+104
-9
modules/prediction/container/obstacles/obstacle.cc
modules/prediction/container/obstacles/obstacle.cc
+5
-0
modules/prediction/container/obstacles/obstacle.h
modules/prediction/container/obstacles/obstacle.h
+2
-0
modules/prediction/predictor/BUILD
modules/prediction/predictor/BUILD
+1
-0
modules/prediction/predictor/pedestrian/regional_predictor.cc
...les/prediction/predictor/pedestrian/regional_predictor.cc
+1
-1
modules/prediction/predictor/pedestrian/regional_predictor.h
modules/prediction/predictor/pedestrian/regional_predictor.h
+1
-1
modules/prediction/predictor/predictor.cc
modules/prediction/predictor/predictor.cc
+26
-0
modules/prediction/predictor/predictor.h
modules/prediction/predictor/predictor.h
+20
-1
modules/prediction/predictor/vehicle/BUILD
modules/prediction/predictor/vehicle/BUILD
+5
-2
modules/prediction/predictor/vehicle/free_move_predictor.cc
modules/prediction/predictor/vehicle/free_move_predictor.cc
+40
-1
modules/prediction/predictor/vehicle/free_move_predictor.h
modules/prediction/predictor/vehicle/free_move_predictor.h
+1
-1
modules/prediction/predictor/vehicle/lane_sequence_predictor.cc
...s/prediction/predictor/vehicle/lane_sequence_predictor.cc
+1
-1
modules/prediction/predictor/vehicle/lane_sequence_predictor.h
...es/prediction/predictor/vehicle/lane_sequence_predictor.h
+1
-1
未找到文件。
modules/prediction/container/obstacles/obstacle.cc
浏览文件 @
37deb369
...
...
@@ -118,6 +118,11 @@ const KalmanFilter<double, 4, 2, 0>& Obstacle::kf_lane_tracker(
return
kf_lane_trackers_
[
lane_id
];
}
const
KalmanFilter
<
double
,
6
,
2
,
0
>&
Obstacle
::
kf_motion_tracker
()
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
return
kf_motion_tracker_
;
}
bool
Obstacle
::
IsOnLane
()
{
std
::
lock_guard
<
std
::
mutex
>
lock
(
mutex_
);
if
(
feature_history_
.
size
()
>
0
)
{
...
...
modules/prediction/container/obstacles/obstacle.h
浏览文件 @
37deb369
...
...
@@ -64,6 +64,8 @@ class Obstacle {
const
apollo
::
common
::
math
::
KalmanFilter
<
double
,
4
,
2
,
0
>&
kf_lane_tracker
(
const
std
::
string
&
lane_id
);
const
apollo
::
common
::
math
::
KalmanFilter
<
double
,
6
,
2
,
0
>&
kf_motion_tracker
();
bool
IsOnLane
();
private:
...
...
modules/prediction/predictor/BUILD
浏览文件 @
37deb369
...
...
@@ -41,6 +41,7 @@ cc_library(
deps
=
[
"//modules/prediction/proto:prediction_proto"
,
"//modules/prediction/container/obstacles:obstacle"
,
"//modules/common/proto:path_point_proto"
,
]
)
...
...
modules/prediction/predictor/pedestrian/regional_predictor.cc
浏览文件 @
37deb369
...
...
@@ -19,7 +19,7 @@
namespace
apollo
{
namespace
prediction
{
void
RegionalPredictor
::
Predict
(
Obstacle
*
obstacle
)
const
{}
void
RegionalPredictor
::
Predict
(
Obstacle
*
obstacle
)
{}
}
// namespace prediction
}
// namespace apollo
modules/prediction/predictor/pedestrian/regional_predictor.h
浏览文件 @
37deb369
...
...
@@ -43,7 +43,7 @@ class RegionalPredictor : public Predictor {
* @brief Make prediction
* @param Obstacle pointer
*/
void
Predict
(
Obstacle
*
obstacle
)
const
override
;
void
Predict
(
Obstacle
*
obstacle
)
override
;
};
}
// namespace prediction
...
...
modules/prediction/predictor/predictor.cc
浏览文件 @
37deb369
...
...
@@ -23,5 +23,31 @@ const PredictionObstacle& Predictor::prediction_obstacle() {
return
prediction_obstacle_
;
}
int
Predictor
::
GetTrajectorySize
()
{
return
prediction_obstacle_
.
trajectory_size
();
}
void
Predictor
::
GenerateTrajectory
(
const
std
::
vector
<::
apollo
::
common
::
TrajectoryPoint
>&
points
,
Trajectory
*
trajectory
)
{
if
(
points
.
size
()
<=
0
)
{
return
;
}
for
(
const
auto
&
point
:
points
)
{
trajectory
->
add_trajectory_point
()
->
CopyFrom
(
point
);
}
}
void
Predictor
::
SetEqualProbability
(
double
probability
,
int
start_index
)
{
int
num
=
GetTrajectorySize
();
if
(
start_index
>
0
&&
num
>
0
&&
num
>
start_index
)
{
probability
=
probability
/
(
double
(
num
-
start_index
));
for
(
int
i
=
start_index
;
i
<
num
;
++
i
)
{
prediction_obstacle_
.
mutable_trajectory
(
i
)
->
set_probability
(
probability
);
}
}
}
}
// namespace prediction
}
// namespace apollo
modules/prediction/predictor/predictor.h
浏览文件 @
37deb369
...
...
@@ -25,6 +25,7 @@
#include "modules/prediction/proto/prediction_obstacle.pb.h"
#include "modules/prediction/container/obstacles/obstacle.h"
#include "modules/common/proto/path_point.pb.h"
/**
* @namespace apollo::prediction
...
...
@@ -54,7 +55,25 @@ class Predictor {
* @brief Make prediction
* @param Obstacle pointer
*/
virtual
void
Predict
(
Obstacle
*
obstacle
)
const
=
0
;
virtual
void
Predict
(
Obstacle
*
obstacle
)
=
0
;
/**
* @brief Get trajectory size
* @return Size of trajectories
*/
int
GetTrajectorySize
();
protected:
/**
* @brief Generate trajectory from trajectory points
* @param A vector of trajectory points
* A pointer to generated trajectory
*/
void
GenerateTrajectory
(
const
std
::
vector
<::
apollo
::
common
::
TrajectoryPoint
>&
points
,
Trajectory
*
trajectory
);
void
SetEqualProbability
(
double
probability
,
int
start_index
);
protected:
PredictionObstacle
prediction_obstacle_
;
...
...
modules/prediction/predictor/vehicle/BUILD
浏览文件 @
37deb369
...
...
@@ -8,7 +8,7 @@ cc_library(
srcs
=
[
"lane_sequence_predictor.cc"
],
deps
=
[
"//modules/prediction/predictor:predictor"
,
"
@glog//:g
log"
,
"
//modules/common:
log"
,
]
)
...
...
@@ -18,7 +18,10 @@ cc_library(
srcs
=
[
"free_move_predictor.cc"
],
deps
=
[
"//modules/prediction/predictor:predictor"
,
"@glog//:glog"
,
"//modules/prediction/proto:feature_proto"
,
"//modules/prediction/common:prediction_gflags"
,
"//modules/common:log"
,
"@eigen//:eigen"
,
]
)
...
...
modules/prediction/predictor/vehicle/free_move_predictor.cc
浏览文件 @
37deb369
...
...
@@ -16,10 +16,49 @@
#include "modules/prediction/predictor/vehicle/free_move_predictor.h"
#include <vector>
#include "Eigen/Dense"
#include "modules/prediction/common/prediction_gflags.h"
#include "modules/prediction/proto/feature.pb.h"
namespace
apollo
{
namespace
prediction
{
void
FreeMovePredictor
::
Predict
(
Obstacle
*
obstacle
)
const
{}
using
::
apollo
::
common
::
TrajectoryPoint
;
void
FreeMovePredictor
::
Predict
(
Obstacle
*
obstacle
)
{
CHECK_NOTNULL
(
obstacle
);
CHECK_GT
(
obstacle
->
history_size
(),
0
);
const
Feature
&
feature
=
obstacle
->
latest_feature
();
if
(
!
feature
.
has_position
()
||
!
feature
.
has_velocity
()
||
!
feature
.
position
().
has_x
()
||
!
feature
.
position
().
has_y
())
{
AERROR
<<
"Obstacle ["
<<
obstacle
->
id
()
<<
" is missing position or velocity"
;
return
;
}
Eigen
::
Vector2d
position
(
feature
.
position
().
x
(),
feature
.
position
().
y
());
Eigen
::
Vector2d
velocity
(
feature
.
velocity
().
x
(),
feature
.
velocity
().
y
());
if
(
FLAGS_enable_kf_tracking
)
{
position
(
0
)
=
feature
.
t_position
().
x
();
position
(
1
)
=
feature
.
t_position
().
y
();
velocity
(
0
)
=
feature
.
t_velocity
().
x
();
velocity
(
1
)
=
feature
.
t_velocity
().
y
();
}
std
::
vector
<
TrajectoryPoint
>
points
(
0
);
double
total_time
=
FLAGS_prediction_duration
;
// TODO(jinghao):
// draw_free_move_trajectory(position, velocity, obstacle->kf_motion_tracker(),
// total_time, points);
Trajectory
trajectory
;
GenerateTrajectory
(
points
,
&
trajectory
);
trajectory
.
set_probability
(
1.0
);
prediction_obstacle_
.
set_predicted_period
(
total_time
);
prediction_obstacle_
.
add_trajectory
()
->
CopyFrom
(
trajectory
);
}
}
// prediction
}
// apollo
modules/prediction/predictor/vehicle/free_move_predictor.h
浏览文件 @
37deb369
...
...
@@ -43,7 +43,7 @@ class FreeMovePredictor : public Predictor {
* @brief Make prediction
* @param Obstacle pointer
*/
void
Predict
(
Obstacle
*
obstacle
)
const
override
;
void
Predict
(
Obstacle
*
obstacle
)
override
;
};
}
// namespace prediction
...
...
modules/prediction/predictor/vehicle/lane_sequence_predictor.cc
浏览文件 @
37deb369
...
...
@@ -19,7 +19,7 @@
namespace
apollo
{
namespace
prediction
{
void
LaneSequencePredictor
::
Predict
(
Obstacle
*
obstacle
)
const
{}
void
LaneSequencePredictor
::
Predict
(
Obstacle
*
obstacle
)
{}
}
// prediction
}
// apollo
modules/prediction/predictor/vehicle/lane_sequence_predictor.h
浏览文件 @
37deb369
...
...
@@ -43,7 +43,7 @@ class LaneSequencePredictor : public Predictor {
* @brief Make prediction
* @param Obstacle pointer
*/
void
Predict
(
Obstacle
*
obstacle
)
const
override
;
void
Predict
(
Obstacle
*
obstacle
)
override
;
};
}
// namespace prediction
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录