提交 c917b379 编写于 作者: Z Zhang Liangliang 提交者: Jiangtao Hu

Planning: (1) fixed smooth issue by adjusting parameters. (2) Increased...

Planning: (1) fixed smooth issue by adjusting parameters. (2) Increased planning robustness with sacrificing the initial continuity of acceleration.
(2) comes from an intrinsic issue when we use spline curves to fit all planning results ---- NOT all cases can be fitted by spline!
We should evaluate the necessity of using splines, especially when the
cost is that planning might fail in some cases. In the future version, we should not focus only
on the smoothness of the curves. Perfect smoothness can only live in an unrealistic imaginary world.
We should also notice that the smoothness of planning results doesn't
exactly correlate to what people feel when sitting on a car.
上级 0c3e0c39
......@@ -127,9 +127,9 @@ em_planner_config {
}
reference_line_smoother_config {
num_spline: 6
spline_order: 6
num_evaluated_points: 25
num_spline: 7
spline_order: 7
num_evaluated_points: 36
boundary_bound: 0.2
derivative_bound: 1.0
second_derivative_bound: 1.0
......
......@@ -206,6 +206,7 @@ void Planning::RunOnce() {
return;
}
// update routing
if (FLAGS_enable_reference_line_provider_thread) {
ReferenceLineProvider::instance()->UpdateRoutingResponse(
AdapterManager::GetRoutingResponse()->GetLatestObserved());
......
......@@ -242,12 +242,10 @@ Status QpSplineStGraph::ApplyConstraint(
accel_upper_bound.front() = 0.0;
} else {
constexpr double kInitPointAccelRelaxedSpeed = 1.0;
if (init_point_.v() > kInitPointAccelRelaxedSpeed &&
!constraint->AddPointSecondDerivativeConstraint(0.0, init_point_.a())) {
const std::string msg =
"add st start point acceleration constraint failed!";
AERROR << msg;
return Status(ErrorCode::PLANNING_ERROR, msg);
constexpr double kInitPointAccelRelaxedRange = 0.5;
if (init_point_.v() > kInitPointAccelRelaxedSpeed) {
accel_lower_bound.front() = init_point_.a() - kInitPointAccelRelaxedRange;
accel_upper_bound.front() = init_point_.a() + kInitPointAccelRelaxedRange;
}
}
......@@ -287,17 +285,15 @@ Status QpSplineStGraph::ApplyKernel(const std::vector<StBoundary>& boundaries,
qp_spline_st_speed_config_.jerk_kernel_weight());
}
if (AddCruiseReferenceLineKernel(
speed_limit, qp_spline_st_speed_config_.cruise_weight(),
st_graph_debug) !=
Status::OK()) {
if (AddCruiseReferenceLineKernel(speed_limit,
qp_spline_st_speed_config_.cruise_weight(),
st_graph_debug) != Status::OK()) {
return Status(ErrorCode::PLANNING_ERROR, "QpSplineStGraph::ApplyKernel");
}
if (AddFollowReferenceLineKernel(
boundaries, qp_spline_st_speed_config_.follow_weight()
,st_graph_debug) !=
Status::OK()) {
if (AddFollowReferenceLineKernel(boundaries,
qp_spline_st_speed_config_.follow_weight(),
st_graph_debug) != Status::OK()) {
return Status(ErrorCode::PLANNING_ERROR, "QpSplineStGraph::ApplyKernel");
}
return Status::OK();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册