Browse Source

Rover: use abs for int within calc_speed_nudge

same issue resoled for log-write-nav-tuning
mission-4.1.18
khancyr 8 years ago committed by Randy Mackay
parent
commit
2ceb29e9da
  1. 4
      APMrover2/Log.cpp
  2. 2
      APMrover2/mode.cpp

4
APMrover2/Log.cpp

@ -130,8 +130,8 @@ void Rover::Log_Write_Nav_Tuning() @@ -130,8 +130,8 @@ void Rover::Log_Write_Nav_Tuning()
time_us : AP_HAL::micros64(),
yaw : static_cast<uint16_t>(ahrs.yaw_sensor),
wp_distance : control_mode->get_distance_to_destination(),
target_bearing_cd : static_cast<uint16_t>(fabsf(nav_controller->target_bearing_cd())),
nav_bearing_cd : static_cast<uint16_t>(fabsf(nav_controller->nav_bearing_cd())),
target_bearing_cd : static_cast<uint16_t>(abs(nav_controller->target_bearing_cd())),
nav_bearing_cd : static_cast<uint16_t>(abs(nav_controller->nav_bearing_cd())),
throttle : int8_t(SRV_Channels::get_output_scaled(SRV_Channel::k_throttle)),
xtrack_error : nav_controller->crosstrack_error()
};

2
APMrover2/mode.cpp

@ -140,7 +140,7 @@ float Mode::calc_speed_nudge(float target_speed, float cruise_speed, float cruis @@ -140,7 +140,7 @@ float Mode::calc_speed_nudge(float target_speed, float cruise_speed, float cruis
}
const float speed_increase_max = vehicle_speed_max - fabsf(target_speed);
float speed_nudge = ((fabsf(pilot_throttle) - 50.0f) / 50.0f) * speed_increase_max;
float speed_nudge = ((static_cast<float>(abs(pilot_throttle)) - 50.0f) * 0.02f) * speed_increase_max;
if (pilot_throttle < 0) {
speed_nudge = -speed_nudge;
}

Loading…
Cancel
Save