29 #include "modules/common/configs/proto/vehicle_config.pb.h" 71 const ControlConf *control_conf)
override;
83 const localization::LocalizationEstimate *localization,
84 const canbus::Chassis *chassis,
const planning::ADCTrajectory *trajectory,
85 ControlCommand *cmd)
override;
102 std::string
Name()
const override;
117 const double linear_v,
const double angular_v,
118 const double linear_a,
120 SimpleLateralDebug *debug);
126 const canbus::Chassis *chassis);
double lookahead_station_high_speed_
Definition: lat_controller.h:172
Eigen::MatrixXd matrix_b_
Definition: lat_controller.h:185
void UpdateState(SimpleLateralDebug *debug)
double previous_ref_heading_rate_
Definition: lat_controller.h:233
int preview_window_
Definition: lat_controller.h:165
bool enable_look_ahead_back_control_
Definition: lat_controller.h:227
Eigen::MatrixXd matrix_state_
Definition: lat_controller.h:201
Eigen::MatrixXd matrix_k_
Definition: lat_controller.h:191
void ComputeLateralErrors(const double x, const double y, const double theta, const double linear_v, const double angular_v, const double linear_a, const TrajectoryAnalyzer &trajectory_analyzer, SimpleLateralDebug *debug)
double cr_
Definition: lat_controller.h:145
common::Status Reset() override
reset Lateral Controller
common::Status Init(std::shared_ptr< DependencyInjector > injector, const ControlConf *control_conf) override
initialize Lateral Controller
const std::string name_
Definition: lat_controller.h:241
std::ofstream steer_log_file_
Definition: lat_controller.h:239
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
void Stop() override
stop Lateral controller
Eigen::MatrixXd matrix_q_
Definition: lat_controller.h:195
void UpdateDrivingOrientation()
double cf_
Definition: lat_controller.h:143
The MeanFilter class is used to smoothen a series of noisy numbers, such as sensor data or the output...
Definition: mean_filter.h:45
double driving_orientation_
Definition: lat_controller.h:263
double iz_
Definition: lat_controller.h:155
double previous_ref_heading_acceleration_
Definition: lat_controller.h:236
void UpdateMatrixCompound()
Eigen::MatrixXd matrix_a_coeff_
Definition: lat_controller.h:199
bool LoadControlConf(const ControlConf *control_conf)
std::string Name() const override
Lateral controller name.
double lqr_eps_
Definition: lat_controller.h:206
common::MeanFilter heading_error_filter_
Definition: lat_controller.h:216
double low_speed_bound_
Definition: lat_controller.h:259
double ComputeFeedForward(double ref_curvature) const
Eigen::MatrixXd matrix_r_
Definition: lat_controller.h:193
common::MeanFilter lateral_error_filter_
Definition: lat_controller.h:215
Defines the MeanFilter class.
Eigen::MatrixXd matrix_bdc_
Definition: lat_controller.h:189
base class for all controllers.
Definition: controller.h:46
double pre_steering_position_
Definition: lat_controller.h:247
double low_speed_window_
Definition: lat_controller.h:261
int lqr_max_iteration_
Definition: lat_controller.h:204
double steer_single_direction_max_degree_
Definition: lat_controller.h:159
double lookback_station_high_speed_
Definition: lat_controller.h:173
TrajectoryAnalyzer trajectory_analyzer_
Definition: lat_controller.h:137
Eigen::MatrixXd matrix_q_updated_
Definition: lat_controller.h:197
LQR-Based lateral controller, to compute steering target. For more details, please refer to "Vehicle ...
Definition: lat_controller.h:53
double pre_steer_angle_
Definition: lat_controller.h:245
common::Status ComputeControlCommand(const localization::LocalizationEstimate *localization, const canbus::Chassis *chassis, const planning::ADCTrajectory *trajectory, ControlCommand *cmd) override
compute steering target based on current vehicle status and target trajectory
double init_vehicle_x_
Definition: lat_controller.h:253
const int basic_state_size_
Definition: lat_controller.h:177
std::unique_ptr< Interpolation1D > heading_err_interpolation_
Definition: lat_controller.h:212
double query_relative_time_
Definition: lat_controller.h:243
common::VehicleParam vehicle_param_
Definition: lat_controller.h:134
double lf_
Definition: lat_controller.h:151
std::unique_ptr< Interpolation1D > lat_err_interpolation_
Definition: lat_controller.h:210
double previous_heading_rate_
Definition: lat_controller.h:232
double lookback_station_low_speed_
Definition: lat_controller.h:171
A mrac controller for actuation system (throttle/brake and steering)
Definition: mrac_controller.h:43
Eigen::MatrixXd matrix_adc_
Definition: lat_controller.h:183
double previous_lateral_acceleration_
Definition: lat_controller.h:230
Eigen::MatrixXd matrix_a_
Definition: lat_controller.h:179
std::shared_ptr< DependencyInjector > injector_
Definition: lat_controller.h:265
process point query and conversion related to trajectory
Definition: trajectory_analyzer.h:44
double steer_ratio_
Definition: lat_controller.h:157
double lookahead_station_low_speed_
Definition: lat_controller.h:170
double lr_
Definition: lat_controller.h:153
Defines the DigitalFilter class.
double init_vehicle_heading_
Definition: lat_controller.h:257
void ProcessLogs(const SimpleLateralDebug *debug, const canbus::Chassis *chassis)
Eigen::MatrixXd matrix_ad_
Definition: lat_controller.h:181
Defines the Controller base class.
double previous_heading_acceleration_
Definition: lat_controller.h:235
double mass_
Definition: lat_controller.h:149
double init_vehicle_y_
Definition: lat_controller.h:255
Functions to generate coefficients for digital filter.
bool enable_mrac_
Definition: lat_controller.h:223
bool enable_leadlag_
Definition: lat_controller.h:219
Eigen::MatrixXd matrix_bd_
Definition: lat_controller.h:187
void LoadLatGainScheduler(const LatControllerConf &lat_controller_conf)
const ControlConf * control_conf_
Definition: lat_controller.h:131
double current_trajectory_timestamp_
Definition: lat_controller.h:251
A lead/lag controller for speed and steering using defualt integral hold.
Definition: leadlag_controller.h:38
The DigitalFilter class is used to pass signals with a frequency lower than a certain cutoff frequenc...
Definition: digital_filter.h:40
LeadlagController leadlag_controller_
Definition: lat_controller.h:220
double minimum_speed_protection_
Definition: lat_controller.h:249
void InitializeFilters(const ControlConf *control_conf)
LatController()
constructor
A general class to denote the return status of an API call. It can either be an OK status for success...
Definition: status.h:43
virtual ~LatController()
destructor
common::DigitalFilter digital_filter_
Definition: lat_controller.h:208
double wheelbase_
Definition: lat_controller.h:147
MracController mrac_controller_
Definition: lat_controller.h:224
double max_lat_acc_
Definition: lat_controller.h:162
double ts_
Definition: lat_controller.h:141
Defines the TrajectoryAnalyzer class.