diff --git a/mg_navigation/include/handlers/dwa_lookat.hpp b/mg_navigation/include/handlers/dwa_lookat.hpp index 2684765..4e9fd90 100644 --- a/mg_navigation/include/handlers/dwa_lookat.hpp +++ b/mg_navigation/include/handlers/dwa_lookat.hpp @@ -13,8 +13,9 @@ namespace mg { const double a = glm::abs(theta - target_ornt); const double b = (a > glm::pi()) ? glm::two_pi() - a : a; + const double c = (b > glm::pi() / 2) ? glm::pi() - b : b; - return b > goal->tolerance; + return c > goal->tolerance; } template <> @@ -56,6 +57,9 @@ namespace mg { dist_old = (dist_old > glm::pi()) ? glm::two_pi() - dist_old : dist_old; dist_new = (dist_new > glm::pi()) ? glm::two_pi() - dist_new : dist_new; + dist_old = (dist_old > glm::pi() / 2) ? glm::pi() - dist_old : dist_old; + dist_new = (dist_new > glm::pi() / 2) ? glm::pi() - dist_new : dist_new; + const double score = goal->ornt_mult * (dist_old - dist_new); return score;