Navigator: Set sane defaults for navigation and loiter waypoints with zero acceptance radius or orbit

This commit is contained in:
Lorenz Meier
2015-12-04 10:50:38 +01:00
parent 43c3708bf0
commit 590f00f560
2 changed files with 5 additions and 2 deletions
+3 -2
View File
@@ -146,7 +146,7 @@ MissionBlock::is_mission_item_reached()
float mission_acceptance_radius = _navigator->get_acceptance_radius(_mission_item.acceptance_radius);
/* if set to zero use the default instead */
if (mission_acceptance_radius < 0.001f) {
if (mission_acceptance_radius < NAV_EPSILON_POSITION) {
mission_acceptance_radius = _navigator->get_acceptance_radius();
}
@@ -210,7 +210,8 @@ MissionBlock::mission_item_to_position_setpoint(const struct mission_item_s *ite
sp->lon = item->lon;
sp->alt = item->altitude_is_relative ? item->altitude + _navigator->get_home_position()->alt : item->altitude;
sp->yaw = item->yaw;
sp->loiter_radius = item->loiter_radius;
sp->loiter_radius = (item->loiter_radius > NAV_EPSILON_POSITION) ? item->loiter_radius :
_navigator->get_loiter_radius();
sp->loiter_direction = item->loiter_direction;
sp->pitch_min = item->pitch_min;
+2
View File
@@ -47,6 +47,8 @@
#define NUM_MISSIONS_SUPPORTED 256
#define NAV_EPSILON_POSITION 0.001f /**< Anything smaller than this is considered zero */
/* compatible to mavlink MAV_CMD */
enum NAV_CMD {
NAV_CMD_IDLE = 0,