diff options
author | Julian Oes <julian@oes.ch> | 2014-06-10 17:24:04 +0200 |
---|---|---|
committer | Julian Oes <julian@oes.ch> | 2014-06-10 17:24:04 +0200 |
commit | fd1f1c81efb384e46a5767555a58061082612c9f (patch) | |
tree | ed8c25d74518bc3c617be38e665dde0cc6b82154 /src/modules/navigator/mission_block.cpp | |
parent | 784041e0abbb9b352def509945591da6b404773c (diff) | |
download | px4-firmware-fd1f1c81efb384e46a5767555a58061082612c9f.tar.gz px4-firmware-fd1f1c81efb384e46a5767555a58061082612c9f.tar.bz2 px4-firmware-fd1f1c81efb384e46a5767555a58061082612c9f.zip |
navigator: added parameter for acceptance radius for take-off mission items
Diffstat (limited to 'src/modules/navigator/mission_block.cpp')
-rw-r--r-- | src/modules/navigator/mission_block.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/modules/navigator/mission_block.cpp b/src/modules/navigator/mission_block.cpp index 861aed813..08576750c 100644 --- a/src/modules/navigator/mission_block.cpp +++ b/src/modules/navigator/mission_block.cpp @@ -102,13 +102,19 @@ MissionBlock::is_mission_item_reached() _navigator_priv->get_global_position()->alt, &dist_xy, &dist_z); - if (_mission_item.nav_cmd == NAV_CMD_TAKEOFF) { - - /* require only altitude for takeoff */ - if (_navigator_priv->get_global_position()->alt > altitude_amsl - _mission_item.acceptance_radius) { + if (_mission_item.nav_cmd == NAV_CMD_TAKEOFF && _navigator_priv->get_vstatus()->is_rotary_wing) { + /* require only altitude for takeoff for multicopter */ + if (_navigator_priv->get_global_position()->alt > + altitude_amsl - _navigator_priv->get_takeoff_acceptance_radius()) { + _waypoint_position_reached = true; + } + } else if (_mission_item.nav_cmd == NAV_CMD_TAKEOFF) { + /* for takeoff mission items use the parameter for the takeoff acceptance radius */ + if (dist >= 0.0f && dist <= _navigator_priv->get_takeoff_acceptance_radius()) { _waypoint_position_reached = true; } } else { + /* for normal mission items used their acceptance radius */ if (dist >= 0.0f && dist <= _mission_item.acceptance_radius) { _waypoint_position_reached = true; } |