From 0f94fde434be9129d377731ae0766e74cd28b04f Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Thu, 14 Dec 2017 14:46:48 +1100 Subject: [PATCH] AC_Fence: get home distance directly from ahrs --- libraries/AC_Fence/AC_Fence.cpp | 6 ++++++ libraries/AC_Fence/AC_Fence.h | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/libraries/AC_Fence/AC_Fence.cpp b/libraries/AC_Fence/AC_Fence.cpp index 49984f692a..a2c086a085 100644 --- a/libraries/AC_Fence/AC_Fence.cpp +++ b/libraries/AC_Fence/AC_Fence.cpp @@ -241,6 +241,12 @@ bool AC_Fence::check_fence_circle() return false; } + Vector2f home; + if (_ahrs.get_relative_position_NE_home(home)) { + // we (may) remain breached if we can't update home + _home_distance = home.length(); + } + // check if we are outside the fence if (_home_distance >= _circle_radius) { diff --git a/libraries/AC_Fence/AC_Fence.h b/libraries/AC_Fence/AC_Fence.h index 63e17673d6..1d54a19fd4 100644 --- a/libraries/AC_Fence/AC_Fence.h +++ b/libraries/AC_Fence/AC_Fence.h @@ -95,13 +95,6 @@ public: /// has no effect if no breaches have occurred void manual_recovery_start(); - /// - /// time saving methods to piggy-back on main code's calculations - /// - - /// set_home_distance - update vehicle's distance from home in meters - required for circular horizontal fence monitoring - void set_home_distance(float distance) { _home_distance = distance; } - /// /// polygon related methods ///