From 1843777917fa87aa85a5ef7ff304a88bda5f2f94 Mon Sep 17 00:00:00 2001 From: jean_patrick_mathes <uomnk@student.kit.edu> Date: Tue, 4 Oct 2022 14:16:16 +0200 Subject: [PATCH] Commit only unchanged objects and set confidence to zero when deleting --- .../InteractiveMemoryEditor/Editor.cpp | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp index 0d8e32605..889375b71 100644 --- a/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp +++ b/source/RobotAPI/components/InteractiveMemoryEditor/Editor.cpp @@ -99,19 +99,21 @@ namespace armarx remainingPoses.reserve(storedPoses.size()); for (objpose::ObjectPose & current : storedPoses) { - bool keep = changes.applyTo(current); - if (not keep) - { - continue; - } + bool isChanged = changes.applyTo(current); - providingPoses.push_back(current.toProvidedObjectPose()); - objpose::ProvidedObjectPose& providing = providingPoses.back(); + if (isChanged) + { + providingPoses.push_back(current.toProvidedObjectPose()); + objpose::ProvidedObjectPose& providing = providingPoses.back(); - providing.providerName = properties.providerName; - providing.timestamp = DateTime::Now(); + providing.providerName = properties.providerName; + providing.timestamp = DateTime::Now(); + } - remainingPoses.push_back(current); + if (current.confidence > 0) + { + remainingPoses.push_back(current); + } } pushToMemory(providingPoses); @@ -224,20 +226,19 @@ namespace armarx auto iterator = changed.find(pose.objectID.str()); bool isChanged = iterator != changed.end(); - if (isChanged && iterator->second.kind == DELETE) - { - return false; - } - - Eigen::Matrix4f transform = Eigen::Matrix4f::Identity(); if (isChanged) { - transform = iterator->second.transform; - } + auto& [name, change] = *iterator; - pose.objectPoseGlobal = transform * pose.objectPoseGlobal; + if (change.kind == DELETE) + { + pose.confidence = 0; + } + + pose.objectPoseGlobal = change.transform * pose.objectPoseGlobal; + } - return true; + return isChanged; } void Editor::ChangeState::visualizeNewObjects(Editor* editor) -- GitLab