30#include "modules/common_msgs/config_msgs/vehicle_config.pb.h"
31#include "modules/control/controllers/lat_based_lqr_controller/proto/lat_based_lqr_controller_conf.pb.h"
105 std::string
Name()
const override;
120 const double linear_v,
const double angular_v,
121 const double linear_a,
The DigitalFilter class is used to pass signals with a frequency lower than a certain cutoff frequenc...
The MeanFilter class is used to smoothen a series of noisy numbers, such as sensor data or the output...
A general class to denote the return status of an API call.
LQR-Based lateral controller, to compute steering target.
Eigen::MatrixXd matrix_a_coeff_
void UpdateMatrixCompound()
double current_trajectory_timestamp_
void LoadLatGainScheduler()
double lookahead_station_low_speed_
Eigen::MatrixXd matrix_bdc_
double ComputeFeedForward(double ref_curvature) const
double lookback_station_high_speed_
std::ofstream steer_log_file_
double lookahead_station_high_speed_
double query_relative_time_
double lookback_station_low_speed_
MracController mrac_controller_
TrajectoryAnalyzer trajectory_analyzer_
common::MeanFilter lateral_error_filter_
double minimum_speed_protection_
double previous_heading_rate_
void Stop() override
stop Lateral controller
void UpdateState(SimpleLateralDebug *debug, const canbus::Chassis *chassis)
double previous_ref_heading_acceleration_
Eigen::MatrixXd matrix_adc_
double pre_steering_position_
virtual ~LatController()
destructor
Eigen::MatrixXd matrix_a_
void ProcessLogs(const SimpleLateralDebug *debug, const canbus::Chassis *chassis)
Eigen::MatrixXd matrix_b_
common::MeanFilter heading_error_filter_
Eigen::MatrixXd matrix_k_
Eigen::MatrixXd matrix_ad_
void UpdateDrivingOrientation()
Eigen::MatrixXd matrix_q_
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, const canbus::Chassis *chassis)
common::Status Init(std::shared_ptr< DependencyInjector > injector) override
initialize Lateral Controller
double steer_single_direction_max_degree_
double driving_orientation_
const int basic_state_size_
common::Status Reset() override
reset Lateral Controller
common::DigitalFilter digital_filter_
LatBaseLqrControllerConf lat_based_lqr_controller_conf_
bool enable_look_ahead_back_control_
LatController()
constructor
std::string Name() const override
Lateral controller name
std::unique_ptr< Interpolation1D > heading_err_interpolation_
Eigen::MatrixXd matrix_state_
double previous_lateral_acceleration_
std::shared_ptr< DependencyInjector > injector_
Eigen::MatrixXd matrix_q_updated_
LeadlagController leadlag_controller_
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
std::unique_ptr< Interpolation1D > lat_err_interpolation_
double init_vehicle_heading_
double previous_ref_heading_rate_
common::VehicleParam vehicle_param_
Eigen::MatrixXd matrix_r_
Eigen::MatrixXd matrix_bd_
double previous_heading_acceleration_
A lead/lag controller for speed and steering using defualt integral hold
A mrac controller for actuation system (throttle/brake and steering)
process point query and conversion related to trajectory
Defines the Controller base class.
#define CYBER_PLUGIN_MANAGER_REGISTER_PLUGIN(name, base)
Defines the DigitalFilter class.
Functions to generate coefficients for digital filter.
Defines the MeanFilter class.
Defines the TrajectoryAnalyzer class.