aboutsummaryrefslogtreecommitdiff
path: root/src/modules/navigator/mission_block.cpp
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-06-10 17:24:04 +0200
committerJulian Oes <julian@oes.ch>2014-06-10 17:24:04 +0200
commitfd1f1c81efb384e46a5767555a58061082612c9f (patch)
treeed8c25d74518bc3c617be38e665dde0cc6b82154 /src/modules/navigator/mission_block.cpp
parent784041e0abbb9b352def509945591da6b404773c (diff)
downloadpx4-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.cpp14
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;
}