FW vtol landing always forced (#4939)

This commit is contained in:
Daniel Agar 2016-06-30 07:55:47 -04:00 committed by Lorenz Meier
parent 9649050c2e
commit 07fa814597
2 changed files with 7 additions and 6 deletions

View File

@ -442,8 +442,9 @@ Mission::set_mission_items()
if (item_contains_position(&_mission_item)) {
/* force vtol land */
if(_mission_item.nav_cmd == NAV_CMD_LAND && _param_force_vtol.get()
&& !_navigator->get_vstatus()->is_rotary_wing){
if (_mission_item.nav_cmd == NAV_CMD_LAND && _navigator->get_vstatus()->is_vtol
&& _param_force_vtol.get() && !_navigator->get_vstatus()->is_rotary_wing) {
_mission_item.nav_cmd = NAV_CMD_VTOL_LAND;
}

View File

@ -344,7 +344,7 @@ MissionBlock::mission_item_to_position_setpoint(const struct mission_item_s *ite
{
/* set the correct setpoint for vtol transition */
if(item->nav_cmd == NAV_CMD_DO_VTOL_TRANSITION && PX4_ISFINITE(item->yaw)
if (item->nav_cmd == NAV_CMD_DO_VTOL_TRANSITION && PX4_ISFINITE(item->yaw)
&& item->params[0] >= vtol_vehicle_status_s::VEHICLE_VTOL_STATE_FW - 0.5f) {
sp->type = position_setpoint_s::SETPOINT_TYPE_POSITION;
waypoint_from_heading_and_distance(_navigator->get_global_position()->lat,
@ -389,7 +389,7 @@ MissionBlock::mission_item_to_position_setpoint(const struct mission_item_s *ite
case NAV_CMD_LAND:
case NAV_CMD_VTOL_LAND:
sp->type = position_setpoint_s::SETPOINT_TYPE_LAND;
if(_navigator->get_vstatus()->is_vtol && _param_vtol_wv_land.get()){
if (_navigator->get_vstatus()->is_vtol && _param_vtol_wv_land.get()) {
sp->disable_mc_yaw_control = true;
}
break;
@ -398,7 +398,7 @@ MissionBlock::mission_item_to_position_setpoint(const struct mission_item_s *ite
case NAV_CMD_LOITER_TURN_COUNT:
case NAV_CMD_LOITER_UNLIMITED:
sp->type = position_setpoint_s::SETPOINT_TYPE_LOITER;
if(_navigator->get_vstatus()->is_vtol && _param_vtol_wv_loiter.get()){
if (_navigator->get_vstatus()->is_vtol && _param_vtol_wv_loiter.get()) {
sp->disable_mc_yaw_control = true;
}
break;
@ -529,7 +529,7 @@ MissionBlock::set_land_item(struct mission_item_s *item, bool at_current_locatio
{
/* VTOL transition to RW before landing */
if(_navigator->get_vstatus()->is_vtol && !_navigator->get_vstatus()->is_rotary_wing){
if (_navigator->get_vstatus()->is_vtol && !_navigator->get_vstatus()->is_rotary_wing) {
struct vehicle_command_s cmd = {};
cmd.command = NAV_CMD_DO_VTOL_TRANSITION;
cmd.param1 = vtol_vehicle_status_s::VEHICLE_VTOL_STATE_MC;