-
Notifications
You must be signed in to change notification settings - Fork 713
Open
Labels
planningplanning moduleplanning module
Description
It is necessary to plan the braking curve when parking. The current PID is adjusted according to the speed and position, which does not conform to human braking habits. There will be slipping, excessive braking, etc.
When parking, I suggest using the following acceleration curve, and the control module considers braking according to the acceleration.
--------
/
/
-----
Current implementation
For now they use a fix in control module(modules\control\controller\lon_controller.cc), but I don't think it’s very elegant
// At near-stop stage, replace the brake control command with the standstill
// acceleration if the former is even softer than the latter
if ((trajectory_message_->trajectory_type() ==
apollo::planning::ADCTrajectory::NORMAL) &&
((std::fabs(debug->preview_acceleration_reference()) <=
control_conf_->max_acceleration_when_stopped() &&
std::fabs(debug->preview_speed_reference()) <=
vehicle_param_.max_abs_speed_when_stopped()) ||
std::abs(debug->path_remain()) <
control_conf_->max_path_remain_when_stopped())) {
acceleration_cmd =
(chassis->gear_location() == canbus::Chassis::GEAR_REVERSE)
? std::max(acceleration_cmd,
-lon_controller_conf.standstill_acceleration())
: std::min(acceleration_cmd,
lon_controller_conf.standstill_acceleration());
ADEBUG << "Stop location reached";
debug->set_is_full_stop(true);
}
daohu527
Metadata
Metadata
Assignees
Labels
planningplanning moduleplanning module