3std::pair<double, double>
wheels_velocities_to_cg(std::shared_ptr<common_lib::car_parameters::CarParameters> car_parameters,
4 double rl_rpm, [[maybe_unused]]
double fl_rpm,
double rr_rpm, [[maybe_unused]]
double fr_rpm,
5 double steering_angle) {
6 std::pair<double, double> velocities = {0, 0};
11 if (steering_angle == 0) {
12 velocities.first = (rl_velocity + rr_velocity) / 2;
13 }
else if (steering_angle > 0) {
14 double rear_axis_center_rotation_radius = car_parameters->wheelbase / std::tan(steering_angle);
16 rl_velocity / (rear_axis_center_rotation_radius - (car_parameters->track_width / 2));
17 velocities.first = std::sqrt(std::pow(rear_axis_center_rotation_radius, 2) +
18 std::pow(car_parameters->dist_cg_2_rear_axis, 2)) *
19 std::fabs(velocities.second);
21 double rear_axis_center_rotation_radius = car_parameters->wheelbase / std::tan(steering_angle);
23 rr_velocity / (rear_axis_center_rotation_radius + (car_parameters->track_width / 2));
24 velocities.first = std::sqrt(std::pow(rear_axis_center_rotation_radius, 2) +
25 std::pow(car_parameters->dist_cg_2_rear_axis, 2)) *
26 std::fabs(velocities.second);
std::pair< double, double > wheels_velocities_to_cg(std::shared_ptr< common_lib::car_parameters::CarParameters > car_parameters, double rl_rpm, double fl_rpm, double rr_rpm, double fr_rpm, double steering_angle)
Calculates the translational and rotational velocities of the vehicle from wheel rotations and steeri...