diff --git a/ArduPlane/quadplane.cpp b/ArduPlane/quadplane.cpp index 5e4bf8cbae..96c4f90be2 100644 --- a/ArduPlane/quadplane.cpp +++ b/ArduPlane/quadplane.cpp @@ -120,14 +120,14 @@ const AP_Param::GroupInfo QuadPlane::var_info[] = { // YAW_RATE_MAX index 25 - // @Param: LAND_SPEED - // @DisplayName: Land speed - // @Description: The descent speed for the final stage of landing in cm/s - // @Units: cm/s - // @Range: 30 200 - // @Increment: 10 + // @Param: LAND_FINAL_SPD + // @DisplayName: Land final speed + // @Description: The descent speed for the final stage of landing in m/s + // @Units: m/s + // @Range: 0.3 2 + // @Increment: 0.1 // @User: Standard - AP_GROUPINFO("LAND_SPEED", 26, QuadPlane, land_speed_cms, 50), + AP_GROUPINFO("LAND_FINAL_SPD", 26, QuadPlane, land_final_speed, 0.5), // @Param: LAND_FINAL_ALT // @DisplayName: Land final altitude @@ -823,6 +823,9 @@ bool QuadPlane::setup(void) AP_Param::convert_old_parameters(&q_conversion_table[0], ARRAY_SIZE(q_conversion_table)); + // added January 2024 + land_final_speed.convert_centi_parameter(AP_PARAM_INT16); + tailsitter.setup(); tiltrotor.setup(); @@ -1246,7 +1249,7 @@ float QuadPlane::landing_descent_rate_cms(float height_above_ground) height_above_ground = MIN(height_above_ground, land_final_alt); } const float max_climb_speed = wp_nav->get_default_speed_up(); - float ret = linear_interpolate(land_speed_cms, wp_nav->get_default_speed_down(), + float ret = linear_interpolate(land_final_speed*100, wp_nav->get_default_speed_down(), height_above_ground, land_final_alt, land_final_alt+6); diff --git a/ArduPlane/quadplane.h b/ArduPlane/quadplane.h index 140c47e585..a790fcfee4 100644 --- a/ArduPlane/quadplane.h +++ b/ArduPlane/quadplane.h @@ -349,8 +349,8 @@ private: uint32_t alt_error_start_ms; bool in_alt_assist; - // landing speed in cm/s - AP_Int16 land_speed_cms; + // landing speed in m/s + AP_Float land_final_speed; // QRTL start altitude, meters AP_Int16 qrtl_alt;