diff --git a/source/armarx/navigation/client/Navigator.cpp b/source/armarx/navigation/client/Navigator.cpp
index 8e8ac4ce358d4ca405dd2e68f771415a8b33be79..9780c8c009164d4a5ea1753ac9089a48f632ecab 100644
--- a/source/armarx/navigation/client/Navigator.cpp
+++ b/source/armarx/navigation/client/Navigator.cpp
@@ -3,6 +3,7 @@
 #include <algorithm>
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+#include <ArmarXCore/util/CPPUtility/trace.h>
 
 #include <armarx/navigation/client/PathBuilder.h>
 #include <armarx/navigation/client/ice_conversions.h>
@@ -12,6 +13,7 @@ namespace armarx::navigation::client
 
     Navigator::Navigator(const InjectedServices& services) : srv{services}
     {
+        ARMARX_TRACE;
         // these checks cannot be used when component is started in property-readout mode
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         ARMARX_CHECK_NOT_NULL(srv.subscriber) << "Subscriber service must not be null!";
@@ -28,6 +30,7 @@ namespace armarx::navigation::client
     void
     Navigator::moveTo(const core::Pose& pose, core::NavigationFrame frame)
     {
+        ARMARX_TRACE;
         moveTo(std::vector<core::Pose>{pose}, frame);
     }
 
@@ -35,6 +38,7 @@ namespace armarx::navigation::client
     void
     Navigator::moveTo(const std::vector<core::Pose>& waypoints, core::NavigationFrame frame)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         srv.navigator->moveTo(waypoints, frame);
     }
@@ -43,6 +47,7 @@ namespace armarx::navigation::client
     void
     Navigator::moveTo(const PathBuilder& builder, core::NavigationFrame frame)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
 
         const std::vector<WaypointTarget>& path = builder.path();
@@ -55,6 +60,7 @@ namespace armarx::navigation::client
     void
     Navigator::moveTowards(const core::Direction& direction, core::NavigationFrame frame)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         srv.navigator->moveTowards(direction, frame);
     }
@@ -63,6 +69,7 @@ namespace armarx::navigation::client
     void
     Navigator::pause()
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         srv.navigator->pause();
     }
@@ -71,6 +78,7 @@ namespace armarx::navigation::client
     void
     Navigator::resume()
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         srv.navigator->resume();
     }
@@ -79,6 +87,7 @@ namespace armarx::navigation::client
     void
     Navigator::stop()
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
         srv.navigator->stop();
     }
@@ -87,6 +96,7 @@ namespace armarx::navigation::client
     void
     Navigator::onGoalReached(const std::function<void(void)>& callback)
     {
+        ARMARX_TRACE;
         onGoalReached([&callback](const core::GoalReachedEvent&) { callback(); });
     }
 
@@ -106,6 +116,7 @@ namespace armarx::navigation::client
     StopEvent
     Navigator::waitForStop()
     {
+        ARMARX_TRACE;
         std::unique_lock l{stoppedInfo.m};
         stoppedInfo.cv.wait(l, [&i = stoppedInfo] { return i.event.has_value(); });
 
@@ -118,6 +129,7 @@ namespace armarx::navigation::client
     void
     Navigator::stopped(const StopEvent& e)
     {
+        ARMARX_TRACE;
         {
             std::scoped_lock l{stoppedInfo.m};
             stoppedInfo.event = e;
diff --git a/source/armarx/navigation/client/services/IceNavigator.cpp b/source/armarx/navigation/client/services/IceNavigator.cpp
index 6df5101d2623fb475878bc137341601e1ac583ec..a28e70467d5f3932638d1b90e248dcd36051ad89 100644
--- a/source/armarx/navigation/client/services/IceNavigator.cpp
+++ b/source/armarx/navigation/client/services/IceNavigator.cpp
@@ -43,6 +43,7 @@ namespace armarx::navigation::client
     IceNavigator::createConfig(const client::NavigationStackConfig& config,
                                const std::string& configId)
     {
+        ARMARX_TRACE;
         this->configId = configId;
         navigator->createConfig(config.toAron(), configId);
     }
diff --git a/source/armarx/navigation/components/Navigator/Navigator.cpp b/source/armarx/navigation/components/Navigator/Navigator.cpp
index a53c8528d01d3d06a8bf41461871dcd67accdb08..ed564421cab8702c61b66b7a8d49b84b76baffd1 100644
--- a/source/armarx/navigation/components/Navigator/Navigator.cpp
+++ b/source/armarx/navigation/components/Navigator/Navigator.cpp
@@ -314,7 +314,7 @@ namespace armarx::navigation::components
                                        const Ice::Current&)
     {
         // TODO: Error handling.
-
+        ARMARX_TRACE;
         ARMARX_INFO << "MoveTowards requested by caller '" << callerId << "'";
 
         ARMARX_CHECK(navigators.count(callerId) > 0)
@@ -334,6 +334,7 @@ namespace armarx::navigation::components
     void
     components::Navigator::resume(const std::string& configId, const Ice::Current&)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK(navigators.count(configId) > 0)
             << "Navigator config for caller `" << configId << "` not registered!";
         navigators.at(configId).resume();
@@ -342,6 +343,7 @@ namespace armarx::navigation::components
     void
     components::Navigator::stop(const std::string& configId, const Ice::Current&)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK(navigators.count(configId) > 0)
             << "Navigator config for caller `" << configId << "` not registered!";
         navigators.at(configId).stop();
@@ -350,6 +352,7 @@ namespace armarx::navigation::components
     void
     components::Navigator::stopAll(const Ice::Current&)
     {
+        ARMARX_TRACE;
         for (auto& [_, navigator] : navigators)
         {
             navigator.stop();
@@ -359,6 +362,7 @@ namespace armarx::navigation::components
     bool
     components::Navigator::isPaused(const std::string& configId, const Ice::Current&)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK(navigators.count(configId) > 0)
             << "Navigator config for caller `" << configId << "` not registered!";
         return navigators.at(configId).isPaused();
@@ -367,6 +371,7 @@ namespace armarx::navigation::components
     bool
     components::Navigator::isStopped(const std::string& configId, const Ice::Current&)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK(navigators.count(configId) > 0)
             << "Navigator config for caller `" << configId << "` not registered!";
         return navigators.at(configId).isStopped();
@@ -501,6 +506,7 @@ namespace armarx::navigation::components
     void
     components::Navigator::updateRobot()
     {
+        ARMARX_TRACE;
         synchronizeLocalClone(scene.robot);
 
         auto robotDescription = virtualRobotReader.queryDescription("Armar6", armem::Time::now());
@@ -530,6 +536,7 @@ namespace armarx::navigation::components
     server::Navigator*
     components::Navigator::activeNavigator()
     {
+        ARMARX_TRACE;
         // We define the active navigator to be the one whose movement is enabled.
         const auto isActive = [](auto& nameNavPair) -> bool
         {