From 609ed1d468420f26a84b5cc804047f153d6b8e06 Mon Sep 17 00:00:00 2001
From: Corvin-N <corvin@navarro.de>
Date: Thu, 27 Oct 2022 15:13:11 +0200
Subject: [PATCH] Feed lasersensor results from reader to humanTracker

---
 .../dynamic_scene_provider/Component.cpp      | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/source/armarx/navigation/components/dynamic_scene_provider/Component.cpp b/source/armarx/navigation/components/dynamic_scene_provider/Component.cpp
index 185d5568..4a177243 100644
--- a/source/armarx/navigation/components/dynamic_scene_provider/Component.cpp
+++ b/source/armarx/navigation/components/dynamic_scene_provider/Component.cpp
@@ -349,11 +349,28 @@ namespace armarx::navigation::components::dynamic_scene_provider
 
         // here ends: data fetching
 
-        ARMARX_INFO << "Running human tracker";
+        ARMARX_INFO << "Running human tracker with camera measurements";
 
         humanTracker.update(human::HumanTracker::CameraMeasurement{
             .detectionTime = timestamp, .humanPoses = humanPoseResult.humanPoses});
 
+        ARMARX_INFO << "Running human tracker with lasersensor measurements";
+
+        //TODO why is result a vector of LSFs and not a vector of LSF?
+        std::vector<armem::vision::LaserScannerFeature> flattened;
+        for (auto const& fs : laserFeaturesResult.features)
+        {
+            flattened.insert(flattened.end(), fs.features.begin(), fs.features.end());
+        }
+        std::vector<armem::vision::LaserScannerFeature> clusters =
+            humanTracker.update(human::HumanTracker::LaserMeasurement{.detectionTime = timestamp,
+                                                                      .clusters = flattened});
+
+        ARMARX_INFO << "Human tracking done";
+
+
+        //TODO use clusters for obstacle creation
+
 
         humanWriterPlugin->get().store(humanTracker.getTrackedHumans(), getName(), timestamp);
     }
-- 
GitLab