35 namespace controller {
39 std::string ego_sensor = to_string(CloeComponent::DEFAULT_EGO_SENSOR);
40 std::string world_sensor = to_string(CloeComponent::DEFAULT_WORLD_SENSOR);
41 std::string latlong_actuator = to_string(CloeComponent::DEFAULT_LATLONG_ACTUATOR);
43 double limit_deceleration = 5.0;
44 double limit_acceleration = 3.0;
89 {
"ego_sensor",
Schema(&ego_sensor,
"ego sensor component to read from")},
90 {
"world_sensor",
Schema(&world_sensor,
"world_sensor component to read from")},
91 {
"latlong_actuator",
Schema(&latlong_actuator,
"actuator to write to")},
92 {
"limit_acceleration",
Schema(&limit_acceleration,
"acceleration limit in [m/s^2]")},
93 {
"limit_deceleration",
Schema(&limit_deceleration,
"how much deceleration is allowed, in [m/s^2]")},
94 {
"derivative_factor_speed_control",
Schema(&kd,
"factor to tune the D term of the PID speed controller")},
95 {
"proportional_factor_speed_control",
Schema(&kp,
"factor to tune the P term of the PID speed controller")},
96 {
"integral_factor_speed_control",
Schema(&ki,
"factor to tune the I term of the PID speed controller")},
97 {
"derivative_factor_dist_control",
Schema(&kd_m,
"factor to tune the D term of the PID distance controller")},
98 {
"proportional_factor_dist_control",
Schema(&kp_m,
"factor to tune the P term of the PID distance controller")},
99 {
"integral_factor_dist_control",
Schema(&ki_m,
"factor to tune the I term of the PID distance controller")},
107 std::string ego_sensor = to_string(CloeComponent::DEFAULT_EGO_SENSOR);
108 std::string world_sensor = to_string(CloeComponent::DEFAULT_WORLD_SENSOR);
109 std::string latlong_actuator = to_string(CloeComponent::DEFAULT_LATLONG_ACTUATOR);
110 bool always_full_stop =
false;
111 double limit_deceleration = 8.0;
116 {
"enabled",
Schema(&enabled,
"whether automatic emergency braking is enabled")},
117 {
"ego_sensor",
Schema(&ego_sensor,
"ego sensor component to read from")},
118 {
"world_sensor",
Schema(&world_sensor,
"world_sensor component to read from")},
119 {
"latlong_actuator",
Schema(&latlong_actuator,
"actuator to write to")},
120 {
"always_full_stop",
Schema(&always_full_stop,
"whether to brake to a full-stop on activation")},
121 {
"limit_deceleration",
Schema(&limit_deceleration,
"how much deceleration is allowed, in [m/s^2]")},
128 bool enabled =
false;
129 std::string world_sensor = to_string(CloeComponent::DEFAULT_WORLD_SENSOR);
130 std::string latlong_actuator = to_string(CloeComponent::DEFAULT_LATLONG_ACTUATOR);
131 double adjustment_rad = 0.02;
132 double tolerance = 0.1;
133 double lerp_factor = 0.1;
138 {
"enabled",
Schema(&enabled,
"whether lane keeping assist is enabled")},
139 {
"world_sensor",
Schema(&world_sensor,
"world_sensor component to read from")},
140 {
"latlong_actuator",
Schema(&latlong_actuator,
"actuator to write to")},
141 {
"adjustment_rad",
Schema(&adjustment_rad,
"wheel angle adjustment in [rad]")},
142 {
"tolerance",
Schema(&tolerance,
"absolute tolerance in [m]")},
143 {
"lerp_factor",
Schema(&lerp_factor,
"linear interpolation factor with domain (0-1]")},
153 std::string driver_request;
155 void to_json(Json& j)
const override {
166 {
"acc",
Schema(&acc,
"ACC configuration")},
167 {
"aeb",
Schema(&aeb,
"AEB configuration")},
168 {
"lka",
Schema(&lka,
"LKA configuration")},
169 {
"driver_request",
Schema(&driver_request,
"component providing driver request")},
176 "very basic vehicle controller")
Definition: confable.hpp:46
Definition: coordinator.hpp:36
Definition: basic.hpp:105
Json to_json() const
Definition: confable.cpp:74
Definition: schema.hpp:178
Definition: basic.hpp:149
#define DEFINE_CONTROLLER_FACTORY(xFactoryType, xConfigType, xName, xDescription)
Definition: controller.hpp:50
Definition: basic.hpp:127