Formula Student Autonomous Systems
The code for the main driverless system
Loading...
Searching...
No Matches
config_loader.cpp
Go to the documentation of this file.
2
3#include <yaml-cpp/yaml.h>
4
6#include "rclcpp/rclcpp.hpp"
7
8namespace invictasim {
9
12
13 // Load global config (public interface for discipline, track, etc.)
14 std::string global_config_path =
15 common_lib::config_load::get_config_yaml_path("invictasim", "global", "global_config");
16 YAML::Node global_config = YAML::LoadFile(global_config_path);
17
18 params.discipline = global_config["global"]["discipline"].as<std::string>();
19 params.track_name = global_config["global"]["track_name"].as<std::string>();
20 params.simulation_speed = global_config["global"]["simulation_speed"]
21 ? global_config["global"]["simulation_speed"].as<double>()
22 : 1.0;
23
24 // Load simulator-specific config
25 std::string simulator_config_path =
26 common_lib::config_load::get_config_yaml_path("invictasim", "invictasim", "config");
27 YAML::Node simulator_config = YAML::LoadFile(simulator_config_path);
28
29 auto sim_config = simulator_config["invictasim"];
30 params.timestep = sim_config["timestep"].as<double>();
31 params.vehicle_model = sim_config["vehicle_model"].as<std::string>();
32
33 RCLCPP_INFO(rclcpp::get_logger("invictasim"),
34 "Loaded config - Discipline: %s, Track: %s, Vehicle: %s, Simulation speed: %.2f",
35 params.discipline.c_str(), params.track_name.c_str(), params.vehicle_model.c_str(),
36 params.simulation_speed);
37
38 return params;
39}
40
41} // namespace invictasim
std::string get_config_yaml_path(const std::string &package_name, const std::string &dir, const std::string &filename)
InvictaSimParameters load_config()
Load invictasim configuration from YAML files.