// do_set_yaw_speed - turn to a specified heading and achieve and given speed void ModeAuto::do_nav_set_yaw_speed(const AP_Mission::Mission_Command& cmd) { float desired_heading_cd; // get final angle, 1 = Relative, 0 = Absolute if (cmd.content.set_yaw_speed.relative_angle > 0) { // relative angle desired_heading_cd = wrap_180_cd(ahrs.yaw_sensor + cmd.content.set_yaw_speed.angle_deg * 100.0f); } else { // absolute angle desired_heading_cd = cmd.content.set_yaw_speed.angle_deg * 100.0f; } // set auto target const float speed_max = get_speed_default(); set_desired_heading_and_speed(desired_heading_cd, constrain_float(cmd.content.set_yaw_speed.speed, -speed_max, speed_max)); }
// restore desired speed to default from parameter values (CRUISE_SPEED or WP_SPEED) void Mode::set_desired_speed_to_default(bool rtl) { _desired_speed = get_speed_default(rtl); }