Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
general_config.cpp
Go to the documentation of this file.
2
3#include <yaml-cpp/yaml.h>
4
6
30 frame_id_ = params.frame_id_;
39
42
47
52}
53
55 if (this != &other) {
78 frame_id_ = other.frame_id_;
87
90
95
100 }
101 return *this;
102}
103
105 std::string global_config_path =
106 common_lib::config_load::get_config_yaml_path("slam", "global", "global_config");
107
108 YAML::Node global_config = YAML::LoadFile(global_config_path);
109
110 std::string adapter = global_config["global"]["adapter"].as<std::string>();
111 this->use_simulated_velocities_ = global_config["global"]["use_simulated_velocities"].as<bool>();
112 this->use_simulated_perception_ = global_config["global"]["use_simulated_perception"].as<bool>();
113 this->frame_id_ = global_config["global"]["vehicle_frame_id"].as<std::string>();
114
115 std::string slam_config_path =
116 common_lib::config_load::get_config_yaml_path("slam", "slam", adapter);
117
118 YAML::Node slam_config = YAML::LoadFile(slam_config_path);
119
120 this->motion_model_name_ = slam_config["slam"]["motion_model_name"].as<std::string>();
121 this->pose_updater_name_ = slam_config["slam"]["pose_updater_name"].as<std::string>();
122 this->landmark_filter_name_ = slam_config["slam"]["landmark_filter_name"].as<std::string>();
123 this->lidar_odometry_topic_ = slam_config["slam"]["lidar_odometry_topic"].as<std::string>();
124 this->receive_lidar_odometry_ = slam_config["slam"]["receive_lidar_odometry"].as<bool>();
126 slam_config["slam"]["data_association_model_name"].as<std::string>();
128 slam_config["slam"]["data_association_limit_distance"].as<float>();
129 this->data_association_gate_ = slam_config["slam"]["data_association_gate"].as<double>();
131 slam_config["slam"]["new_landmark_confidence_gate"].as<double>();
132 this->observation_x_noise_ = slam_config["slam"]["observation_x_noise"].as<float>();
133 this->observation_y_noise_ = slam_config["slam"]["observation_y_noise"].as<float>();
134 this->velocity_x_noise_ = slam_config["slam"]["velocity_x_noise"].as<float>();
135 this->velocity_y_noise_ = slam_config["slam"]["velocity_y_noise"].as<float>();
136 this->imu_acceleration_x_noise_ = slam_config["slam"]["imu_acceleration_x_noise"].as<float>();
137 this->angular_velocity_noise_ = slam_config["slam"]["angular_velocity_noise"].as<float>();
138 this->pose_x_initial_noise_ = slam_config["slam"]["pose_x_initial_noise"].as<double>();
139 this->pose_y_initial_noise_ = slam_config["slam"]["pose_y_initial_noise"].as<double>();
140 this->pose_theta_initial_noise_ = slam_config["slam"]["pose_theta_initial_noise"].as<double>();
141 this->using_preloaded_map_ = slam_config["slam"]["using_preloaded_map"].as<bool>();
142 this->slam_solver_name_ = slam_config["slam"]["slam_solver_name"].as<std::string>();
143 this->slam_min_pose_difference_ = slam_config["slam"]["slam_min_pose_difference"].as<float>();
144 this->slam_optimization_period_ = slam_config["slam"]["slam_optimization_period"].as<double>();
145 this->slam_optimization_type_ = slam_config["slam"]["slam_optimization_type"].as<std::string>();
146 this->slam_optimization_in_poses_ = slam_config["slam"]["slam_optimization_in_poses"].as<bool>();
147 this->slam_optimization_mode_ = slam_config["slam"]["slam_optimization_mode"].as<std::string>();
148 this->preloaded_map_noise_ = slam_config["slam"]["preloaded_map_noise"].as<double>();
150 slam_config["slam"]["slam_isam2_relinearize_threshold"].as<double>();
152 slam_config["slam"]["slam_isam2_relinearize_skip"].as<double>();
154 slam_config["slam"]["slam_isam2_factorization"].as<std::string>();
155 this->sliding_window_size_ = slam_config["slam"]["sliding_window_size"].as<unsigned int>();
156
157 this->minimum_observation_count_ = slam_config["slam"]["minimum_observation_count"].as<int>();
159 slam_config["slam"]["minimum_frequency_of_detections"].as<double>();
160
161 this->threshold_dist = slam_config["slam"]["threshold_dist"].as<double>();
162 this->first_x_cones = slam_config["slam"]["first_x_cones"].as<double>();
163 this->border_width = slam_config["slam"]["border_width"].as<int>();
164 this->minimum_confidence = slam_config["slam"]["minimum_confidence"].as<int>();
165
166 this->synchronized_timestamps = slam_config["slam"]["synchronized_timestamps"].as<bool>();
167 this->max_pose_history_updater = slam_config["slam"]["max_pose_history_updater"].as<int>();
168 this->max_pose_history_graph = slam_config["slam"]["max_pose_history_graph"].as<int>();
169 this->publish_trajectory_ = slam_config["slam"]["graph_publish_trajectory"].as<bool>();
170 return adapter;
171}
std::string get_config_yaml_path(const std::string &package_name, const std::string &dir, const std::string &filename)
Parameters for the SLAM node.
double data_association_gate_
double minimum_frequency_of_detections_
float data_association_limit_distance_
float imu_acceleration_x_noise_
double slam_isam2_relinearize_skip_
std::string motion_model_name_
std::string slam_optimization_mode_
unsigned int sliding_window_size_
SLAMParameters & operator=(const SLAMParameters &other)
Overload the assignment operator for SLAMParameters.
std::string slam_solver_name_
double slam_isam2_relinearize_threshold_
double pose_x_initial_noise_
float angular_velocity_noise_
std::string landmark_filter_name_
std::string slam_isam2_factorization_
double pose_y_initial_noise_
bool slam_optimization_in_poses_
double slam_optimization_period_
std::string frame_id_
SLAMParameters()=default
double pose_theta_initial_noise_
double preloaded_map_noise_
double new_landmark_confidence_gate_
std::string slam_optimization_type_
double slam_min_pose_difference_
std::string data_association_model_name_
std::string pose_updater_name_
std::string load_config()
Load the configuration for the SLAM node from YAML file.
std::string lidar_odometry_topic_