mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 11:59:17 +08:00
wait until until vehicle enters transition before continuing after transition command
This commit is contained in:
@@ -30,6 +30,7 @@ param set MPC_XY_FF 0.1
|
|||||||
param set MPC_Z_VEL_MAX 1.0
|
param set MPC_Z_VEL_MAX 1.0
|
||||||
param set SENS_BOARD_ROT 8
|
param set SENS_BOARD_ROT 8
|
||||||
param set COM_RC_IN_MODE 1
|
param set COM_RC_IN_MODE 1
|
||||||
|
param set NAV_ACC_RAD 3.0
|
||||||
rgbledsim start
|
rgbledsim start
|
||||||
tone_alarm start
|
tone_alarm start
|
||||||
gyrosim start
|
gyrosim start
|
||||||
|
|||||||
@@ -432,7 +432,7 @@ Mission::set_mission_items()
|
|||||||
|
|
||||||
float takeoff_alt = calculate_takeoff_altitude(&_mission_item);
|
float takeoff_alt = calculate_takeoff_altitude(&_mission_item);
|
||||||
|
|
||||||
mavlink_log_info(_navigator->get_mavlink_fd(), "takeoff to %.1f meters above home", (double)(takeoff_alt - _navigator->get_home_position()->alt));
|
mavlink_log_critical(_navigator->get_mavlink_fd(), "takeoff to %.1f meters above home", (double)(takeoff_alt - _navigator->get_home_position()->alt));
|
||||||
|
|
||||||
_mission_item.nav_cmd = NAV_CMD_TAKEOFF;
|
_mission_item.nav_cmd = NAV_CMD_TAKEOFF;
|
||||||
_mission_item.lat = _navigator->get_global_position()->lat;
|
_mission_item.lat = _navigator->get_global_position()->lat;
|
||||||
|
|||||||
@@ -105,11 +105,18 @@ MissionBlock::is_mission_item_reached()
|
|||||||
case NAV_CMD_LOITER_UNLIMITED:
|
case NAV_CMD_LOITER_UNLIMITED:
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case NAV_CMD_DO_DIGICAM_CONTROL: /* fallthrough */
|
case NAV_CMD_DO_DIGICAM_CONTROL:
|
||||||
|
return true;
|
||||||
|
|
||||||
case NAV_CMD_DO_VTOL_TRANSITION:
|
case NAV_CMD_DO_VTOL_TRANSITION:
|
||||||
// XXX: we should wait on command ACK or status change instead
|
/*
|
||||||
// currently we just wait so the command can be processed
|
* We wait half a second to give the transition command time to propagate.
|
||||||
if (hrt_absolute_time() - _action_start > 1000) {
|
* As soon as the timeout is over or when we're in transition mode let the mission continue.
|
||||||
|
*/
|
||||||
|
if (hrt_absolute_time() - _action_start > 500000 ||
|
||||||
|
_navigator->get_vstatus()->in_transition_mode) {
|
||||||
|
_action_start = 0;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user