forked from Archive/PX4-Autopilot
rtl: added loiter radius for descending
This commit is contained in:
parent
30e8a14be3
commit
aeccb621c5
|
@ -257,6 +257,7 @@ void RTL::on_activation()
|
|||
|
||||
const vehicle_global_position_s &global_position = *_navigator->get_global_position();
|
||||
|
||||
_rtl_loiter_rad = _param_rtl_loiter_rad.get();
|
||||
if (_navigator->get_vstatus()->vehicle_type == vehicle_status_s::VEHICLE_TYPE_ROTARY_WING) {
|
||||
_rtl_alt = calculate_return_alt_from_cone_half_angle((float)_param_rtl_cone_half_angle_deg.get());
|
||||
|
||||
|
@ -410,6 +411,10 @@ void RTL::set_rtl_item()
|
|||
_mission_item.yaw = _destination.yaw;
|
||||
}
|
||||
|
||||
if (_navigator->get_vstatus()->is_vtol) {
|
||||
_mission_item.loiter_radius = _rtl_loiter_rad;
|
||||
}
|
||||
|
||||
_mission_item.acceptance_radius = _navigator->get_acceptance_radius();
|
||||
_mission_item.time_inside = 0.0f;
|
||||
_mission_item.autocontinue = true;
|
||||
|
|
|
@ -148,6 +148,7 @@ private:
|
|||
|
||||
float _rtl_alt{0.0f}; // AMSL altitude at which the vehicle should return to the home position
|
||||
bool _rtl_alt_min{false};
|
||||
float _rtl_loiter_rad{50.0f}; // radius at which a fixed wing would loiter while descending
|
||||
bool _climb_and_return_done{false}; // this flag is set to true if RTL is active and we are past the climb state and return state
|
||||
bool _deny_mission_landing{false};
|
||||
|
||||
|
@ -159,7 +160,8 @@ private:
|
|||
(ParamInt<px4::params::RTL_TYPE>) _param_rtl_type,
|
||||
(ParamInt<px4::params::RTL_CONE_ANG>) _param_rtl_cone_half_angle_deg,
|
||||
(ParamFloat<px4::params::RTL_FLT_TIME>) _param_rtl_flt_time,
|
||||
(ParamInt<px4::params::RTL_PLD_MD>) _param_rtl_pld_md
|
||||
(ParamInt<px4::params::RTL_PLD_MD>) _param_rtl_pld_md,
|
||||
(ParamFloat<px4::params::RTL_LOITER_RAD>) _param_rtl_loiter_rad
|
||||
)
|
||||
|
||||
// These need to point at different parameters depending on vehicle type.
|
||||
|
|
|
@ -159,3 +159,17 @@ PARAM_DEFINE_FLOAT(RTL_FLT_TIME, 15);
|
|||
* @group Return To Land
|
||||
*/
|
||||
PARAM_DEFINE_INT32(RTL_PLD_MD, 0);
|
||||
|
||||
/**
|
||||
* Loiter radius for rtl descend
|
||||
*
|
||||
* Set the radius for loitering to a safe altitude for VTOL transition.
|
||||
*
|
||||
* @unit m
|
||||
* @min 25
|
||||
* @max 1000
|
||||
* @decimal 1
|
||||
* @increment 0.5
|
||||
* @group Return Mode
|
||||
*/
|
||||
PARAM_DEFINE_FLOAT(RTL_LOITER_RAD, 50.0f);
|
||||
|
|
Loading…
Reference in New Issue