diff --git a/source/Navigation/libraries/server/Navigator.cpp b/source/Navigation/libraries/server/Navigator.cpp index 14ad6b73edd2e4040c85e2883cbd7b2d31a85885..b2908d816fe224cd3f8b5af575c8d95b4ba27b14 100644 --- a/source/Navigation/libraries/server/Navigator.cpp +++ b/source/Navigation/libraries/server/Navigator.cpp @@ -8,8 +8,8 @@ namespace armarx::nav::server { - Navigator::Navigator(const server::NavigationStack& navigationStack, const core::Scene& ctx) : - stack(navigationStack), scene(ctx) + Navigator::Navigator(const server::NavigationStack& navigationStack, const core::Scene& scene, ExecutorInterface& executor) : + stack(navigationStack), scene(scene), executor{executor} { setTag("Navigator"); } @@ -56,10 +56,10 @@ namespace armarx::nav::server if (stack.safetyControl) { ARMARX_INFO << "Safety control"; - res.safeVelocity = stack.safetyControl->control(res.controlVelocity); + res.safeVelocity = stack.safetyControl->control(res.controlVelocity.value()); } executor.move(res.velocity()); } } -} // namespace armarx::nav::server \ No newline at end of file +} // namespace armarx::nav::server diff --git a/source/Navigation/libraries/server/Navigator.h b/source/Navigation/libraries/server/Navigator.h index 38e12c3e8045b6963f3ad7b1fbf30ff97bf7c46d..79327e11025a5b55bfc1df432d2da2c39426cc65 100644 --- a/source/Navigation/libraries/server/Navigator.h +++ b/source/Navigation/libraries/server/Navigator.h @@ -23,11 +23,14 @@ #include <Eigen/Core> +// ArmarX #include "ArmarXCore/core/exceptions/local/ExpressionException.h" #include "ArmarXCore/core/logging/Logging.h" +// Navigation #include "Navigation/libraries/core/types.h" #include "NavigationStack.h" +#include <Navigation/libraries/server/execution/ExecutorInterface.h> namespace armarx::nav::server { @@ -64,7 +67,7 @@ namespace armarx::nav::server class Navigator : public armarx::Logging { public: - Navigator(const server::NavigationStack& navigationStack, const core::Scene& scene); + Navigator(const server::NavigationStack& navigationStack, const core::Scene& scene, ExecutorInterface& executor); void moveTo(const core::Pose& goal, const core::NavigationFrames& navigationFrame); void moveToAbsolute(const core::Pose& goal); @@ -74,6 +77,6 @@ namespace armarx::nav::server server::NavigationStack stack; const core::Scene& scene; - ExecutorInterface& executor; + ExecutorInterface& executor; }; -} // namespace armarx::nav::server \ No newline at end of file +} // namespace armarx::nav::server diff --git a/source/Navigation/libraries/server/test/serverTest.cpp b/source/Navigation/libraries/server/test/serverTest.cpp index 938f499bb9cbb6311ff8645b985446061be1e2fd..743373f0343b5f4af2dd7eebe6d00fd2f123c6b4 100644 --- a/source/Navigation/libraries/server/test/serverTest.cpp +++ b/source/Navigation/libraries/server/test/serverTest.cpp @@ -61,6 +61,9 @@ BOOST_AUTO_TEST_CASE(testNavigator) .trajectoryControl = std::make_shared<traj_ctrl::TrajectoryFollowingController>( traj_ctrl::TrajectoryFollowingControllerParams(), scene)}; + // Executor. + server::DummyExecturo executor{scene.robot}; + server::Navigator navigator(stack, scene, executor); navigator.moveTo(goal, core::NavigationFrames::Absolute);